From 58e555e86c49f3980281c8016d3e295505aced25 Mon Sep 17 00:00:00 2001 From: Francisco Paisana Date: Mon, 20 Jan 2020 12:22:10 +0000 Subject: [PATCH] update all asn1 files --- lib/include/srslte/asn1/ngap_nr_asn1.h | 17191 +++++++---------------- lib/include/srslte/asn1/rrc_nr_asn1.h | 12 +- lib/src/asn1/ngap_nr_asn1.cc | 11550 +++++++++++---- lib/src/asn1/rrc_nr_asn1.cc | 17 +- lib/test/asn1/ngap_asn1_test.cc | 6 +- 5 files changed, 13624 insertions(+), 15152 deletions(-) diff --git a/lib/include/srslte/asn1/ngap_nr_asn1.h b/lib/include/srslte/asn1/ngap_nr_asn1.h index 2c61c2848..7b88ec7ed 100644 --- a/lib/include/srslte/asn1/ngap_nr_asn1.h +++ b/lib/include/srslte/asn1/ngap_nr_asn1.h @@ -201,7 +201,7 @@ ItemType convert_enum_idx(ItemType* array, uint32_t nof_types, uint32_t enum_val #define ASN1_NGAP_NR_ID_FIVE_G_S_TMSI 26 #define ASN1_NGAP_NR_ID_GLOBAL_RAN_NODE_ID 27 #define ASN1_NGAP_NR_ID_GUAMI 28 -#define ASN1_NGAP_NR_ID_HO_TYPE 29 +#define ASN1_NGAP_NR_ID_HANDOV_TYPE 29 #define ASN1_NGAP_NR_ID_IMS_VOICE_SUPPORT_IND 30 #define ASN1_NGAP_NR_ID_IDX_TO_RFSP 31 #define ASN1_NGAP_NR_ID_INFO_ON_RECOMMENDED_CELLS_AND_RAN_NODES_FOR_PAGING 32 @@ -352,11 +352,11 @@ struct presence_opts { typedef enumerated presence_e; // ProtocolIE-Field{NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES}} -template +template struct protocol_ie_field_s { - uint32_t id = 0; - crit_e crit; - typename ies_set_param::value_c value; + uint32_t id = 0; + crit_e crit; + typename ies_set_paramT_::value_c value; SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); @@ -365,7 +365,7 @@ struct protocol_ie_field_s { }; struct ngap_protocol_ies_empty_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { nulltype } value; @@ -392,11 +392,11 @@ struct ngap_protocol_ies_empty_o { typedef ngap_protocol_ies_empty_o cp_transport_layer_info_ext_ies_o; // ProtocolExtensionField{NGAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-EXTENSION}} -template +template struct protocol_ext_field_s { - uint32_t id = 0; - crit_e crit; - typename ext_set_param::ext_c ext_value; + uint32_t id = 0; + crit_e crit; + typename ext_set_paramT_::ext_c ext_value; SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); @@ -404,12 +404,21 @@ struct protocol_ext_field_s { bool load_info_obj(const uint32_t& id_); }; -// ProtocolIE-SingleContainer ::= ProtocolIE-Field -template -using protocol_ie_single_container_s = protocol_ie_field_s; +// ProtocolIE-SingleContainer{NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES}} +template +struct protocol_ie_single_container_s { + uint32_t id = 0; + crit_e crit; + typename ies_set_paramT_::value_c value; + + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; + bool load_info_obj(const uint32_t& id_); +}; struct ngap_protocol_ext_empty_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { nulltype } value; @@ -497,8 +506,8 @@ private: // ProtocolExtensionContainer{NGAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE (SIZE (1..65535)) OF // ProtocolExtensionField -template -using protocol_ext_container_l = dyn_array >; +template +using protocol_ext_container_l = dyn_array >; template struct protocol_ext_container_item_s { @@ -522,15 +531,14 @@ struct protocol_ext_container_empty_l { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l amf_tnlassoc_setup_item_ext_ies_container; + // AMF-TNLAssociationSetupItem ::= SEQUENCE struct amf_tnlassoc_setup_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cp_transport_layer_info_c amf_tnlassoc_address; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cp_transport_layer_info_c amf_tnlassoc_address; + amf_tnlassoc_setup_item_ext_ies_container ie_exts; // ... // sequence methods @@ -553,18 +561,17 @@ struct tnlassoc_usage_opts { }; typedef enumerated tnlassoc_usage_e; +typedef protocol_ext_container_empty_l amf_tnlassoc_to_add_item_ext_ies_container; + // AMF-TNLAssociationToAddItem ::= SEQUENCE struct amf_tnlassoc_to_add_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool tnlassoc_usage_present = false; - bool ie_exts_present = false; - cp_transport_layer_info_c amf_tnlassoc_address; - tnlassoc_usage_e tnlassoc_usage; - uint16_t tnl_address_weight_factor = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool tnlassoc_usage_present = false; + bool ie_exts_present = false; + cp_transport_layer_info_c amf_tnlassoc_address; + tnlassoc_usage_e tnlassoc_usage; + uint16_t tnl_address_weight_factor = 0; + amf_tnlassoc_to_add_item_ext_ies_container ie_exts; // ... // sequence methods @@ -579,15 +586,14 @@ 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; +typedef protocol_ext_container_empty_l amf_tnlassoc_to_rem_item_ext_ies_container; + // AMF-TNLAssociationToRemoveItem ::= SEQUENCE struct amf_tnlassoc_to_rem_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cp_transport_layer_info_c amf_tnlassoc_address; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cp_transport_layer_info_c amf_tnlassoc_address; + amf_tnlassoc_to_rem_item_ext_ies_container ie_exts; // ... // sequence methods @@ -602,19 +608,18 @@ 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; +typedef protocol_ext_container_empty_l amf_tnlassoc_to_upd_item_ext_ies_container; + // AMF-TNLAssociationToUpdateItem ::= SEQUENCE struct amf_tnlassoc_to_upd_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool tnlassoc_usage_present = false; - bool tnl_address_weight_factor_present = false; - bool ie_exts_present = false; - cp_transport_layer_info_c amf_tnlassoc_address; - tnlassoc_usage_e tnlassoc_usage; - uint16_t tnl_address_weight_factor = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool tnlassoc_usage_present = false; + bool tnl_address_weight_factor_present = false; + bool ie_exts_present = false; + cp_transport_layer_info_c amf_tnlassoc_address; + tnlassoc_usage_e tnlassoc_usage; + uint16_t tnl_address_weight_factor = 0; + amf_tnlassoc_to_upd_item_ext_ies_container ie_exts; // ... // sequence methods @@ -629,17 +634,16 @@ 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; +typedef protocol_ext_container_empty_l s_nssai_ext_ies_container; + // S-NSSAI ::= SEQUENCE struct s_nssai_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool sd_present = false; - bool ie_exts_present = false; - fixed_octstring<1, true> sst; - fixed_octstring<3, true> sd; - ie_exts_l_ ie_exts; + bool ext = false; + bool sd_present = false; + bool ie_exts_present = false; + fixed_octstring<1, true> sst; + fixed_octstring<3, true> sd; + s_nssai_ext_ies_container ie_exts; // ... // sequence methods @@ -654,15 +658,14 @@ typedef ngap_protocol_ext_empty_o slice_support_item_ext_ies_o; // GUAMI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o guami_ext_ies_o; +typedef protocol_ext_container_empty_l slice_support_item_ext_ies_container; + // SliceSupportItem ::= SEQUENCE struct slice_support_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - s_nssai_s s_nssai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + s_nssai_s s_nssai; + slice_support_item_ext_ies_container ie_exts; // ... // sequence methods @@ -671,18 +674,17 @@ struct slice_support_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l guami_ext_ies_container; + // GUAMI ::= SEQUENCE struct guami_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; fixed_octstring<3, true> plmn_id; fixed_bitstring<8, false, true> amf_region_id; fixed_bitstring<10, false, true> amf_set_id; fixed_bitstring<6, false, true> amf_pointer; - ie_exts_l_ ie_exts; + guami_ext_ies_container ie_exts; // ... // sequence methods @@ -700,16 +702,15 @@ typedef ngap_protocol_ext_empty_o served_guami_item_ext_ies_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; + // PLMNSupportItem ::= SEQUENCE struct plmn_support_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - slice_support_list_l slice_support_list; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + slice_support_list_l slice_support_list; + plmn_support_item_ext_ies_container ie_exts; // ... // sequence methods @@ -718,17 +719,16 @@ struct plmn_support_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l served_guami_item_ext_ies_container; + // ServedGUAMIItem ::= SEQUENCE struct served_guami_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool backup_amf_name_present = false; bool ie_exts_present = false; guami_s guami; printable_string<1, 150, true, true> backup_amf_name; - ie_exts_l_ ie_exts; + served_guami_item_ext_ies_container ie_exts; // ... // sequence methods @@ -745,7 +745,7 @@ using served_guami_list_l = dyn_array; // AMFConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct amf_cfg_upd_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -776,111 +776,20 @@ struct amf_cfg_upd_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - printable_string<1, 150, true, true>& amf_name() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - served_guami_list_l& served_guami_list() - { - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& relative_amf_capacity() - { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); - } - plmn_support_list_l& plmn_support_list() - { - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); - } - amf_tnlassoc_to_add_list_l& amf_tnlassoc_to_add_list() - { - assert_choice_type("AMF-TNLAssociationToAddList", type_.to_string(), "Value"); - return c.get(); - } - amf_tnlassoc_to_rem_list_l& amf_tnlassoc_to_rem_list() - { - assert_choice_type("AMF-TNLAssociationToRemoveList", type_.to_string(), "Value"); - return c.get(); - } - amf_tnlassoc_to_upd_list_l& 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_name() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const served_guami_list_l& served_guami_list() const - { - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& relative_amf_capacity() const - { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); - } - const plmn_support_list_l& plmn_support_list() const - { - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); - } - const amf_tnlassoc_to_add_list_l& 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_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_tnlassoc_to_upd_list() const - { - assert_choice_type("AMF-TNLAssociationToUpdateList", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& set_amf_name() - { - set(types::amf_name); - return c.get >(); - } - served_guami_list_l& set_served_guami_list() - { - set(types::served_guami_list); - return c.get(); - } - uint16_t& set_relative_amf_capacity() - { - set(types::relative_amf_capacity); - return c.get(); - } - plmn_support_list_l& set_plmn_support_list() - { - set(types::plmn_support_list); - return c.get(); - } - amf_tnlassoc_to_add_list_l& set_amf_tnlassoc_to_add_list() - { - set(types::amf_tnlassoc_to_add_list); - return c.get(); - } - amf_tnlassoc_to_rem_list_l& set_amf_tnlassoc_to_rem_list() - { - set(types::amf_tnlassoc_to_rem_list); - return c.get(); - } - amf_tnlassoc_to_upd_list_l& set_amf_tnlassoc_to_upd_list() - { - set(types::amf_tnlassoc_to_upd_list); - return c.get(); - } + 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(); + amf_tnlassoc_to_add_list_l& amf_tnlassoc_to_add_list(); + amf_tnlassoc_to_rem_list_l& amf_tnlassoc_to_rem_list(); + amf_tnlassoc_to_upd_list_l& amf_tnlassoc_to_upd_list(); + 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 amf_tnlassoc_to_add_list_l& amf_tnlassoc_to_add_list() const; + const amf_tnlassoc_to_rem_list_l& amf_tnlassoc_to_rem_list() const; + const amf_tnlassoc_to_upd_list_l& amf_tnlassoc_to_upd_list() const; private: types type_; @@ -904,8 +813,8 @@ struct amf_cfg_upd_ies_o { }; // ProtocolIE-Container{NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE (SIZE (0..65535)) OF ProtocolIE-Field -template -using protocol_ie_container_l = dyn_array >; +template +using protocol_ie_container_l = dyn_array >; template struct protocol_ie_container_item_s { @@ -920,38 +829,37 @@ struct protocol_ie_container_item_s { void to_json(json_writer& j) const; }; -// AMFConfigurationUpdate ::= SEQUENCE -struct amf_cfg_upd_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool amf_name_present = false; - bool served_guami_list_present = false; - bool relative_amf_capacity_present = false; - bool plmn_support_list_present = false; - bool amf_tnlassoc_to_add_list_present = false; - bool amf_tnlassoc_to_rem_list_present = false; - bool amf_tnlassoc_to_upd_list_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 > amf_tnlassoc_to_add_list; - ie_field_s > amf_tnlassoc_to_rem_list; - ie_field_s > amf_tnlassoc_to_upd_list; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct amf_cfg_upd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool amf_name_present = false; + bool served_guami_list_present = false; + bool relative_amf_capacity_present = false; + bool plmn_support_list_present = false; + bool amf_tnlassoc_to_add_list_present = false; + bool amf_tnlassoc_to_rem_list_present = false; + bool amf_tnlassoc_to_upd_list_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 > amf_tnlassoc_to_add_list; + ie_field_s > amf_tnlassoc_to_rem_list; + ie_field_s > amf_tnlassoc_to_upd_list; + + // sequence methods + amf_cfg_upd_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// AMFConfigurationUpdate ::= SEQUENCE +struct amf_cfg_upd_s { + bool ext = false; + amf_cfg_upd_ies_container protocol_ies; // ... // sequence methods @@ -1203,17 +1111,16 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l crit_diagnostics_ie_item_ext_ies_container; + // CriticalityDiagnostics-IE-Item ::= SEQUENCE struct crit_diagnostics_ie_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - crit_e iecrit; - uint32_t ie_id = 0; - type_of_error_e type_of_error; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + crit_e iecrit; + uint32_t ie_id = 0; + type_of_error_e type_of_error; + crit_diagnostics_ie_item_ext_ies_container ie_exts; // ... // sequence methods @@ -1231,16 +1138,15 @@ typedef ngap_protocol_ext_empty_o crit_diagnostics_ext_ies_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; + // TNLAssociationItem ::= SEQUENCE struct tnlassoc_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cp_transport_layer_info_c tnlassoc_address; - cause_c cause; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cp_transport_layer_info_c tnlassoc_address; + cause_c cause; + tnlassoc_item_ext_ies_container ie_exts; // ... // sequence methods @@ -1257,22 +1163,21 @@ struct trigger_msg_opts { }; typedef enumerated trigger_msg_e; +typedef protocol_ext_container_empty_l crit_diagnostics_ext_ies_container; + // CriticalityDiagnostics ::= SEQUENCE struct crit_diagnostics_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool proc_code_present = false; - bool trigger_msg_present = false; - bool proc_crit_present = false; - bool ies_crit_diagnostics_present = false; - bool ie_exts_present = false; - uint16_t proc_code = 0; - trigger_msg_e trigger_msg; - crit_e proc_crit; - crit_diagnostics_ie_list_l ies_crit_diagnostics; - ie_exts_l_ ie_exts; + bool ext = false; + bool proc_code_present = false; + bool trigger_msg_present = false; + bool proc_crit_present = false; + bool ies_crit_diagnostics_present = false; + bool ie_exts_present = false; + uint16_t proc_code = 0; + trigger_msg_e trigger_msg; + crit_e proc_crit; + crit_diagnostics_ie_list_l ies_crit_diagnostics; + crit_diagnostics_ext_ies_container ie_exts; // ... // sequence methods @@ -1286,7 +1191,7 @@ using tnlassoc_list_l = dyn_array; // AMFConfigurationUpdateAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct amf_cfg_upd_ack_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_tnlassoc_setup_list, amf_tnlassoc_failed_to_setup_list, crit_diagnostics, nulltype } value; @@ -1306,51 +1211,12 @@ struct amf_cfg_upd_ack_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - amf_tnlassoc_setup_list_l& amf_tnlassoc_setup_list() - { - assert_choice_type("AMF-TNLAssociationSetupList", type_.to_string(), "Value"); - return c.get(); - } - tnlassoc_list_l& amf_tnlassoc_failed_to_setup_list() - { - assert_choice_type("TNLAssociationList", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const amf_tnlassoc_setup_list_l& amf_tnlassoc_setup_list() const - { - assert_choice_type("AMF-TNLAssociationSetupList", type_.to_string(), "Value"); - return c.get(); - } - const tnlassoc_list_l& amf_tnlassoc_failed_to_setup_list() const - { - assert_choice_type("TNLAssociationList", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - amf_tnlassoc_setup_list_l& set_amf_tnlassoc_setup_list() - { - set(types::amf_tnlassoc_setup_list); - return c.get(); - } - tnlassoc_list_l& set_amf_tnlassoc_failed_to_setup_list() - { - set(types::amf_tnlassoc_failed_to_setup_list); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + amf_tnlassoc_setup_list_l& amf_tnlassoc_setup_list(); + tnlassoc_list_l& amf_tnlassoc_failed_to_setup_list(); + crit_diagnostics_s& crit_diagnostics(); + const amf_tnlassoc_setup_list_l& amf_tnlassoc_setup_list() const; + const tnlassoc_list_l& amf_tnlassoc_failed_to_setup_list() const; + const crit_diagnostics_s& crit_diagnostics() const; private: types type_; @@ -1367,30 +1233,29 @@ struct amf_cfg_upd_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// AMFConfigurationUpdateAcknowledge ::= SEQUENCE -struct amf_cfg_upd_ack_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool amf_tnlassoc_setup_list_present = false; - bool amf_tnlassoc_failed_to_setup_list_present = false; - bool crit_diagnostics_present = false; - ie_field_s > amf_tnlassoc_setup_list; - ie_field_s > amf_tnlassoc_failed_to_setup_list; - ie_field_s crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct amf_cfg_upd_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool amf_tnlassoc_setup_list_present = false; + bool amf_tnlassoc_failed_to_setup_list_present = false; + bool crit_diagnostics_present = false; + ie_field_s > amf_tnlassoc_setup_list; + ie_field_s > amf_tnlassoc_failed_to_setup_list; + ie_field_s crit_diagnostics; + + // sequence methods + amf_cfg_upd_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// AMFConfigurationUpdateAcknowledge ::= SEQUENCE +struct amf_cfg_upd_ack_s { + bool ext = false; + amf_cfg_upd_ack_ies_container protocol_ies; // ... // sequence methods @@ -1411,7 +1276,7 @@ typedef enumerated time_to_wait_e; // AMFConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct amf_cfg_upd_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; @@ -1431,51 +1296,12 @@ struct amf_cfg_upd_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - time_to_wait_e& time_to_wait() - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const time_to_wait_e& time_to_wait() const - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - time_to_wait_e& set_time_to_wait() - { - set(types::time_to_wait); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -1492,29 +1318,28 @@ struct amf_cfg_upd_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// AMFConfigurationUpdateFailure ::= SEQUENCE -struct amf_cfg_upd_fail_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct amf_cfg_upd_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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 + amf_cfg_upd_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// AMFConfigurationUpdateFailure ::= SEQUENCE +struct amf_cfg_upd_fail_s { + bool ext = false; + amf_cfg_upd_fail_ies_container protocol_ies; // ... // sequence methods @@ -1747,16 +1572,15 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l global_gnb_id_ext_ies_container; + // GlobalGNB-ID ::= SEQUENCE struct global_gnb_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - gnb_id_c gnb_id; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + gnb_id_c gnb_id; + global_gnb_id_ext_ies_container ie_exts; // ... // sequence methods @@ -1765,16 +1589,15 @@ 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; + // GlobalN3IWF-ID ::= SEQUENCE struct global_n3_iwf_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - n3_iwf_id_c n3_iwf_id; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + n3_iwf_id_c n3_iwf_id; + global_n3_iwf_id_ext_ies_container ie_exts; // ... // sequence methods @@ -1783,16 +1606,15 @@ 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; + // GlobalNgENB-ID ::= SEQUENCE struct global_ng_enb_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - ng_enb_id_c ng_enb_id; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + ng_enb_id_c ng_enb_id; + global_ng_enb_id_ext_ies_container ie_exts; // ... // sequence methods @@ -1904,16 +1726,15 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l tai_ext_ies_container; + // TAI ::= SEQUENCE struct tai_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; fixed_octstring<3, true> plmn_id; fixed_octstring<3, true> tac; - ie_exts_l_ ie_exts; + tai_ext_ies_container ie_exts; // ... // sequence methods @@ -2006,19 +1827,18 @@ typedef enumerated timer_approach_f // UnavailableGUAMIItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o unavailable_guami_item_ext_ies_o; +typedef protocol_ext_container_empty_l unavailable_guami_item_ext_ies_container; + // UnavailableGUAMIItem ::= SEQUENCE struct unavailable_guami_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool timer_approach_for_guami_removal_present = false; - bool backup_amf_name_present = false; - bool ie_exts_present = false; - guami_s guami; - timer_approach_for_guami_removal_e timer_approach_for_guami_removal; - printable_string<1, 150, true, true> backup_amf_name; - ie_exts_l_ ie_exts; + bool ext = false; + bool timer_approach_for_guami_removal_present = false; + bool backup_amf_name_present = false; + bool ie_exts_present = false; + guami_s guami; + timer_approach_for_guami_removal_e timer_approach_for_guami_removal; + printable_string<1, 150, true, true> backup_amf_name; + unavailable_guami_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2032,7 +1852,7 @@ using unavailable_guami_list_l = dyn_array; // AMFStatusIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct amf_status_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { unavailable_guami_list, nulltype } value; @@ -2062,25 +1882,24 @@ struct amf_status_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// AMFStatusIndication ::= SEQUENCE -struct amf_status_ind_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct amf_status_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; - // member variables - ie_field_s > unavailable_guami_list; + // member variables + ie_field_s > unavailable_guami_list; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + amf_status_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// AMFStatusIndication ::= SEQUENCE +struct amf_status_ind_s { + bool ext = false; + amf_status_ind_ies_container protocol_ies; // ... // sequence methods @@ -2103,16 +1922,15 @@ typedef ngap_protocol_ext_empty_o gtp_tunnel_ext_ies_o; // QosFlowItemWithDataForwarding-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o qos_flow_item_with_data_forwarding_ext_ies_o; +typedef protocol_ext_container_empty_l gtp_tunnel_ext_ies_container; + // GTPTunnel ::= SEQUENCE struct gtp_tunnel_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; bounded_bitstring<1, 160, true, true> transport_layer_address; fixed_octstring<4, true> gtp_teid; - ie_exts_l_ ie_exts; + gtp_tunnel_ext_ies_container ie_exts; // ... // sequence methods @@ -2121,17 +1939,16 @@ 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; + // QosFlowItemWithDataForwarding ::= SEQUENCE struct qos_flow_item_with_data_forwarding_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool data_forwarding_accepted_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - data_forwarding_accepted_e data_forwarding_accepted; - ie_exts_l_ ie_exts; + bool ext = false; + bool data_forwarding_accepted_present = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + data_forwarding_accepted_e data_forwarding_accepted; + qos_flow_item_with_data_forwarding_ext_ies_container ie_exts; // ... // sequence methods @@ -2207,18 +2024,17 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l add_dluptnl_info_for_ho_item_ext_ies_container; + // AdditionalDLUPTNLInformationForHOItem ::= SEQUENCE struct add_dluptnl_info_for_ho_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool add_dl_forwarding_uptnl_info_present = false; - bool ie_exts_present = false; - up_transport_layer_info_c add_dl_ngu_up_tnl_info; - qos_flow_list_with_data_forwarding_l add_qos_flow_setup_resp_list; - up_transport_layer_info_c add_dl_forwarding_uptnl_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool add_dl_forwarding_uptnl_info_present = false; + bool ie_exts_present = false; + up_transport_layer_info_c add_dl_ngu_up_tnl_info; + qos_flow_list_with_data_forwarding_l add_qos_flow_setup_resp_list; + up_transport_layer_info_c add_dl_forwarding_uptnl_info; + add_dluptnl_info_for_ho_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2249,17 +2065,16 @@ struct pre_emption_vulnerability_opts { }; typedef enumerated pre_emption_vulnerability_e; +typedef protocol_ext_container_empty_l alloc_and_retention_prio_ext_ies_container; + // AllocationAndRetentionPriority ::= SEQUENCE struct alloc_and_retention_prio_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t prio_level_arp = 1; - pre_emption_cap_e pre_emption_cap; - pre_emption_vulnerability_e pre_emption_vulnerability; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint8_t prio_level_arp = 1; + pre_emption_cap_e pre_emption_cap; + pre_emption_vulnerability_e pre_emption_vulnerability; + alloc_and_retention_prio_ext_ies_container ie_exts; // ... // sequence methods @@ -2271,15 +2086,14 @@ 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; +typedef protocol_ext_container_empty_l allowed_nssai_item_ext_ies_container; + // AllowedNSSAI-Item ::= SEQUENCE struct allowed_nssai_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - s_nssai_s s_nssai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + s_nssai_s s_nssai; + allowed_nssai_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2300,16 +2114,15 @@ typedef ngap_protocol_ext_empty_o eutra_cgi_ext_ies_o; // NR-CGI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o nr_cgi_ext_ies_o; +typedef protocol_ext_container_empty_l eutra_cgi_ext_ies_container; + // EUTRA-CGI ::= SEQUENCE struct eutra_cgi_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; fixed_octstring<3, true> plmn_id; fixed_bitstring<28, false, true> eutra_cell_id; - ie_exts_l_ ie_exts; + eutra_cgi_ext_ies_container ie_exts; // ... // sequence methods @@ -2321,16 +2134,15 @@ struct eutra_cgi_s { // NGRAN-CGI-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES typedef ngap_protocol_ies_empty_o ngran_cgi_ext_ies_o; +typedef protocol_ext_container_empty_l nr_cgi_ext_ies_container; + // NR-CGI ::= SEQUENCE struct nr_cgi_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; fixed_octstring<3, true> plmn_id; fixed_bitstring<36, false, true> nrcell_id; - ie_exts_l_ ie_exts; + nr_cgi_ext_ies_container ie_exts; // ... // sequence methods @@ -2421,15 +2233,14 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l area_of_interest_cell_item_ext_ies_container; + // AreaOfInterestCellItem ::= SEQUENCE struct area_of_interest_cell_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - ngran_cgi_c ngran_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + ngran_cgi_c ngran_cgi; + area_of_interest_cell_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2438,15 +2249,14 @@ 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; + // AreaOfInterestRANNodeItem ::= SEQUENCE struct area_of_interest_ran_node_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - global_ran_node_id_c global_ran_node_id; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + global_ran_node_id_c global_ran_node_id; + area_of_interest_ran_node_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2455,15 +2265,14 @@ 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; + // AreaOfInterestTAIItem ::= SEQUENCE struct area_of_interest_tai_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + area_of_interest_tai_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2484,20 +2293,19 @@ using area_of_interest_ran_node_list_l = dyn_array; +typedef protocol_ext_container_empty_l area_of_interest_ext_ies_container; + // AreaOfInterest ::= SEQUENCE struct area_of_interest_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool area_of_interest_tai_list_present = false; - bool area_of_interest_cell_list_present = false; - bool area_of_interest_ran_node_list_present = false; - bool ie_exts_present = false; - area_of_interest_tai_list_l area_of_interest_tai_list; - area_of_interest_cell_list_l area_of_interest_cell_list; - area_of_interest_ran_node_list_l area_of_interest_ran_node_list; - ie_exts_l_ ie_exts; + bool ext = false; + bool area_of_interest_tai_list_present = false; + bool area_of_interest_cell_list_present = false; + bool area_of_interest_ran_node_list_present = false; + bool ie_exts_present = false; + area_of_interest_tai_list_l area_of_interest_tai_list; + area_of_interest_cell_list_l area_of_interest_cell_list; + area_of_interest_ran_node_list_l area_of_interest_ran_node_list; + area_of_interest_ext_ies_container ie_exts; // ... // sequence methods @@ -2509,16 +2317,15 @@ 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; +typedef protocol_ext_container_empty_l area_of_interest_item_ext_ies_container; + // AreaOfInterestItem ::= SEQUENCE struct area_of_interest_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - area_of_interest_s area_of_interest; - uint8_t location_report_ref_id = 1; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + area_of_interest_s area_of_interest; + uint8_t location_report_ref_id = 1; + area_of_interest_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2533,17 +2340,16 @@ 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; +typedef protocol_ext_container_empty_l recommended_cell_item_ext_ies_container; + // RecommendedCellItem ::= SEQUENCE struct recommended_cell_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool time_stayed_in_cell_present = false; - bool ie_exts_present = false; - ngran_cgi_c ngran_cgi; - uint16_t time_stayed_in_cell = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool time_stayed_in_cell_present = false; + bool ie_exts_present = false; + ngran_cgi_c ngran_cgi; + uint16_t time_stayed_in_cell = 0; + recommended_cell_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2572,15 +2378,14 @@ 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; +typedef protocol_ext_container_empty_l recommended_cells_for_paging_ext_ies_container; + // RecommendedCellsForPaging ::= SEQUENCE struct recommended_cells_for_paging_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - recommended_cell_list_l recommended_cell_list; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + recommended_cell_list_l recommended_cell_list; + recommended_cells_for_paging_ext_ies_container ie_exts; // ... // sequence methods @@ -2592,15 +2397,14 @@ 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; +typedef protocol_ext_container_empty_l assist_data_for_recommended_cells_ext_ies_container; + // AssistanceDataForRecommendedCells ::= SEQUENCE struct assist_data_for_recommended_cells_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - recommended_cells_for_paging_s recommended_cells_for_paging; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + recommended_cells_for_paging_s recommended_cells_for_paging; + assist_data_for_recommended_cells_ext_ies_container ie_exts; // ... // sequence methods @@ -2609,18 +2413,17 @@ 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; + // PagingAttemptInformation ::= SEQUENCE struct paging_attempt_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool next_paging_area_scope_present = false; - bool ie_exts_present = false; - uint8_t paging_attempt_count = 1; - uint8_t intended_nof_paging_attempts = 1; - next_paging_area_scope_e next_paging_area_scope; - ie_exts_l_ ie_exts; + bool ext = false; + bool next_paging_area_scope_present = false; + bool ie_exts_present = false; + uint8_t paging_attempt_count = 1; + uint8_t intended_nof_paging_attempts = 1; + next_paging_area_scope_e next_paging_area_scope; + paging_attempt_info_ext_ies_container ie_exts; // ... // sequence methods @@ -2629,18 +2432,17 @@ 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; + // AssistanceDataForPaging ::= SEQUENCE struct assist_data_for_paging_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool assist_data_for_recommended_cells_present = false; - bool paging_attempt_info_present = false; - bool ie_exts_present = false; - assist_data_for_recommended_cells_s assist_data_for_recommended_cells; - paging_attempt_info_s paging_attempt_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool assist_data_for_recommended_cells_present = false; + bool paging_attempt_info_present = false; + bool ie_exts_present = false; + assist_data_for_recommended_cells_s assist_data_for_recommended_cells; + paging_attempt_info_s paging_attempt_info; + assist_data_for_paging_ext_ies_container ie_exts; // ... // sequence methods @@ -2652,6 +2454,8 @@ 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; +typedef protocol_ext_container_empty_l associated_qos_flow_item_ext_ies_container; + // AssociatedQosFlowItem ::= SEQUENCE struct associated_qos_flow_item_s { struct qos_flow_map_ind_opts { @@ -2660,15 +2464,14 @@ struct associated_qos_flow_item_s { std::string to_string() const; }; typedef enumerated qos_flow_map_ind_e_; - typedef protocol_ext_container_empty_l ie_exts_l_; // member variables - bool ext = false; - bool qos_flow_map_ind_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - qos_flow_map_ind_e_ qos_flow_map_ind; - ie_exts_l_ ie_exts; + bool ext = false; + bool qos_flow_map_ind_present = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_map_ind_e_ qos_flow_map_ind; + associated_qos_flow_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2692,16 +2495,15 @@ typedef ngap_protocol_ext_empty_o cancelled_cells_in_tai_eutra_item_ext_ies_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; +typedef protocol_ext_container_empty_l cancelled_cells_in_eai_eutra_item_ext_ies_container; + // CancelledCellsInEAI-EUTRA-Item ::= SEQUENCE struct cancelled_cells_in_eai_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + uint32_t nof_broadcasts = 0; + cancelled_cells_in_eai_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2710,16 +2512,15 @@ 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; + // CancelledCellsInEAI-NR-Item ::= SEQUENCE struct cancelled_cells_in_eai_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + uint32_t nof_broadcasts = 0; + cancelled_cells_in_eai_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2728,16 +2529,15 @@ 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; + // CancelledCellsInTAI-EUTRA-Item ::= SEQUENCE struct cancelled_cells_in_tai_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + uint32_t nof_broadcasts = 0; + cancelled_cells_in_tai_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2746,16 +2546,15 @@ 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; + // CancelledCellsInTAI-NR-Item ::= SEQUENCE struct cancelled_cells_in_tai_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + uint32_t nof_broadcasts = 0; + cancelled_cells_in_tai_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2794,16 +2593,15 @@ typedef ngap_protocol_ext_empty_o tai_cancelled_eutra_item_ext_ies_o; // TAICancelledNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o tai_cancelled_nr_item_ext_ies_o; +typedef protocol_ext_container_empty_l cell_id_cancelled_eutra_item_ext_ies_container; + // CellIDCancelledEUTRA-Item ::= SEQUENCE struct cell_id_cancelled_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + uint32_t nof_broadcasts = 0; + cell_id_cancelled_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2812,16 +2610,15 @@ 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; + // CellIDCancelledNR-Item ::= SEQUENCE struct cell_id_cancelled_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - uint32_t nof_broadcasts = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + uint32_t nof_broadcasts = 0; + cell_id_cancelled_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2830,16 +2627,15 @@ 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; + // EmergencyAreaIDCancelledEUTRA-Item ::= SEQUENCE struct emergency_area_id_cancelled_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> emergency_area_id; - cancelled_cells_in_eai_eutra_l cancelled_cells_in_eai_eutra; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> emergency_area_id; + cancelled_cells_in_eai_eutra_l cancelled_cells_in_eai_eutra; + emergency_area_id_cancelled_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2848,16 +2644,15 @@ 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; + // EmergencyAreaIDCancelledNR-Item ::= SEQUENCE struct emergency_area_id_cancelled_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> emergency_area_id; - cancelled_cells_in_eai_nr_l cancelled_cells_in_eai_nr; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> emergency_area_id; + cancelled_cells_in_eai_nr_l cancelled_cells_in_eai_nr; + emergency_area_id_cancelled_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2866,16 +2661,15 @@ 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; + // TAICancelledEUTRA-Item ::= SEQUENCE struct tai_cancelled_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - cancelled_cells_in_tai_eutra_l cancelled_cells_in_tai_eutra; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + cancelled_cells_in_tai_eutra_l cancelled_cells_in_tai_eutra; + tai_cancelled_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -2884,16 +2678,15 @@ 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; + // TAICancelledNR-Item ::= SEQUENCE struct tai_cancelled_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - cancelled_cells_in_tai_nr_l cancelled_cells_in_tai_nr; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + cancelled_cells_in_tai_nr_l cancelled_cells_in_tai_nr; + tai_cancelled_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3084,15 +2877,14 @@ typedef ngap_protocol_ext_empty_o completed_cells_in_tai_eutra_item_ext_ies_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; +typedef protocol_ext_container_empty_l completed_cells_in_eai_eutra_item_ext_ies_container; + // CompletedCellsInEAI-EUTRA-Item ::= SEQUENCE struct completed_cells_in_eai_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + completed_cells_in_eai_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3101,15 +2893,14 @@ 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; + // CompletedCellsInEAI-NR-Item ::= SEQUENCE struct completed_cells_in_eai_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + completed_cells_in_eai_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3118,15 +2909,14 @@ 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; + // CompletedCellsInTAI-EUTRA-Item ::= SEQUENCE struct completed_cells_in_tai_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + completed_cells_in_tai_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3135,15 +2925,14 @@ 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; + // CompletedCellsInTAI-NR-Item ::= SEQUENCE struct completed_cells_in_tai_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + completed_cells_in_tai_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3182,15 +2971,14 @@ typedef ngap_protocol_ext_empty_o tai_broadcast_eutra_item_ext_ies_o; // TAIBroadcastNR-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o tai_broadcast_nr_item_ext_ies_o; +typedef protocol_ext_container_empty_l cell_id_broadcast_eutra_item_ext_ies_container; + // CellIDBroadcastEUTRA-Item ::= SEQUENCE struct cell_id_broadcast_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + cell_id_broadcast_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3199,15 +2987,14 @@ 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; + // CellIDBroadcastNR-Item ::= SEQUENCE struct cell_id_broadcast_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + cell_id_broadcast_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3216,16 +3003,15 @@ 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; + // EmergencyAreaIDBroadcastEUTRA-Item ::= SEQUENCE struct emergency_area_id_broadcast_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> emergency_area_id; - completed_cells_in_eai_eutra_l completed_cells_in_eai_eutra; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> emergency_area_id; + completed_cells_in_eai_eutra_l completed_cells_in_eai_eutra; + emergency_area_id_broadcast_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3234,16 +3020,15 @@ 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; + // EmergencyAreaIDBroadcastNR-Item ::= SEQUENCE struct emergency_area_id_broadcast_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> emergency_area_id; - completed_cells_in_eai_nr_l completed_cells_in_eai_nr; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> emergency_area_id; + completed_cells_in_eai_nr_l completed_cells_in_eai_nr; + emergency_area_id_broadcast_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3252,16 +3037,15 @@ 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; + // TAIBroadcastEUTRA-Item ::= SEQUENCE struct tai_broadcast_eutra_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - completed_cells_in_tai_eutra_l completed_cells_in_tai_eutra; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + completed_cells_in_tai_eutra_l completed_cells_in_tai_eutra; + tai_broadcast_eutra_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3270,16 +3054,15 @@ 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; + // TAIBroadcastNR-Item ::= SEQUENCE struct tai_broadcast_nr_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - completed_cells_in_tai_nr_l completed_cells_in_tai_nr; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + completed_cells_in_tai_nr_l completed_cells_in_tai_nr; + tai_broadcast_nr_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3461,16 +3244,15 @@ private: // BroadcastPLMNItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o broadcast_plmn_item_ext_ies_o; +typedef protocol_ext_container_empty_l broadcast_plmn_item_ext_ies_container; + // BroadcastPLMNItem ::= SEQUENCE struct broadcast_plmn_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - slice_support_list_l tai_slice_support_list; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + slice_support_list_l tai_slice_support_list; + broadcast_plmn_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3485,16 +3267,15 @@ 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; +typedef protocol_ext_container_empty_l count_value_for_pdcp_sn12_ext_ies_container; + // COUNTValueForPDCP-SN12 ::= SEQUENCE struct count_value_for_pdcp_sn12_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdcp_sn12 = 0; - uint32_t hfn_pdcp_sn12 = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint16_t pdcp_sn12 = 0; + uint32_t hfn_pdcp_sn12 = 0; + count_value_for_pdcp_sn12_ext_ies_container ie_exts; // ... // sequence methods @@ -3506,16 +3287,15 @@ 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; +typedef protocol_ext_container_empty_l count_value_for_pdcp_sn18_ext_ies_container; + // COUNTValueForPDCP-SN18 ::= SEQUENCE struct count_value_for_pdcp_sn18_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint32_t pdcp_sn18 = 0; - uint16_t hfn_pdcp_sn18 = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint32_t pdcp_sn18 = 0; + uint16_t hfn_pdcp_sn18 = 0; + count_value_for_pdcp_sn18_ext_ies_container ie_exts; // ... // sequence methods @@ -3609,7 +3389,7 @@ private: // CellTrafficTraceIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct cell_traffic_trace_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -3636,81 +3416,16 @@ struct cell_traffic_trace_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - fixed_octstring<8, true>& ngran_trace_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - ngran_cgi_c& ngran_cgi() - { - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); - } - bounded_bitstring<1, 160, true, true>& trace_collection_entity_ip_address() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_octstring<8, true>& ngran_trace_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const ngran_cgi_c& ngran_cgi() const - { - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); - } - const bounded_bitstring<1, 160, true, true>& trace_collection_entity_ip_address() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - fixed_octstring<8, true>& set_ngran_trace_id() - { - set(types::ngran_trace_id); - return c.get >(); - } - ngran_cgi_c& set_ngran_cgi() - { - set(types::ngran_cgi); - return c.get(); - } - bounded_bitstring<1, 160, true, true>& set_trace_collection_entity_ip_address() - { - set(types::trace_collection_entity_ip_address); - return c.get >(); - } + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + fixed_octstring<8, true>& ngran_trace_id(); + ngran_cgi_c& ngran_cgi(); + bounded_bitstring<1, 160, true, true>& trace_collection_entity_ip_address(); + 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 ngran_cgi_c& ngran_cgi() const; + const bounded_bitstring<1, 160, true, true>& trace_collection_entity_ip_address() const; private: types type_; @@ -3727,29 +3442,28 @@ struct cell_traffic_trace_ies_o { static presence_e get_presence(const uint32_t& id); }; -// CellTrafficTrace ::= SEQUENCE -struct cell_traffic_trace_s { - struct protocol_ies_l_ { - 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 ngran_cgi; - ie_field_s > trace_collection_entity_ip_address; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct cell_traffic_trace_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ngran_trace_id; + ie_field_s ngran_cgi; + ie_field_s > trace_collection_entity_ip_address; + + // sequence methods + cell_traffic_trace_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// CellTrafficTrace ::= SEQUENCE +struct cell_traffic_trace_s { + bool ext = false; + cell_traffic_trace_ies_container protocol_ies; // ... // sequence methods @@ -3769,15 +3483,14 @@ typedef enumerated cell_size_e; // CellType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o cell_type_ext_ies_o; +typedef protocol_ext_container_empty_l cell_type_ext_ies_container; + // CellType ::= SEQUENCE struct cell_type_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cell_size_e cell_size; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cell_size_e cell_size; + cell_type_ext_ies_container ie_exts; // ... // sequence methods @@ -3792,17 +3505,16 @@ typedef ngap_protocol_ext_empty_o expected_ue_moving_trajectory_item_ext_ies_o; // ExpectedUEActivityBehaviour-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o expected_ue_activity_behaviour_ext_ies_o; +typedef protocol_ext_container_empty_l expected_ue_moving_trajectory_item_ext_ies_container; + // ExpectedUEMovingTrajectoryItem ::= SEQUENCE struct expected_ue_moving_trajectory_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool time_stayed_in_cell_present = false; - bool ie_exts_present = false; - ngran_cgi_c ngran_cgi; - uint16_t time_stayed_in_cell = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool time_stayed_in_cell_present = false; + bool ie_exts_present = false; + ngran_cgi_c ngran_cgi; + uint16_t time_stayed_in_cell = 0; + expected_ue_moving_trajectory_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3832,20 +3544,19 @@ struct expected_ho_interv_opts { }; typedef enumerated expected_ho_interv_e; +typedef protocol_ext_container_empty_l expected_ue_activity_behaviour_ext_ies_container; + // ExpectedUEActivityBehaviour ::= SEQUENCE struct expected_ue_activity_behaviour_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool expected_activity_period_present = false; - bool expected_idle_period_present = false; - bool source_of_ue_activity_behaviour_info_present = false; - bool ie_exts_present = false; - uint8_t expected_activity_period = 1; - uint8_t expected_idle_period = 1; - source_of_ue_activity_behaviour_info_e source_of_ue_activity_behaviour_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool expected_activity_period_present = false; + bool expected_idle_period_present = false; + bool source_of_ue_activity_behaviour_info_present = false; + bool ie_exts_present = false; + uint8_t expected_activity_period = 1; + uint8_t expected_idle_period = 1; + source_of_ue_activity_behaviour_info_e source_of_ue_activity_behaviour_info; + expected_ue_activity_behaviour_ext_ies_container ie_exts; // ... // sequence methods @@ -3868,15 +3579,14 @@ 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; + // TAIListForInactiveItem ::= SEQUENCE struct tai_list_for_inactive_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + tai_list_for_inactive_item_ext_ies_container ie_exts; // ... // sequence methods @@ -3891,22 +3601,21 @@ typedef ngap_protocol_ies_empty_o ue_id_idx_value_ext_ies_o; // CoreNetworkAssistanceInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o core_network_assist_info_ext_ies_o; +typedef protocol_ext_container_empty_l expected_ue_behaviour_ext_ies_container; + // ExpectedUEBehaviour ::= SEQUENCE struct expected_ue_behaviour_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool expected_ue_activity_behaviour_present = false; - bool expected_ho_interv_present = false; - bool expected_ue_mob_present = false; - bool expected_ue_moving_trajectory_present = false; - bool ie_exts_present = false; - expected_ue_activity_behaviour_s expected_ue_activity_behaviour; - expected_ho_interv_e expected_ho_interv; - expected_ue_mob_e expected_ue_mob; - expected_ue_moving_trajectory_l expected_ue_moving_trajectory; - ie_exts_l_ ie_exts; + bool ext = false; + bool expected_ue_activity_behaviour_present = false; + bool expected_ho_interv_present = false; + bool expected_ue_mob_present = false; + bool expected_ue_moving_trajectory_present = false; + bool ie_exts_present = false; + expected_ue_activity_behaviour_s expected_ue_activity_behaviour; + expected_ho_interv_e expected_ho_interv; + expected_ue_mob_e expected_ue_mob; + expected_ue_moving_trajectory_l expected_ue_moving_trajectory; + expected_ue_behaviour_ext_ies_container ie_exts; // ... // sequence methods @@ -3996,23 +3705,22 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l core_network_assist_info_ext_ies_container; + // CoreNetworkAssistanceInformation ::= SEQUENCE struct core_network_assist_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool uespecific_drx_present = false; - bool mico_mode_ind_present = false; - bool expected_ue_behaviour_present = false; - bool ie_exts_present = false; - ue_id_idx_value_c ueid_idx_value; - paging_drx_e uespecific_drx; - fixed_bitstring<8, false, true> periodic_regist_upd_timer; - mico_mode_ind_e mico_mode_ind; - tai_list_for_inactive_l tai_list_for_inactive; - expected_ue_behaviour_s expected_ue_behaviour; - ie_exts_l_ ie_exts; + bool ext = false; + bool uespecific_drx_present = false; + bool mico_mode_ind_present = false; + bool expected_ue_behaviour_present = false; + bool ie_exts_present = false; + ue_id_idx_value_c ueid_idx_value; + paging_drx_e uespecific_drx; + fixed_bitstring<8, false, true> periodic_regist_upd_timer; + mico_mode_ind_e mico_mode_ind; + tai_list_for_inactive_l tai_list_for_inactive; + expected_ue_behaviour_s expected_ue_behaviour; + core_network_assist_info_ext_ies_container ie_exts; // ... // sequence methods @@ -4030,15 +3738,14 @@ typedef ngap_protocol_ext_empty_o drb_status_dl18_ext_ies_o; // DRBStatusDL-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES typedef ngap_protocol_ies_empty_o drb_status_dl_ext_ies_o; +typedef protocol_ext_container_empty_l drb_status_dl12_ext_ies_container; + // DRBStatusDL12 ::= SEQUENCE struct drb_status_dl12_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables - bool ext = false; - bool ie_ext_present = false; - count_value_for_pdcp_sn12_s dl_count_value; - ie_ext_l_ ie_ext; + bool ext = false; + bool ie_ext_present = false; + count_value_for_pdcp_sn12_s dl_count_value; + drb_status_dl12_ext_ies_container ie_ext; // ... // sequence methods @@ -4047,15 +3754,14 @@ struct drb_status_dl12_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l drb_status_dl18_ext_ies_container; + // DRBStatusDL18 ::= SEQUENCE struct drb_status_dl18_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables - bool ext = false; - bool ie_ext_present = false; - count_value_for_pdcp_sn18_s dl_count_value; - ie_ext_l_ ie_ext; + bool ext = false; + bool ie_ext_present = false; + count_value_for_pdcp_sn18_s dl_count_value; + drb_status_dl18_ext_ies_container ie_ext; // ... // sequence methods @@ -4148,17 +3854,16 @@ typedef ngap_protocol_ext_empty_o drb_status_ul18_ext_ies_o; // DRBStatusUL-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES typedef ngap_protocol_ies_empty_o drb_status_ul_ext_ies_o; +typedef protocol_ext_container_empty_l drb_status_ul12_ext_ies_container; + // DRBStatusUL12 ::= SEQUENCE struct drb_status_ul12_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables bool ext = false; bool receive_status_of_ul_pdcp_sdus_present = false; bool ie_ext_present = false; count_value_for_pdcp_sn12_s ul_count_value; bounded_bitstring<1, 2048, false, true> receive_status_of_ul_pdcp_sdus; - ie_ext_l_ ie_ext; + drb_status_ul12_ext_ies_container ie_ext; // ... // sequence methods @@ -4167,17 +3872,16 @@ struct drb_status_ul12_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l drb_status_ul18_ext_ies_container; + // DRBStatusUL18 ::= SEQUENCE struct drb_status_ul18_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables bool ext = false; bool receive_status_of_ul_pdcp_sdus_present = false; bool ie_ext_present = false; count_value_for_pdcp_sn18_s ul_count_value; bounded_bitstring<1, 131072, false, true> receive_status_of_ul_pdcp_sdus; - ie_ext_l_ ie_ext; + drb_status_ul18_ext_ies_container ie_ext; // ... // sequence methods @@ -4264,17 +3968,16 @@ private: // DRBsSubjectToStatusTransferItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o drbs_subject_to_status_transfer_item_ext_ies_o; +typedef protocol_ext_container_empty_l drbs_subject_to_status_transfer_item_ext_ies_container; + // DRBsSubjectToStatusTransferItem ::= SEQUENCE struct drbs_subject_to_status_transfer_item_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables - bool ext = false; - bool ie_ext_present = false; - uint8_t drb_id = 1; - drb_status_ul_c drb_status_ul; - drb_status_dl_c drb_status_dl; - ie_ext_l_ ie_ext; + bool ext = false; + bool ie_ext_present = false; + uint8_t drb_id = 1; + drb_status_ul_c drb_status_ul; + drb_status_dl_c drb_status_dl; + drbs_subject_to_status_transfer_item_ext_ies_container ie_ext; // ... // sequence methods @@ -4289,16 +3992,15 @@ using drbs_subject_to_status_transfer_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; +typedef protocol_ext_container_empty_l data_forwarding_resp_drb_item_ext_ies_container; + // DataForwardingResponseDRBItem ::= SEQUENCE struct data_forwarding_resp_drb_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool dlforwarding_up_tnl_info_present = false; - bool ulforwarding_up_tnl_info_present = false; - bool ie_exts_present = false; - uint8_t drb_id = 1; - up_transport_layer_info_c dlforwarding_up_tnl_info; - up_transport_layer_info_c ulforwarding_up_tnl_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool dlforwarding_up_tnl_info_present = false; + bool ulforwarding_up_tnl_info_present = false; + bool ie_exts_present = false; + uint8_t drb_id = 1; + up_transport_layer_info_c dlforwarding_up_tnl_info; + up_transport_layer_info_c ulforwarding_up_tnl_info; + data_forwarding_resp_drb_item_ext_ies_container ie_exts; // ... // sequence methods @@ -4339,7 +4040,7 @@ using data_forwarding_resp_drb_list_l = dyn_array(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - fixed_octstring<8, true>& ngran_trace_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_octstring<8, true>& ngran_trace_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - fixed_octstring<8, true>& set_ngran_trace_id() - { - set(types::ngran_trace_id); - return c.get >(); - } + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + fixed_octstring<8, true>& ngran_trace_id(); + 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; private: types type_; @@ -4420,27 +4082,26 @@ struct deactiv_trace_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DeactivateTrace ::= SEQUENCE -struct deactiv_trace_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct deactiv_trace_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; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > ngran_trace_id; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + deactiv_trace_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// DeactivateTrace ::= SEQUENCE +struct deactiv_trace_s { + bool ext = false; + deactiv_trace_ies_container protocol_ies; // ... // sequence methods @@ -4464,16 +4125,15 @@ typedef ngap_protocol_ext_empty_o rat_restricts_item_ext_ies_o; // ServiceAreaInformation-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o service_area_info_item_ext_ies_o; +typedef protocol_ext_container_empty_l forbidden_area_info_item_ext_ies_container; + // ForbiddenAreaInformation-Item ::= SEQUENCE struct forbidden_area_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - forbidden_tacs_l forbidden_tacs; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + forbidden_tacs_l forbidden_tacs; + forbidden_area_info_item_ext_ies_container ie_exts; // ... // sequence methods @@ -4482,16 +4142,15 @@ 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; + // RATRestrictions-Item ::= SEQUENCE struct rat_restricts_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - fixed_bitstring<8, true, true> rat_restrict_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + fixed_bitstring<8, true, true> rat_restrict_info; + rat_restricts_item_ext_ies_container ie_exts; // ... // sequence methods @@ -4500,19 +4159,18 @@ 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; + // ServiceAreaInformation-Item ::= SEQUENCE struct service_area_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool allowed_tacs_present = false; - bool not_allowed_tacs_present = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - allowed_tacs_l allowed_tacs; - not_allowed_tacs_l not_allowed_tacs; - ie_exts_l_ ie_exts; + bool ext = false; + bool allowed_tacs_present = false; + bool not_allowed_tacs_present = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + allowed_tacs_l allowed_tacs; + not_allowed_tacs_l not_allowed_tacs; + service_area_info_item_ext_ies_container ie_exts; // ... // sequence methods @@ -4529,7 +4187,7 @@ using forbidden_area_info_l = dyn_array; // MobilityRestrictionList-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct mob_restrict_list_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { last_eutran_plmn_id, nulltype } value; @@ -4568,36 +4226,35 @@ 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; -// MobilityRestrictionList ::= SEQUENCE -struct mob_restrict_list_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct mob_restrict_list_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool last_eutran_plmn_id_present = false; - ie_field_s > last_eutran_plmn_id; + // member variables + bool last_eutran_plmn_id_present = false; + ie_field_s > last_eutran_plmn_id; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + mob_restrict_list_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - bool equivalent_plmns_present = false; - bool rat_restricts_present = false; - bool forbidden_area_info_present = false; - bool service_area_info_present = false; - bool ie_exts_present = false; - fixed_octstring<3, true> serving_plmn; - equivalent_plmns_l equivalent_plmns; - rat_restricts_l rat_restricts; - forbidden_area_info_l forbidden_area_info; - service_area_info_l service_area_info; - ie_exts_l_ ie_exts; +// MobilityRestrictionList ::= SEQUENCE +struct mob_restrict_list_s { + bool ext = false; + bool equivalent_plmns_present = false; + bool rat_restricts_present = false; + bool forbidden_area_info_present = false; + bool service_area_info_present = false; + bool ie_exts_present = false; + fixed_octstring<3, true> serving_plmn; + equivalent_plmns_l equivalent_plmns; + rat_restricts_l rat_restricts; + forbidden_area_info_l forbidden_area_info; + service_area_info_l service_area_info; + mob_restrict_list_ext_ies_container ie_exts; // ... // sequence methods @@ -4606,16 +4263,15 @@ 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; + // UEAggregateMaximumBitRate ::= SEQUENCE struct ue_aggregate_maximum_bit_rate_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint64_t ueaggregate_maximum_bit_rate_dl = 0; - uint64_t ueaggregate_maximum_bit_rate_ul = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint64_t ueaggregate_maximum_bit_rate_dl = 0; + uint64_t ueaggregate_maximum_bit_rate_ul = 0; + ue_aggregate_maximum_bit_rate_ext_ies_container ie_exts; // ... // sequence methods @@ -4626,7 +4282,7 @@ struct ue_aggregate_maximum_bit_rate_s { // DownlinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct dl_nas_transport_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -4657,141 +4313,24 @@ struct dl_nas_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& old_amf() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - uint16_t& ran_paging_prio() - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - mob_restrict_list_s& mob_restrict_list() - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& idx_to_rfsp() - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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>& old_amf() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const uint16_t& ran_paging_prio() const - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const mob_restrict_list_s& mob_restrict_list() const - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& idx_to_rfsp() const - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - printable_string<1, 150, true, true>& set_old_amf() - { - set(types::old_amf); - return c.get >(); - } - uint16_t& set_ran_paging_prio() - { - set(types::ran_paging_prio); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - mob_restrict_list_s& set_mob_restrict_list() - { - set(types::mob_restrict_list); - return c.get(); - } - uint16_t& set_idx_to_rfsp() - { - set(types::idx_to_rfsp); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& set_ue_aggregate_maximum_bit_rate() - { - set(types::ue_aggregate_maximum_bit_rate); - return c.get(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + printable_string<1, 150, true, true>& old_amf(); + uint16_t& ran_paging_prio(); + unbounded_octstring& nas_pdu(); + mob_restrict_list_s& mob_restrict_list(); + uint16_t& idx_to_rfsp(); + ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate(); + allowed_nssai_l& allowed_nssai(); + 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 uint16_t& ran_paging_prio() const; + const unbounded_octstring& nas_pdu() const; + const mob_restrict_list_s& mob_restrict_list() const; + const uint16_t& idx_to_rfsp() const; + const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const; + const allowed_nssai_l& allowed_nssai() const; private: types type_; @@ -4813,52 +4352,51 @@ struct dl_nas_transport_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DownlinkNASTransport ::= SEQUENCE -struct dl_nas_transport_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool old_amf_present = false; - bool ran_paging_prio_present = false; - bool mob_restrict_list_present = false; - bool idx_to_rfsp_present = false; - bool ue_aggregate_maximum_bit_rate_present = false; - bool allowed_nssai_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s > old_amf; - ie_field_s > ran_paging_prio; - ie_field_s > nas_pdu; - ie_field_s mob_restrict_list; - ie_field_s > idx_to_rfsp; - ie_field_s ue_aggregate_maximum_bit_rate; - ie_field_s > allowed_nssai; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct dl_nas_transport_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + bool old_amf_present = false; + bool ran_paging_prio_present = false; + bool mob_restrict_list_present = false; + bool idx_to_rfsp_present = false; + bool ue_aggregate_maximum_bit_rate_present = false; + bool allowed_nssai_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > old_amf; + ie_field_s > ran_paging_prio; + ie_field_s > nas_pdu; + ie_field_s mob_restrict_list; + ie_field_s > idx_to_rfsp; + ie_field_s ue_aggregate_maximum_bit_rate; + ie_field_s > allowed_nssai; // sequence methods + dl_nas_transport_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// DownlinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES -struct dl_non_ueassociated_nrp_pa_transport_ies_o { - // Value ::= CLASS OPEN TYPE - struct value_c { - struct types_opts { +// DownlinkNASTransport ::= SEQUENCE +struct dl_nas_transport_s { + bool ext = false; + dl_nas_transport_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// DownlinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES +struct dl_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; @@ -4876,36 +4414,10 @@ struct dl_non_ueassociated_nrp_pa_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - unbounded_octstring& routing_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& nrp_pa_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& routing_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& nrp_pa_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& set_routing_id() - { - set(types::routing_id); - return c.get >(); - } - unbounded_octstring& set_nrp_pa_pdu() - { - set(types::nrp_pa_pdu); - return c.get >(); - } + 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_; @@ -4922,26 +4434,25 @@ struct dl_non_ueassociated_nrp_pa_transport_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DownlinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -struct dl_non_ueassociated_nrp_pa_transport_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct dl_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; + // member variables + ie_field_s > routing_id; + ie_field_s > nrp_pa_pdu; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + dl_non_ueassociated_nrp_pa_transport_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// DownlinkNonUEAssociatedNRPPaTransport ::= SEQUENCE +struct dl_non_ueassociated_nrp_pa_transport_s { + bool ext = false; + dl_non_ueassociated_nrp_pa_transport_ies_container protocol_ies; // ... // sequence methods @@ -4956,18 +4467,17 @@ typedef ngap_protocol_ext_empty_o xn_ext_tla_item_ext_ies_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; + // XnExtTLA-Item ::= SEQUENCE struct xn_ext_tla_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ipsec_tla_present = false; bool gtp_tlas_present = false; bool ie_exts_present = false; bounded_bitstring<1, 160, true, true> ipsec_tla; xn_gtp_tlas_l gtp_tlas; - ie_exts_l_ ie_exts; + xn_ext_tla_item_ext_ies_container ie_exts; // ... // sequence methods @@ -4988,17 +4498,16 @@ typedef ngap_protocol_ext_empty_o xn_tnl_cfg_info_ext_ies_o; // SONInformationReply-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o son_info_reply_ext_ies_o; +typedef protocol_ext_container_empty_l xn_tnl_cfg_info_ext_ies_container; + // XnTNLConfigurationInfo ::= SEQUENCE struct xn_tnl_cfg_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool xn_extended_transport_layer_addresses_present = false; - bool ie_exts_present = false; - xn_tlas_l xn_transport_layer_addresses; - xn_ext_tlas_l xn_extended_transport_layer_addresses; - ie_exts_l_ ie_exts; + bool ext = false; + bool xn_extended_transport_layer_addresses_present = false; + bool ie_exts_present = false; + xn_tlas_l xn_transport_layer_addresses; + xn_ext_tlas_l xn_extended_transport_layer_addresses; + xn_tnl_cfg_info_ext_ies_container ie_exts; // ... // sequence methods @@ -5010,16 +4519,15 @@ 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; +typedef protocol_ext_container_empty_l son_info_reply_ext_ies_container; + // SONInformationReply ::= SEQUENCE struct son_info_reply_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool xn_tnl_cfg_info_present = false; - bool ie_exts_present = false; - xn_tnl_cfg_info_s xn_tnl_cfg_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool xn_tnl_cfg_info_present = false; + bool ie_exts_present = false; + xn_tnl_cfg_info_s xn_tnl_cfg_info; + son_info_reply_ext_ies_container ie_exts; // ... // sequence methods @@ -5118,16 +4626,15 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l source_ran_node_id_ext_ies_container; + // SourceRANNodeID ::= SEQUENCE struct source_ran_node_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - global_ran_node_id_c global_ran_node_id; - tai_s sel_tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + global_ran_node_id_c global_ran_node_id; + tai_s sel_tai; + source_ran_node_id_ext_ies_container ie_exts; // ... // sequence methods @@ -5136,16 +4643,15 @@ 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; + // TargetRANNodeID ::= SEQUENCE struct target_ran_node_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - global_ran_node_id_c global_ran_node_id; - tai_s sel_tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + global_ran_node_id_c global_ran_node_id; + tai_s sel_tai; + target_ran_node_id_ext_ies_container ie_exts; // ... // sequence methods @@ -5154,19 +4660,18 @@ 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; + // SONConfigurationTransfer ::= SEQUENCE struct son_cfg_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool xn_tnl_cfg_info_present = false; - bool ie_exts_present = false; - target_ran_node_id_s target_ran_node_id; - source_ran_node_id_s source_ran_node_id; - son_info_c son_info; - xn_tnl_cfg_info_s xn_tnl_cfg_info; - ie_exts_l_ ie_exts; + bool ext = false; + bool xn_tnl_cfg_info_present = false; + bool ie_exts_present = false; + target_ran_node_id_s target_ran_node_id; + source_ran_node_id_s source_ran_node_id; + son_info_c son_info; + xn_tnl_cfg_info_s xn_tnl_cfg_info; + son_cfg_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -5177,7 +4682,7 @@ struct son_cfg_transfer_s { // DownlinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct dl_ran_cfg_transfer_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { son_cfg_transfer_dl, endc_son_cfg_transfer_dl, nulltype } value; @@ -5197,36 +4702,10 @@ struct dl_ran_cfg_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - son_cfg_transfer_s& son_cfg_transfer_dl() - { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& endc_son_cfg_transfer_dl() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const son_cfg_transfer_s& son_cfg_transfer_dl() const - { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& endc_son_cfg_transfer_dl() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - son_cfg_transfer_s& set_son_cfg_transfer_dl() - { - set(types::son_cfg_transfer_dl); - return c.get(); - } - unbounded_octstring& set_endc_son_cfg_transfer_dl() - { - set(types::endc_son_cfg_transfer_dl); - return c.get >(); - } + son_cfg_transfer_s& son_cfg_transfer_dl(); + unbounded_octstring& endc_son_cfg_transfer_dl(); + const son_cfg_transfer_s& son_cfg_transfer_dl() const; + const unbounded_octstring& endc_son_cfg_transfer_dl() const; private: types type_; @@ -5243,28 +4722,27 @@ struct dl_ran_cfg_transfer_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DownlinkRANConfigurationTransfer ::= SEQUENCE -struct dl_ran_cfg_transfer_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool son_cfg_transfer_dl_present = false; - bool endc_son_cfg_transfer_dl_present = false; - ie_field_s son_cfg_transfer_dl; - ie_field_s > endc_son_cfg_transfer_dl; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct dl_ran_cfg_transfer_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool son_cfg_transfer_dl_present = false; + bool endc_son_cfg_transfer_dl_present = false; + ie_field_s son_cfg_transfer_dl; + ie_field_s > endc_son_cfg_transfer_dl; + + // sequence methods + dl_ran_cfg_transfer_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// DownlinkRANConfigurationTransfer ::= SEQUENCE +struct dl_ran_cfg_transfer_s { + bool ext = false; + dl_ran_cfg_transfer_ies_container protocol_ies; // ... // sequence methods @@ -5276,15 +4754,14 @@ 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; +typedef protocol_ext_container_empty_l ran_status_transfer_transparent_container_ext_ies_container; + // RANStatusTransfer-TransparentContainer ::= SEQUENCE struct ran_status_transfer_transparent_container_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - drbs_subject_to_status_transfer_list_l drbs_subject_to_status_transfer_list; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + drbs_subject_to_status_transfer_list_l drbs_subject_to_status_transfer_list; + ran_status_transfer_transparent_container_ext_ies_container ie_exts; // ... // sequence methods @@ -5295,7 +4772,7 @@ struct ran_status_transfer_transparent_container_s { // DownlinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct dl_ran_status_transfer_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -5315,51 +4792,12 @@ struct dl_ran_status_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container() - { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& ran_status_transfer_transparent_container() const - { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ran_status_transfer_transparent_container_s& set_ran_status_transfer_transparent_container() - { - set(types::ran_status_transfer_transparent_container); - return c.get(); - } + 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_; @@ -5376,27 +4814,26 @@ struct dl_ran_status_transfer_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DownlinkRANStatusTransfer ::= SEQUENCE -struct dl_ran_status_transfer_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct dl_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; + // 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + dl_ran_status_transfer_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// DownlinkRANStatusTransfer ::= SEQUENCE +struct dl_ran_status_transfer_s { + bool ext = false; + dl_ran_status_transfer_ies_container protocol_ies; // ... // sequence methods @@ -5407,7 +4844,7 @@ struct dl_ran_status_transfer_s { // DownlinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct dl_ueassociated_nrp_pa_transport_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -5427,66 +4864,14 @@ struct dl_ueassociated_nrp_pa_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& routing_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& nrp_pa_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& routing_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& nrp_pa_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_routing_id() - { - set(types::routing_id); - return c.get >(); - } - unbounded_octstring& set_nrp_pa_pdu() - { - set(types::nrp_pa_pdu); - return c.get >(); - } + 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_; @@ -5503,28 +4888,27 @@ struct dl_ueassociated_nrp_pa_transport_ies_o { static presence_e get_presence(const uint32_t& id); }; -// DownlinkUEAssociatedNRPPaTransport ::= SEQUENCE -struct dl_ueassociated_nrp_pa_transport_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct dl_ueassociated_nrp_pa_transport_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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; + + // sequence methods + dl_ueassociated_nrp_pa_transport_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// DownlinkUEAssociatedNRPPaTransport ::= SEQUENCE +struct dl_ueassociated_nrp_pa_transport_s { + bool ext = false; + dl_ueassociated_nrp_pa_transport_ies_container protocol_ies; // ... // sequence methods @@ -5547,16 +4931,15 @@ 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; +typedef protocol_ext_container_empty_l packet_error_rate_ext_ies_container; + // PacketErrorRate ::= SEQUENCE struct packet_error_rate_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t per_scalar = 0; - uint8_t per_exponent = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint8_t per_scalar = 0; + uint8_t per_exponent = 0; + packet_error_rate_ext_ies_container ie_exts; // ... // sequence methods @@ -5565,25 +4948,24 @@ struct packet_error_rate_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l dynamic5_qi_descriptor_ext_ies_container; + // Dynamic5QIDescriptor ::= SEQUENCE struct dynamic5_qi_descriptor_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool five_qi_present = false; - bool delay_crit_present = false; - bool averaging_win_present = false; - bool maximum_data_burst_volume_present = false; - bool ie_exts_present = false; - uint8_t prio_level_qos = 1; - uint16_t packet_delay_budget = 0; - packet_error_rate_s packet_error_rate; - uint16_t five_qi = 0; - delay_crit_e delay_crit; - uint16_t averaging_win = 0; - uint16_t maximum_data_burst_volume = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool five_qi_present = false; + bool delay_crit_present = false; + bool averaging_win_present = false; + bool maximum_data_burst_volume_present = false; + bool ie_exts_present = false; + uint8_t prio_level_qos = 1; + uint16_t packet_delay_budget = 0; + packet_error_rate_s packet_error_rate; + uint16_t five_qi = 0; + delay_crit_e delay_crit; + uint16_t averaging_win = 0; + uint16_t maximum_data_burst_volume = 0; + dynamic5_qi_descriptor_ext_ies_container ie_exts; // ... // sequence methods @@ -5603,17 +4985,16 @@ typedef enumerated dl_forwarding_e; // E-RABInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o e_rab_info_item_ext_ies_o; +typedef protocol_ext_container_empty_l e_rab_info_item_ext_ies_container; + // E-RABInformationItem ::= SEQUENCE struct e_rab_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool dlforwarding_present = false; - bool ie_exts_present = false; - uint8_t e_rab_id = 0; - dl_forwarding_e dlforwarding; - ie_exts_l_ ie_exts; + bool ext = false; + bool dlforwarding_present = false; + bool ie_exts_present = false; + uint8_t e_rab_id = 0; + dl_forwarding_e dlforwarding; + e_rab_info_item_ext_ies_container ie_exts; // ... // sequence methods @@ -5628,16 +5009,15 @@ using e_rab_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; +typedef protocol_ext_container_empty_l eps_tai_ext_ies_container; + // EPS-TAI ::= SEQUENCE struct eps_tai_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> plmn_id; - fixed_octstring<2, true> eps_tac; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + fixed_octstring<3, true> plmn_id; + fixed_octstring<2, true> eps_tac; + eps_tai_ext_ies_container ie_exts; // ... // sequence methods @@ -5676,17 +5056,16 @@ struct emergency_service_target_cn_opts { }; typedef enumerated emergency_service_target_cn_e; +typedef protocol_ext_container_empty_l emergency_fallback_ind_ext_ies_container; + // EmergencyFallbackIndicator ::= SEQUENCE struct emergency_fallback_ind_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool emergency_service_target_cn_present = false; - bool ie_exts_present = false; - emergency_fallback_request_ind_e emergency_fallback_request_ind; - emergency_service_target_cn_e emergency_service_target_cn; - ie_exts_l_ ie_exts; + bool ext = false; + bool emergency_service_target_cn_present = false; + bool ie_exts_present = false; + emergency_fallback_request_ind_e emergency_fallback_request_ind; + emergency_service_target_cn_e emergency_service_target_cn; + emergency_fallback_ind_ext_ies_container ie_exts; // ... // sequence methods @@ -5697,7 +5076,7 @@ struct emergency_fallback_ind_s { // ErrorIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct error_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; @@ -5717,66 +5096,14 @@ struct error_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -5793,32 +5120,31 @@ struct error_ind_ies_o { static presence_e get_presence(const uint32_t& id); }; -// ErrorIndication ::= SEQUENCE -struct error_ind_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool amf_ue_ngap_id_present = false; - bool ran_ue_ngap_id_present = false; - bool cause_present = false; - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct error_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool amf_ue_ngap_id_present = false; + bool ran_ue_ngap_id_present = false; + bool cause_present = false; + 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 + error_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// ErrorIndication ::= SEQUENCE +struct error_ind_s { + bool ext = false; + error_ind_ies_container protocol_ies; // ... // sequence methods @@ -5830,17 +5156,16 @@ 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; +typedef protocol_ext_container_empty_l five_g_s_tmsi_ext_ies_container; + // FiveG-S-TMSI ::= SEQUENCE struct five_g_s_tmsi_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; fixed_bitstring<10, false, true> amf_set_id; fixed_bitstring<6, false, true> amf_pointer; fixed_octstring<4, true> five_g_tmsi; - ie_exts_l_ ie_exts; + five_g_s_tmsi_ext_ies_container ie_exts; // ... // sequence methods @@ -5860,24 +5185,23 @@ struct notif_ctrl_opts { }; typedef enumerated notif_ctrl_e; +typedef protocol_ext_container_empty_l gbr_qos_info_ext_ies_container; + // GBR-QosInformation ::= SEQUENCE struct gbr_qos_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool notif_ctrl_present = false; - bool maximum_packet_loss_rate_dl_present = false; - bool maximum_packet_loss_rate_ul_present = false; - bool ie_exts_present = false; - uint64_t maximum_flow_bit_rate_dl = 0; - uint64_t maximum_flow_bit_rate_ul = 0; - uint64_t guaranteed_flow_bit_rate_dl = 0; - uint64_t guaranteed_flow_bit_rate_ul = 0; - notif_ctrl_e notif_ctrl; - uint16_t maximum_packet_loss_rate_dl = 0; - uint16_t maximum_packet_loss_rate_ul = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool notif_ctrl_present = false; + bool maximum_packet_loss_rate_dl_present = false; + bool maximum_packet_loss_rate_ul_present = false; + bool ie_exts_present = false; + uint64_t maximum_flow_bit_rate_dl = 0; + uint64_t maximum_flow_bit_rate_ul = 0; + uint64_t guaranteed_flow_bit_rate_dl = 0; + uint64_t guaranteed_flow_bit_rate_ul = 0; + notif_ctrl_e notif_ctrl; + uint16_t maximum_packet_loss_rate_dl = 0; + uint16_t maximum_packet_loss_rate_ul = 0; + gbr_qos_info_ext_ies_container ie_exts; // ... // sequence methods @@ -5888,7 +5212,7 @@ struct gbr_qos_info_s { // HandoverCancelIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_cancel_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, nulltype } value; @@ -5908,51 +5232,12 @@ struct ho_cancel_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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; private: types type_; @@ -5969,27 +5254,26 @@ struct ho_cancel_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverCancel ::= SEQUENCE -struct ho_cancel_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct ho_cancel_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; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s cause; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + ho_cancel_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// HandoverCancel ::= SEQUENCE +struct ho_cancel_s { + bool ext = false; + ho_cancel_ies_container protocol_ies; // ... // sequence methods @@ -6000,7 +5284,7 @@ struct ho_cancel_s { // HandoverCancelAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_cancel_ack_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, crit_diagnostics, nulltype } value; @@ -6020,51 +5304,12 @@ struct ho_cancel_ack_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const uint64_t& ran_ue_ngap_id() const; + const crit_diagnostics_s& crit_diagnostics() const; private: types type_; @@ -6081,28 +5326,27 @@ struct ho_cancel_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverCancelAcknowledge ::= SEQUENCE -struct ho_cancel_ack_s { - struct protocol_ies_l_ { - 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 crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_cancel_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s crit_diagnostics; + + // sequence methods + ho_cancel_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverCancelAcknowledge ::= SEQUENCE +struct ho_cancel_ack_s { + bool ext = false; + ho_cancel_ack_ies_container protocol_ies; // ... // sequence methods @@ -6114,16 +5358,15 @@ struct ho_cancel_ack_s { // QosFlowPerTNLInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o qos_flow_per_tnl_info_ext_ies_o; +typedef protocol_ext_container_empty_l qos_flow_per_tnl_info_ext_ies_container; + // QosFlowPerTNLInformation ::= SEQUENCE struct qos_flow_per_tnl_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -6135,15 +5378,14 @@ struct qos_flow_per_tnl_info_s { // 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; + // QosFlowPerTNLInformationItem ::= SEQUENCE struct qos_flow_per_tnl_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - qos_flow_per_tnl_info_s qos_flow_per_tnl_info; - ie_exts_l_ ie_exts; + 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 @@ -6158,15 +5400,14 @@ 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; +typedef protocol_ext_container_empty_l qos_flow_to_be_forwarded_item_ext_ies_container; + // QosFlowToBeForwardedItem ::= SEQUENCE struct qos_flow_to_be_forwarded_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -6177,7 +5418,7 @@ struct qos_flow_to_be_forwarded_item_s { // HandoverCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct ho_cmd_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { add_dl_forwarding_uptnl_info, nulltype } value; @@ -6213,33 +5454,32 @@ 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; -// HandoverCommandTransfer ::= SEQUENCE -struct ho_cmd_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct ho_cmd_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool add_dl_forwarding_uptnl_info_present = false; - ie_field_s > add_dl_forwarding_uptnl_info; + // member variables + bool add_dl_forwarding_uptnl_info_present = false; + ie_field_s > add_dl_forwarding_uptnl_info; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + ho_cmd_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - 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; - ie_exts_l_ ie_exts; +// 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; + ho_cmd_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -6248,15 +5488,14 @@ struct ho_cmd_transfer_s { 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + ho_prep_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -6271,16 +5510,15 @@ 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; +typedef protocol_ext_container_empty_l pdu_session_res_ho_item_ext_ies_container; + // PDUSessionResourceHandoverItem ::= SEQUENCE struct pdu_session_res_ho_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_cmd_transfer; - ie_exts_l_ ie_exts; + 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 @@ -6289,16 +5527,15 @@ 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; + // PDUSessionResourceToReleaseItemHOCmd ::= SEQUENCE struct pdu_session_res_to_release_item_ho_cmd_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_prep_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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 @@ -6308,12 +5545,12 @@ struct pdu_session_res_to_release_item_ho_cmd_s { }; // HandoverType ::= ENUMERATED -struct ho_type_opts { +struct handov_type_opts { enum options { intra5gs, fivegs_to_eps, eps_to_minus5gs, /*...*/ nulltype } value; std::string to_string() const; }; -typedef enumerated ho_type_e; +typedef enumerated handov_type_e; // PDUSessionResourceHandoverList ::= SEQUENCE (SIZE (1..256)) OF PDUSessionResourceHandoverItem using pdu_session_res_ho_list_l = dyn_array; @@ -6323,13 +5560,13 @@ using pdu_session_res_to_release_list_ho_cmd_l = dyn_array(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ho_type_e& ho_type() - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_security_params_from_ngran() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - pdu_session_res_ho_list_l& 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& pdu_session_res_to_release_list_ho_cmd() - { - assert_choice_type("PDUSessionResourceToReleaseListHOCmd", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& target_to_source_transparent_container() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const ho_type_e& ho_type() const - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& 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& 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& pdu_session_res_to_release_list_ho_cmd() const - { - assert_choice_type("PDUSessionResourceToReleaseListHOCmd", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& target_to_source_transparent_container() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ho_type_e& set_ho_type() - { - set(types::ho_type); - return c.get(); - } - unbounded_octstring& set_nas_security_params_from_ngran() - { - set(types::nas_security_params_from_ngran); - return c.get >(); - } - pdu_session_res_ho_list_l& set_pdu_session_res_ho_list() - { - set(types::pdu_session_res_ho_list); - return c.get(); - } - pdu_session_res_to_release_list_ho_cmd_l& set_pdu_session_res_to_release_list_ho_cmd() - { - set(types::pdu_session_res_to_release_list_ho_cmd); - return c.get(); - } - unbounded_octstring& set_target_to_source_transparent_container() - { - set(types::target_to_source_transparent_container); - return c.get >(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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: types type_; @@ -6493,36 +5626,35 @@ struct ho_cmd_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverCommand ::= SEQUENCE -struct ho_cmd_s { - struct protocol_ies_l_ { - 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 ho_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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_cmd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverCommand ::= SEQUENCE +struct ho_cmd_s { + bool ext = false; + ho_cmd_ies_container protocol_ies; // ... // sequence methods @@ -6533,7 +5665,7 @@ struct ho_cmd_s { // HandoverFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, cause, crit_diagnostics, nulltype } value; @@ -6555,51 +5687,12 @@ struct ho_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + uint64_t& amf_ue_ngap_id(); + cause_c& cause(); + crit_diagnostics_s& crit_diagnostics(); + const uint64_t& amf_ue_ngap_id() const; + const cause_c& cause() const; + const crit_diagnostics_s& crit_diagnostics() const; private: types type_; @@ -6616,28 +5709,27 @@ struct ho_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverFailure ::= SEQUENCE -struct ho_fail_s { - struct protocol_ies_l_ { - 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 cause; - ie_field_s crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + bool crit_diagnostics_present = false; + ie_field_s > amf_ue_ngap_id; + ie_field_s cause; + ie_field_s crit_diagnostics; + + // sequence methods + ho_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverFailure ::= SEQUENCE +struct ho_fail_s { + bool ext = false; + ho_fail_ies_container protocol_ies; // ... // sequence methods @@ -6658,18 +5750,17 @@ typedef ngap_protocol_ext_empty_o user_location_info_nr_ext_ies_o; // UserLocationInformation-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES typedef ngap_protocol_ies_empty_o user_location_info_ext_ies_o; +typedef protocol_ext_container_empty_l user_location_info_eutra_ext_ies_container; + // UserLocationInformationEUTRA ::= SEQUENCE struct user_location_info_eutra_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool time_stamp_present = false; - bool ie_exts_present = false; - eutra_cgi_s eutra_cgi; - tai_s tai; - fixed_octstring<4, true> time_stamp; - ie_exts_l_ ie_exts; + bool ext = false; + bool time_stamp_present = false; + bool ie_exts_present = false; + eutra_cgi_s eutra_cgi; + tai_s tai; + fixed_octstring<4, true> time_stamp; + user_location_info_eutra_ext_ies_container ie_exts; // ... // sequence methods @@ -6678,16 +5769,15 @@ 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; + // UserLocationInformationN3IWF ::= SEQUENCE struct user_location_info_n3_iwf_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - bounded_bitstring<1, 160, true, true> ipaddress; - fixed_octstring<2, true> port_num; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + bounded_bitstring<1, 160, true, true> ipaddress; + fixed_octstring<2, true> port_num; + user_location_info_n3_iwf_ext_ies_container ie_exts; // ... // sequence methods @@ -6696,18 +5786,17 @@ 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; + // UserLocationInformationNR ::= SEQUENCE struct user_location_info_nr_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool time_stamp_present = false; - bool ie_exts_present = false; - nr_cgi_s nr_cgi; - tai_s tai; - fixed_octstring<4, true> time_stamp; - ie_exts_l_ ie_exts; + bool ext = false; + bool time_stamp_present = false; + bool ie_exts_present = false; + nr_cgi_s nr_cgi; + tai_s tai; + fixed_octstring<4, true> time_stamp; + user_location_info_nr_ext_ies_container ie_exts; // ... // sequence methods @@ -6818,7 +5907,7 @@ private: // HandoverNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_notify_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, user_location_info, nulltype } value; @@ -6838,51 +5927,12 @@ struct ho_notify_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } + uint64_t& amf_ue_ngap_id(); + uint64_t& ran_ue_ngap_id(); + user_location_info_c& user_location_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; private: types type_; @@ -6899,27 +5949,26 @@ struct ho_notify_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverNotify ::= SEQUENCE -struct ho_notify_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +struct ho_notify_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 user_location_info; + // member variables + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s user_location_info; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + ho_notify_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// HandoverNotify ::= SEQUENCE +struct ho_notify_s { + bool ext = false; + ho_notify_ies_container protocol_ies; // ... // sequence methods @@ -6930,7 +5979,7 @@ struct ho_notify_s { // HandoverPreparationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_prep_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; @@ -6950,66 +5999,14 @@ struct ho_prep_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -7026,29 +6023,28 @@ struct ho_prep_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverPreparationFailure ::= SEQUENCE -struct ho_prep_fail_s { - struct protocol_ies_l_ { - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_prep_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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 + ho_prep_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverPreparationFailure ::= SEQUENCE +struct ho_prep_fail_s { + bool ext = false; + ho_prep_fail_ies_container protocol_ies; // ... // sequence methods @@ -7060,21 +6056,20 @@ struct ho_prep_fail_s { // 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; + // NonDynamic5QIDescriptor ::= SEQUENCE struct non_dynamic5_qi_descriptor_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -7191,22 +6186,21 @@ struct maximum_integrity_protected_data_rate_opts { }; typedef enumerated maximum_integrity_protected_data_rate_e; +typedef protocol_ext_container_empty_l qos_flow_level_qos_params_ext_ies_container; + // QosFlowLevelQosParameters ::= SEQUENCE struct qos_flow_level_qos_params_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -7240,18 +6234,17 @@ typedef enumerated integrity_protection_ind // PDUSessionAggregateMaximumBitRate-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_aggregate_maximum_bit_rate_ext_ies_o; +typedef protocol_ext_container_empty_l qos_flow_setup_request_item_ext_ies_container; + // QosFlowSetupRequestItem ::= SEQUENCE struct qos_flow_setup_request_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool e_rab_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 e_rab_id = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool e_rab_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 e_rab_id = 0; + qos_flow_setup_request_item_ext_ies_container ie_exts; // ... // sequence methods @@ -7262,7 +6255,7 @@ struct qos_flow_setup_request_item_s { // SecurityIndication-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct security_ind_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { maximum_integrity_protected_data_rate_dl, nulltype } value; @@ -7292,15 +6285,14 @@ struct security_ind_ext_ies_o { static presence_e get_presence(const uint32_t& id); }; +typedef protocol_ext_container_empty_l up_transport_layer_info_item_ext_ies_container; + // UPTransportLayerInformationItem ::= SEQUENCE struct up_transport_layer_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - up_transport_layer_info_c ngu_up_tnl_info; - ie_exts_l_ ie_exts; + 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 @@ -7317,16 +6309,15 @@ struct data_forwarding_not_possible_opts { }; typedef enumerated data_forwarding_not_possible_e; +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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -7346,31 +6337,30 @@ 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 { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct security_ind_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool maximum_integrity_protected_data_rate_dl_present = false; - ie_field_s maximum_integrity_protected_data_rate_dl; + // member variables + bool maximum_integrity_protected_data_rate_dl_present = false; + ie_field_s maximum_integrity_protected_data_rate_dl; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + security_ind_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables +// 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; - ie_exts_l_ ie_exts; + security_ind_ext_ies_container ie_exts; // ... // sequence methods @@ -7384,7 +6374,7 @@ 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 { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -7416,126 +6406,22 @@ struct pdu_session_res_setup_request_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() - { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - up_transport_layer_info_c& ul_ngu_up_tnl_info() - { - assert_choice_type("UPTransportLayerInformation", type_.to_string(), "Value"); - return c.get(); - } - up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() - { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); - } - data_forwarding_not_possible_e& data_forwarding_not_possible() - { - assert_choice_type("DataForwardingNotPossible", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_type_e& pdu_session_type() - { - assert_choice_type("PDUSessionType", type_.to_string(), "Value"); - return c.get(); - } - security_ind_s& security_ind() - { - assert_choice_type("SecurityIndication", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& network_instance() - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - qos_flow_setup_request_list_l& 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_aggregate_maximum_bit_rate() const - { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const up_transport_layer_info_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& add_ul_ngu_up_tnl_info() const - { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); - } - const data_forwarding_not_possible_e& data_forwarding_not_possible() const - { - assert_choice_type("DataForwardingNotPossible", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_type_e& pdu_session_type() const - { - assert_choice_type("PDUSessionType", type_.to_string(), "Value"); - return c.get(); - } - const security_ind_s& security_ind() const - { - assert_choice_type("SecurityIndication", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& network_instance() const - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - const qos_flow_setup_request_list_l& qos_flow_setup_request_list() const - { - assert_choice_type("QosFlowSetupRequestList", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_aggregate_maximum_bit_rate_s& set_pdu_session_aggregate_maximum_bit_rate() - { - set(types::pdu_session_aggregate_maximum_bit_rate); - return c.get(); - } - up_transport_layer_info_c& set_ul_ngu_up_tnl_info() - { - set(types::ul_ngu_up_tnl_info); - return c.get(); - } - up_transport_layer_info_list_l& set_add_ul_ngu_up_tnl_info() - { - set(types::add_ul_ngu_up_tnl_info); - return c.get(); - } - data_forwarding_not_possible_e& set_data_forwarding_not_possible() - { - set(types::data_forwarding_not_possible); - return c.get(); - } - pdu_session_type_e& set_pdu_session_type() - { - set(types::pdu_session_type); - return c.get(); - } - security_ind_s& set_security_ind() - { - set(types::security_ind); - return c.get(); - } - uint16_t& set_network_instance() - { - set(types::network_instance); - return c.get(); - } - qos_flow_setup_request_list_l& set_qos_flow_setup_request_list() - { - set(types::qos_flow_setup_request_list); - return c.get(); - } + 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_; @@ -7560,37 +6446,36 @@ struct pdu_session_res_setup_request_transfer_ies_o { // PDUSessionResourceSetupItemHOReq-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_ho_req_ext_ies_o; -// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE -struct pdu_session_res_setup_request_transfer_s { - struct protocol_ies_l_ { - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_setup_request_transfer_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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(bit_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; // ... // sequence methods @@ -7619,17 +6504,16 @@ typedef enumerated event_type_e; // LocationReportingRequestType-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o location_report_request_type_ext_ies_o; +typedef protocol_ext_container_empty_l pdu_session_res_setup_item_ho_req_ext_ies_container; + // PDUSessionResourceSetupItemHOReq ::= SEQUENCE struct pdu_session_res_setup_item_ho_req_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - s_nssai_s s_nssai; - unbounded_octstring ho_request_transfer; - ie_exts_l_ ie_exts; + 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 @@ -7672,20 +6556,19 @@ 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; +typedef protocol_ext_container_empty_l location_report_request_type_ext_ies_container; + // LocationReportingRequestType ::= SEQUENCE struct location_report_request_type_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -7726,16 +6609,15 @@ struct redirection_voice_fallback_opts { }; typedef enumerated redirection_voice_fallback_e; +typedef protocol_ext_container_empty_l security_context_ext_ies_container; + // SecurityContext ::= SEQUENCE struct security_context_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t next_hop_chaining_count = 0; - fixed_bitstring<256, false, true> next_hop_nh; - ie_exts_l_ ie_exts; + 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 @@ -7744,18 +6626,17 @@ 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables 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; - ie_exts_l_ ie_exts; + trace_activation_ext_ies_container ie_exts; // ... // sequence methods @@ -7764,19 +6645,18 @@ struct trace_activation_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l ue_security_cap_ext_ies_container; + // UESecurityCapabilities ::= SEQUENCE struct ue_security_cap_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; - // ... + 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 SRSASN_CODE pack(bit_ref& bref) const; @@ -7786,12 +6666,12 @@ struct ue_security_cap_s { // HandoverRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, - ho_type, + handov_type, cause, ue_aggregate_maximum_bit_rate, core_network_assist_info, @@ -7829,291 +6709,44 @@ struct ho_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - ho_type_e& ho_type() - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - core_network_assist_info_s& core_network_assist_info() - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - ue_security_cap_s& ue_security_cap() - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - security_context_s& security_context() - { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); - } - new_security_context_ind_e& new_security_context_ind() - { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nasc() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req() - { - assert_choice_type("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); - return c.get(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - trace_activation_s& trace_activation() - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<64, false, true>& masked_imeisv() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& source_to_target_transparent_container() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - mob_restrict_list_s& mob_restrict_list() - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - location_report_request_type_s& location_report_request_type() - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - guami_s& guami() - { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); - } - redirection_voice_fallback_e& redirection_voice_fallback() - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const ho_type_e& ho_type() const - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const core_network_assist_info_s& core_network_assist_info() const - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - const ue_security_cap_s& ue_security_cap() const - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - const security_context_s& security_context() const - { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); - } - const new_security_context_ind_e& new_security_context_ind() const - { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nasc() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const pdu_session_res_setup_list_ho_req_l& pdu_session_res_setup_list_ho_req() const - { - assert_choice_type("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); - return c.get(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const trace_activation_s& trace_activation() const - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<64, false, true>& masked_imeisv() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& source_to_target_transparent_container() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const mob_restrict_list_s& mob_restrict_list() const - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - const location_report_request_type_s& location_report_request_type() const - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - const guami_s& guami() const - { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); - } - const redirection_voice_fallback_e& redirection_voice_fallback() const - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - ho_type_e& set_ho_type() - { - set(types::ho_type); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& set_ue_aggregate_maximum_bit_rate() - { - set(types::ue_aggregate_maximum_bit_rate); - return c.get(); - } - core_network_assist_info_s& set_core_network_assist_info() - { - set(types::core_network_assist_info); - return c.get(); - } - ue_security_cap_s& set_ue_security_cap() - { - set(types::ue_security_cap); - return c.get(); - } - security_context_s& set_security_context() - { - set(types::security_context); - return c.get(); - } - new_security_context_ind_e& set_new_security_context_ind() - { - set(types::new_security_context_ind); - return c.get(); - } - unbounded_octstring& set_nasc() - { - set(types::nasc); - return c.get >(); - } - pdu_session_res_setup_list_ho_req_l& set_pdu_session_res_setup_list_ho_req() - { - set(types::pdu_session_res_setup_list_ho_req); - return c.get(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } - trace_activation_s& set_trace_activation() - { - set(types::trace_activation); - return c.get(); - } - fixed_bitstring<64, false, true>& set_masked_imeisv() - { - set(types::masked_imeisv); - return c.get >(); - } - unbounded_octstring& set_source_to_target_transparent_container() - { - set(types::source_to_target_transparent_container); - return c.get >(); - } - mob_restrict_list_s& set_mob_restrict_list() - { - set(types::mob_restrict_list); - return c.get(); - } - location_report_request_type_s& set_location_report_request_type() - { - set(types::location_report_request_type); - return c.get(); - } - rrc_inactive_transition_report_request_e& set_rrc_inactive_transition_report_request() - { - set(types::rrc_inactive_transition_report_request); - return c.get(); - } - guami_s& set_guami() - { - set(types::guami); - return c.get(); - } - redirection_voice_fallback_e& set_redirection_voice_fallback() - { - set(types::redirection_voice_fallback); - return c.get(); - } + 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_; @@ -8143,52 +6776,51 @@ struct ho_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverRequest ::= SEQUENCE -struct ho_request_s { - struct protocol_ies_l_ { - 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; - ie_field_s > amf_ue_ngap_id; - ie_field_s ho_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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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 + ho_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverRequest ::= SEQUENCE +struct ho_request_s { + bool ext = false; + ho_request_ies_container protocol_ies; // ... // sequence methods @@ -8216,16 +6848,15 @@ struct integrity_protection_result_opts { }; typedef enumerated integrity_protection_result_e; +typedef protocol_ext_container_empty_l qos_flow_with_cause_item_ext_ies_container; + // QosFlowWithCauseItem ::= SEQUENCE struct qos_flow_with_cause_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - cause_c cause; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -8239,7 +6870,7 @@ typedef ngap_protocol_ext_empty_o security_result_ext_ies_o; // HandoverRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct ho_request_ack_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { add_dluptnl_info_for_ho_list, nulltype } value; @@ -8275,16 +6906,15 @@ 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; + // SecurityResult ::= SEQUENCE struct security_result_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool ie_exts_present = false; integrity_protection_result_e integrity_protection_result; confidentiality_protection_result_e confidentiality_protection_result; - ie_exts_l_ ie_exts; + security_result_ext_ies_container ie_exts; // ... // sequence methods @@ -8293,37 +6923,36 @@ struct security_result_s { void to_json(json_writer& j) const; }; -// HandoverRequestAcknowledgeTransfer ::= SEQUENCE -struct ho_request_ack_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct ho_request_ack_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool add_dluptnl_info_for_ho_list_present = false; - ie_field_s > add_dluptnl_info_for_ho_list; + // member variables + bool add_dluptnl_info_for_ho_list_present = false; + ie_field_s > add_dluptnl_info_for_ho_list; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + ho_request_ack_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - 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; - ie_exts_l_ 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; + ho_request_ack_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -8332,17 +6961,16 @@ 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; + // HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE struct ho_res_alloc_unsuccessful_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - ie_exts_l_ ie_exts; + 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 @@ -8357,16 +6985,15 @@ 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; + // PDUSessionResourceAdmittedItem ::= SEQUENCE struct pdu_session_res_admitted_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_request_ack_transfer; - ie_exts_l_ ie_exts; + 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 @@ -8375,16 +7002,15 @@ 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; + // PDUSessionResourceFailedToSetupItemHOAck ::= SEQUENCE struct pdu_session_res_failed_to_setup_item_ho_ack_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_res_alloc_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -8401,7 +7027,7 @@ using pdu_session_res_failed_to_setup_list_ho_ack_l = dyn_array(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_admitted_list_l& 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& pdu_session_res_failed_to_setup_list_ho_ack() - { - assert_choice_type("PDUSessionResourceFailedToSetupListHOAck", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& target_to_source_transparent_container() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& 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& pdu_session_res_failed_to_setup_list_ho_ack() const - { - assert_choice_type("PDUSessionResourceFailedToSetupListHOAck", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& target_to_source_transparent_container() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_admitted_list_l& set_pdu_session_res_admitted_list() - { - set(types::pdu_session_res_admitted_list); - return c.get(); - } - pdu_session_res_failed_to_setup_list_ho_ack_l& set_pdu_session_res_failed_to_setup_list_ho_ack() - { - set(types::pdu_session_res_failed_to_setup_list_ho_ack); - return c.get(); - } - unbounded_octstring& set_target_to_source_transparent_container() - { - set(types::target_to_source_transparent_container); - return c.get >(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -8539,33 +7087,32 @@ struct ho_request_ack_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverRequestAcknowledge ::= SEQUENCE -struct ho_request_ack_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_request_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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; + + // sequence methods + ho_request_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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 @@ -8585,16 +7132,15 @@ typedef enumerated direct_forwar // HandoverRequiredTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o ho_required_transfer_ext_ies_o; +typedef protocol_ext_container_empty_l ho_required_transfer_ext_ies_container; + // HandoverRequiredTransfer ::= SEQUENCE struct ho_required_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool direct_forwarding_path_availability_present = false; - bool ie_exts_present = false; - direct_forwarding_path_availability_e direct_forwarding_path_availability; - ie_exts_l_ ie_exts; + 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 @@ -8609,16 +7155,15 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_item_ho_rqd_ext_ies_o; // TargeteNB-ID-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o targete_nb_id_ext_ies_o; +typedef protocol_ext_container_empty_l pdu_session_res_item_ho_rqd_ext_ies_container; + // PDUSessionResourceItemHORqd ::= SEQUENCE struct pdu_session_res_item_ho_rqd_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring ho_required_transfer; - ie_exts_l_ ie_exts; + 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 @@ -8630,16 +7175,15 @@ struct pdu_session_res_item_ho_rqd_s { // 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 targete_nb_id_ext_ies_container; + // TargeteNB-ID ::= SEQUENCE struct targete_nb_id_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - global_ng_enb_id_s global_enb_id; - eps_tai_s sel_eps_tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + global_ng_enb_id_s global_enb_id; + eps_tai_s sel_eps_tai; + targete_nb_id_ext_ies_container ie_exts; // ... // sequence methods @@ -8726,13 +7270,13 @@ private: // HandoverRequiredIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ho_required_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, - ho_type, + handov_type, cause, target_id, direct_forwarding_path_availability, @@ -8756,126 +7300,22 @@ struct ho_required_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ho_type_e& ho_type() - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - target_id_c& target_id() - { - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); - } - direct_forwarding_path_availability_e& direct_forwarding_path_availability() - { - assert_choice_type("DirectForwardingPathAvailability", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd() - { - assert_choice_type("PDUSessionResourceListHORqd", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& source_to_target_transparent_container() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const ho_type_e& ho_type() const - { - assert_choice_type("HandoverType", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const target_id_c& target_id() const - { - assert_choice_type("TargetID", type_.to_string(), "Value"); - return c.get(); - } - const direct_forwarding_path_availability_e& direct_forwarding_path_availability() const - { - assert_choice_type("DirectForwardingPathAvailability", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_list_ho_rqd_l& pdu_session_res_list_ho_rqd() const - { - assert_choice_type("PDUSessionResourceListHORqd", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& source_to_target_transparent_container() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ho_type_e& set_ho_type() - { - set(types::ho_type); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - target_id_c& set_target_id() - { - set(types::target_id); - return c.get(); - } - direct_forwarding_path_availability_e& set_direct_forwarding_path_availability() - { - set(types::direct_forwarding_path_availability); - return c.get(); - } - pdu_session_res_list_ho_rqd_l& set_pdu_session_res_list_ho_rqd() - { - set(types::pdu_session_res_list_ho_rqd); - return c.get(); - } - unbounded_octstring& set_source_to_target_transparent_container() - { - set(types::source_to_target_transparent_container); - return c.get >(); - } + 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_; @@ -8892,33 +7332,32 @@ struct ho_required_ies_o { static presence_e get_presence(const uint32_t& id); }; -// HandoverRequired ::= SEQUENCE -struct ho_required_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool direct_forwarding_path_availability_present = false; - ie_field_s > amf_ue_ngap_id; - ie_field_s > ran_ue_ngap_id; - ie_field_s ho_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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ho_required_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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 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_required_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverRequired ::= SEQUENCE +struct ho_required_s { + bool ext = false; + ho_required_ies_container protocol_ies; // ... // sequence methods @@ -8930,15 +7369,14 @@ struct ho_required_s { // RecommendedRANNodeItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o recommended_ran_node_item_ext_ies_o; +typedef protocol_ext_container_empty_l recommended_ran_node_item_ext_ies_container; + // RecommendedRANNodeItem ::= SEQUENCE struct recommended_ran_node_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - amf_paging_target_c amf_paging_target; - ie_exts_l_ ie_exts; + 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 @@ -8956,15 +7394,14 @@ 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - recommended_ran_node_list_l recommended_ran_node_list; - ie_exts_l_ ie_exts; + 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 @@ -8973,16 +7410,15 @@ struct recommended_ran_nodes_for_paging_s { 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -8997,17 +7433,16 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_setup_unsuccessful_transfer_ex // 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - ie_exts_l_ ie_exts; + 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 @@ -9016,16 +7451,15 @@ 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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 @@ -9039,7 +7473,7 @@ using pdu_session_res_failed_to_setup_list_cxt_fail_l = dyn_array(); - } - uint64_t& 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& pdu_session_res_failed_to_setup_list_cxt_fail() - { - assert_choice_type("PDUSessionResourceFailedToSetupListCxtFail", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& pdu_session_res_failed_to_setup_list_cxt_fail() const - { - assert_choice_type("PDUSessionResourceFailedToSetupListCxtFail", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_failed_to_setup_list_cxt_fail_l& set_pdu_session_res_failed_to_setup_list_cxt_fail() - { - set(types::pdu_session_res_failed_to_setup_list_cxt_fail); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -9157,32 +7526,31 @@ struct init_context_setup_fail_ies_o { static presence_e get_presence(const uint32_t& id); }; -// InitialContextSetupFailure ::= SEQUENCE -struct init_context_setup_fail_s { - struct protocol_ies_l_ { - 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; - ie_field_s crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct init_context_setup_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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 + init_context_setup_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// InitialContextSetupFailure ::= SEQUENCE +struct init_context_setup_fail_s { + bool ext = false; + init_context_setup_fail_ies_container protocol_ies; // ... // sequence methods @@ -9194,19 +7562,18 @@ struct init_context_setup_fail_s { // 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -9221,18 +7588,17 @@ 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -9243,7 +7609,7 @@ struct ue_radio_cap_for_paging_s { // InitialContextSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct init_context_setup_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -9285,306 +7651,46 @@ struct init_context_setup_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& old_amf() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - core_network_assist_info_s& core_network_assist_info() - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - guami_s& guami() - { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req() - { - assert_choice_type("PDUSessionResourceSetupListCxtReq", type_.to_string(), "Value"); - return c.get(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - ue_security_cap_s& ue_security_cap() - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<256, false, true>& security_key() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - trace_activation_s& trace_activation() - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - mob_restrict_list_s& mob_restrict_list() - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& ue_radio_cap() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint16_t& idx_to_rfsp() - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<64, false, true>& masked_imeisv() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - emergency_fallback_ind_s& emergency_fallback_ind() - { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); - } - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - redirection_voice_fallback_e& redirection_voice_fallback() - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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>& old_amf() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const core_network_assist_info_s& core_network_assist_info() const - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - const guami_s& guami() const - { - assert_choice_type("GUAMI", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_setup_list_cxt_req_l& pdu_session_res_setup_list_cxt_req() const - { - assert_choice_type("PDUSessionResourceSetupListCxtReq", type_.to_string(), "Value"); - return c.get(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const ue_security_cap_s& ue_security_cap() const - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<256, false, true>& security_key() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const trace_activation_s& trace_activation() const - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - const mob_restrict_list_s& mob_restrict_list() const - { - assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& ue_radio_cap() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint16_t& idx_to_rfsp() const - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<64, false, true>& masked_imeisv() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const emergency_fallback_ind_s& emergency_fallback_ind() const - { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); - } - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - const redirection_voice_fallback_e& redirection_voice_fallback() const - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - printable_string<1, 150, true, true>& set_old_amf() - { - set(types::old_amf); - return c.get >(); - } - ue_aggregate_maximum_bit_rate_s& set_ue_aggregate_maximum_bit_rate() - { - set(types::ue_aggregate_maximum_bit_rate); - return c.get(); - } - core_network_assist_info_s& set_core_network_assist_info() - { - set(types::core_network_assist_info); - return c.get(); - } - guami_s& set_guami() - { - set(types::guami); - return c.get(); - } - pdu_session_res_setup_list_cxt_req_l& set_pdu_session_res_setup_list_cxt_req() - { - set(types::pdu_session_res_setup_list_cxt_req); - return c.get(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } - ue_security_cap_s& set_ue_security_cap() - { - set(types::ue_security_cap); - return c.get(); - } - fixed_bitstring<256, false, true>& set_security_key() - { - set(types::security_key); - return c.get >(); - } - trace_activation_s& set_trace_activation() - { - set(types::trace_activation); - return c.get(); - } - mob_restrict_list_s& set_mob_restrict_list() - { - set(types::mob_restrict_list); - return c.get(); - } - unbounded_octstring& set_ue_radio_cap() - { - set(types::ue_radio_cap); - return c.get >(); - } - uint16_t& set_idx_to_rfsp() - { - set(types::idx_to_rfsp); - return c.get(); - } - fixed_bitstring<64, false, true>& set_masked_imeisv() - { - set(types::masked_imeisv); - return c.get >(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - emergency_fallback_ind_s& set_emergency_fallback_ind() - { - set(types::emergency_fallback_ind); - return c.get(); - } - rrc_inactive_transition_report_request_e& set_rrc_inactive_transition_report_request() - { - set(types::rrc_inactive_transition_report_request); - return c.get(); - } - ue_radio_cap_for_paging_s& set_ue_radio_cap_for_paging() - { - set(types::ue_radio_cap_for_paging); - return c.get(); - } - redirection_voice_fallback_e& set_redirection_voice_fallback() - { - set(types::redirection_voice_fallback); - return c.get(); - } + 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_; @@ -9614,58 +7720,57 @@ struct init_context_setup_request_ies_o { static presence_e get_presence(const uint32_t& id); }; -// InitialContextSetupRequest ::= SEQUENCE -struct init_context_setup_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct init_context_setup_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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; + + // sequence methods + init_context_setup_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; // ... // sequence methods @@ -9683,21 +7788,20 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_cxt_res_e // PDUSessionResourceSetupItemCxtRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_res_setup_item_cxt_res_ext_ies_o; +typedef protocol_ext_container_empty_l pdu_session_res_setup_resp_transfer_ext_ies_container; + // PDUSessionResourceSetupResponseTransfer ::= SEQUENCE struct pdu_session_res_setup_resp_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -9706,16 +7810,15 @@ 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; + // PDUSessionResourceFailedToSetupItemCxtRes ::= SEQUENCE struct pdu_session_res_failed_to_setup_item_cxt_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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 @@ -9724,16 +7827,15 @@ struct pdu_session_res_failed_to_setup_item_cxt_res_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_setup_item_cxt_res_ext_ies_container; + // PDUSessionResourceSetupItemCxtRes ::= SEQUENCE struct pdu_session_res_setup_item_cxt_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_resp_transfer; - ie_exts_l_ ie_exts; + 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 @@ -9750,7 +7852,7 @@ using pdu_session_res_setup_list_cxt_res_l = dyn_array(); - } - uint64_t& 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& 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& pdu_session_res_failed_to_setup_list_cxt_res() - { - assert_choice_type("PDUSessionResourceFailedToSetupListCxtRes", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& 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& 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& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_setup_list_cxt_res_l& set_pdu_session_res_setup_list_cxt_res() - { - set(types::pdu_session_res_setup_list_cxt_res); - return c.get(); - } - pdu_session_res_failed_to_setup_list_cxt_res_l& set_pdu_session_res_failed_to_setup_list_cxt_res() - { - set(types::pdu_session_res_failed_to_setup_list_cxt_res); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -9871,33 +7908,32 @@ struct init_context_setup_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// InitialContextSetupResponse ::= SEQUENCE -struct init_context_setup_resp_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct init_context_setup_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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(bit_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 @@ -9938,7 +7974,7 @@ typedef enumerated ue_context_request_e; // InitialUEMessage-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct init_ue_msg_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -9970,126 +8006,22 @@ struct init_ue_msg_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - rrcestablishment_cause_e& rrcestablishment_cause() - { - assert_choice_type("RRCEstablishmentCause", type_.to_string(), "Value"); - return c.get(); - } - five_g_s_tmsi_s& five_g_s_tmsi() - { - assert_choice_type("FiveG-S-TMSI", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<10, false, true>& amf_set_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - ue_context_request_e& ue_context_request() - { - assert_choice_type("UEContextRequest", type_.to_string(), "Value"); - return c.get(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const rrcestablishment_cause_e& rrcestablishment_cause() const - { - assert_choice_type("RRCEstablishmentCause", type_.to_string(), "Value"); - return c.get(); - } - const five_g_s_tmsi_s& five_g_s_tmsi() const - { - assert_choice_type("FiveG-S-TMSI", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<10, false, true>& amf_set_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const ue_context_request_e& ue_context_request() const - { - assert_choice_type("UEContextRequest", type_.to_string(), "Value"); - return c.get(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - rrcestablishment_cause_e& set_rrcestablishment_cause() - { - set(types::rrcestablishment_cause); - return c.get(); - } - five_g_s_tmsi_s& set_five_g_s_tmsi() - { - set(types::five_g_s_tmsi); - return c.get(); - } - fixed_bitstring<10, false, true>& set_amf_set_id() - { - set(types::amf_set_id); - return c.get >(); - } - ue_context_request_e& set_ue_context_request() - { - set(types::ue_context_request); - return c.get(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } + 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_; @@ -10111,36 +8043,35 @@ struct init_ue_msg_ies_o { static presence_e get_presence(const uint32_t& id); }; -// InitialUEMessage ::= SEQUENCE -struct init_ue_msg_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct init_ue_msg_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + 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_ue_msg_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// InitialUEMessage ::= SEQUENCE +struct init_ue_msg_s { + bool ext = false; + init_ue_msg_ies_container protocol_ies; // ... // sequence methods @@ -10152,18 +8083,17 @@ struct init_ue_msg_s { // VolumeTimedReport-Item-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o volume_timed_report_item_ext_ies_o; +typedef protocol_ext_container_empty_l volume_timed_report_item_ext_ies_container; + // VolumeTimedReport-Item ::= SEQUENCE struct volume_timed_report_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -10181,6 +8111,8 @@ using volume_timed_report_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; +typedef protocol_ext_container_empty_l qo_sflows_usage_report_item_ext_ies_container; + // QoSFlowsUsageReport-Item ::= SEQUENCE struct qo_sflows_usage_report_item_s { struct rat_type_opts { @@ -10189,15 +8121,14 @@ struct qo_sflows_usage_report_item_s { std::string to_string() const; }; typedef enumerated rat_type_e_; - typedef protocol_ext_container_empty_l ie_exts_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; - ie_exts_l_ ie_exts; + 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 @@ -10206,6 +8137,8 @@ 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; + // PDUSessionUsageReport ::= SEQUENCE struct pdu_session_usage_report_s { struct rat_type_opts { @@ -10214,14 +8147,13 @@ struct pdu_session_usage_report_s { std::string to_string() const; }; typedef enumerated rat_type_e_; - typedef protocol_ext_container_empty_l ie_exts_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; - ie_exts_l_ ie_exts; + 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 @@ -10256,19 +8188,18 @@ 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; + // QosFlowAddOrModifyRequestItem ::= SEQUENCE struct qos_flow_add_or_modify_request_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool qos_flow_level_qos_params_present = false; - bool e_rab_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 e_rab_id = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool qos_flow_level_qos_params_present = false; + bool e_rab_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 e_rab_id = 0; + qos_flow_add_or_modify_request_item_ext_ies_container ie_exts; // ... // sequence methods @@ -10286,18 +8217,17 @@ typedef ngap_protocol_ext_empty_o qos_flow_modify_confirm_item_ext_ies_o; // QosFlowNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o qos_flow_notify_item_ext_ies_o; +typedef protocol_ext_container_empty_l secondary_ratusage_info_ext_ies_container; + // SecondaryRATUsageInformation ::= SEQUENCE struct secondary_ratusage_info_s { - typedef protocol_ext_container_empty_l ie_ext_l_; - - // member variables - 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; - ie_ext_l_ ie_ext; + 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 @@ -10306,16 +8236,15 @@ 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; + // UL-NGU-UP-TNLModifyItem ::= SEQUENCE struct ul_ngu_up_tnl_modify_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -10324,16 +8253,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; + // UPTransportLayerInformationPairItem ::= SEQUENCE struct up_transport_layer_info_pair_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -10344,7 +8272,7 @@ struct up_transport_layer_info_pair_item_s { // PDUSessionResourceReleaseResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_release_resp_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { secondary_ratusage_info, nulltype } value; @@ -10374,15 +8302,14 @@ struct pdu_session_res_release_resp_transfer_ext_ies_o { static presence_e get_presence(const uint32_t& id); }; +typedef protocol_ext_container_empty_l qos_flow_accepted_item_ext_ies_container; + // QosFlowAcceptedItem ::= SEQUENCE struct qos_flow_accepted_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - ie_exts_l_ ie_exts; + 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 @@ -10394,15 +8321,14 @@ struct qos_flow_accepted_item_s { // QosFlowAddOrModifyRequestList ::= SEQUENCE (SIZE (1..64)) OF QosFlowAddOrModifyRequestItem using qos_flow_add_or_modify_request_list_l = dyn_array; +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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - ie_exts_l_ ie_exts; + 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 @@ -10411,15 +8337,14 @@ 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; + // QosFlowModifyConfirmItem ::= SEQUENCE struct qos_flow_modify_confirm_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - ie_exts_l_ ie_exts; + 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 @@ -10428,16 +8353,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; + // QosFlowNotifyItem ::= SEQUENCE struct qos_flow_notify_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - notif_cause_e notif_cause; - ie_exts_l_ ie_exts; + 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 @@ -10489,7 +8413,7 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_modify_confirm_transfer_ext_ie // PDUSessionResourceModifyIndicationTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_modify_ind_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { secondary_ratusage_info, security_result, nulltype } value; @@ -10509,36 +8433,10 @@ struct pdu_session_res_modify_ind_transfer_ext_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - secondary_ratusage_info_s& secondary_ratusage_info() - { - assert_choice_type("SecondaryRATUsageInformation", type_.to_string(), "Extension"); - return c.get(); - } - security_result_s& security_result() - { - assert_choice_type("SecurityResult", type_.to_string(), "Extension"); - return c.get(); - } - const secondary_ratusage_info_s& secondary_ratusage_info() const - { - assert_choice_type("SecondaryRATUsageInformation", type_.to_string(), "Extension"); - return c.get(); - } - const security_result_s& security_result() const - { - assert_choice_type("SecurityResult", type_.to_string(), "Extension"); - return c.get(); - } - secondary_ratusage_info_s& set_secondary_ratusage_info() - { - set(types::secondary_ratusage_info); - return c.get(); - } - security_result_s& set_security_result() - { - set(types::security_result); - return c.get(); - } + 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_; @@ -10560,7 +8458,7 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_modify_ind_unsuccessful_transf // PDUSessionResourceModifyRequestTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_modify_request_transfer_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -10590,96 +8488,18 @@ struct pdu_session_res_modify_request_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() - { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list() - { - assert_choice_type("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& network_instance() - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list() - { - assert_choice_type("QosFlowAddOrModifyRequestList", type_.to_string(), "Value"); - return c.get(); - } - qos_flow_list_with_cause_l& qos_flow_to_release_list() - { - assert_choice_type("QosFlowListWithCause", type_.to_string(), "Value"); - return c.get(); - } - up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() - { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_aggregate_maximum_bit_rate_s& pdu_session_aggregate_maximum_bit_rate() const - { - assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const ul_ngu_up_tnl_modify_list_l& ul_ngu_up_tnl_modify_list() const - { - assert_choice_type("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& network_instance() const - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - const qos_flow_add_or_modify_request_list_l& qos_flow_add_or_modify_request_list() const - { - assert_choice_type("QosFlowAddOrModifyRequestList", type_.to_string(), "Value"); - return c.get(); - } - const qos_flow_list_with_cause_l& qos_flow_to_release_list() const - { - assert_choice_type("QosFlowListWithCause", type_.to_string(), "Value"); - return c.get(); - } - const up_transport_layer_info_list_l& add_ul_ngu_up_tnl_info() const - { - assert_choice_type("UPTransportLayerInformationList", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_aggregate_maximum_bit_rate_s& set_pdu_session_aggregate_maximum_bit_rate() - { - set(types::pdu_session_aggregate_maximum_bit_rate); - return c.get(); - } - ul_ngu_up_tnl_modify_list_l& set_ul_ngu_up_tnl_modify_list() - { - set(types::ul_ngu_up_tnl_modify_list); - return c.get(); - } - uint16_t& set_network_instance() - { - set(types::network_instance); - return c.get(); - } - qos_flow_add_or_modify_request_list_l& set_qos_flow_add_or_modify_request_list() - { - set(types::qos_flow_add_or_modify_request_list); - return c.get(); - } - qos_flow_list_with_cause_l& set_qos_flow_to_release_list() - { - set(types::qos_flow_to_release_list); - return c.get(); - } - up_transport_layer_info_list_l& set_add_ul_ngu_up_tnl_info() - { - set(types::add_ul_ngu_up_tnl_info); - return c.get(); - } + 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_; @@ -10703,7 +8523,7 @@ struct pdu_session_res_modify_request_transfer_ies_o { // PDUSessionResourceModifyResponseTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_modify_resp_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { add_ngu_up_tnl_info, nulltype } value; @@ -10738,7 +8558,7 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_modify_unsuccessful_transfer_e // PDUSessionResourceNotifyReleasedTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_notify_released_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { secondary_ratusage_info, nulltype } value; @@ -10770,7 +8590,7 @@ struct pdu_session_res_notify_released_transfer_ext_ies_o { // PDUSessionResourceNotifyTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_notify_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { secondary_ratusage_info, nulltype } value; @@ -10803,27 +8623,26 @@ struct pdu_session_res_notify_transfer_ext_ies_o { // PDUSessionResourceReleaseCommandTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_res_release_cmd_transfer_ext_ies_o; -// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE -struct pdu_session_res_release_resp_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct pdu_session_res_release_resp_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool secondary_ratusage_info_present = false; - ie_field_s secondary_ratusage_info; + // member variables + bool secondary_ratusage_info_present = false; + ie_field_s secondary_ratusage_info; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + pdu_session_res_release_resp_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - bool ie_exts_present = false; - ie_exts_l_ ie_exts; +// PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE +struct pdu_session_res_release_resp_transfer_s { + bool ext = false; + bool ie_exts_present = false; + pdu_session_res_release_resp_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -10834,7 +8653,7 @@ struct pdu_session_res_release_resp_transfer_s { // PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct path_switch_request_ack_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { add_ngu_up_tnl_info, nulltype } value; @@ -10869,7 +8688,7 @@ typedef ngap_protocol_ext_empty_o path_switch_request_setup_failed_transfer_ext_ // PathSwitchRequestTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct path_switch_request_transfer_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { add_dl_qos_flow_per_tnl_info, nulltype } value; @@ -10917,15 +8736,14 @@ using qos_flow_notify_list_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; +typedef protocol_ext_container_empty_l slice_overload_item_ext_ies_container; + // SliceOverloadItem ::= SEQUENCE struct slice_overload_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - s_nssai_s s_nssai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + s_nssai_s s_nssai; + slice_overload_item_ext_ies_container ie_exts; // ... // sequence methods @@ -10937,16 +8755,15 @@ struct slice_overload_item_s { // 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; +typedef protocol_ext_container_empty_l user_plane_security_info_ext_ies_container; + // UserPlaneSecurityInformation ::= SEQUENCE struct user_plane_security_info_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - security_result_s security_result; - security_ind_s security_ind; - ie_exts_l_ ie_exts; + 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 @@ -11030,7 +8847,7 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_failed_to_setup_item_su_res_ex // PDUSessionResourceItemCxtRelCpl-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION struct pdu_session_res_item_cxt_rel_cpl_ext_ies_o { - // Extension ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { pdu_session_res_release_resp_transfer, nulltype } value; @@ -11063,23 +8880,39 @@ struct pdu_session_res_item_cxt_rel_cpl_ext_ies_o { // 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; + 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 + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct pdu_session_res_modify_ind_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; // member variables - 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; - ie_exts_l_ ie_exts; - // ... + 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(bit_ref& bref); void to_json(json_writer& j) const; @@ -11087,30 +8920,12 @@ struct pdu_session_res_modify_confirm_transfer_s { // PDUSessionResourceModifyIndicationTransfer ::= SEQUENCE struct pdu_session_res_modify_ind_transfer_s { - struct ie_exts_l_ { - 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 - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -11119,15 +8934,14 @@ struct pdu_session_res_modify_ind_transfer_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_modify_ind_unsuccessful_transfer_ext_ies_container; + // PDUSessionResourceModifyIndicationUnsuccessfulTransfer ::= SEQUENCE struct pdu_session_res_modify_ind_unsuccessful_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; + 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 @@ -11144,7 +8958,7 @@ 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 ::= CLASS OPEN TYPE + // Extension ::= OPEN TYPE struct ext_c { struct types_opts { enum options { s_nssai, nulltype } value; @@ -11177,75 +8991,73 @@ struct pdu_session_res_modify_item_mod_req_ext_ies_o { // PDUSessionResourceModifyItemModRes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_res_modify_item_mod_res_ext_ies_o; -// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE -struct pdu_session_res_modify_request_transfer_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_request_transfer_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + pdu_session_res_modify_request_transfer_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE -struct pdu_session_res_modify_resp_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE +struct pdu_session_res_modify_request_transfer_s { + bool ext = false; + pdu_session_res_modify_request_transfer_ies_container protocol_ies; + // ... - // member variables - bool add_ngu_up_tnl_info_present = false; - ie_field_s > add_ngu_up_tnl_info; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_resp_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; // member variables - 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; - ie_exts_l_ ie_exts; + bool add_ngu_up_tnl_info_present = false; + ie_field_s > add_ngu_up_tnl_info; + + // sequence methods + pdu_session_res_modify_resp_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + pdu_session_res_modify_resp_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11254,17 +9066,16 @@ struct pdu_session_res_modify_resp_transfer_s { 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool crit_diagnostics_present = false; - bool ie_exts_present = false; - cause_c cause; - crit_diagnostics_s crit_diagnostics; - ie_exts_l_ ie_exts; + 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 @@ -11276,31 +9087,45 @@ struct pdu_session_res_modify_unsuccessful_transfer_s { // PDUSessionResourceNotifyItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o pdu_session_res_notify_item_ext_ies_o; +struct pdu_session_res_notify_released_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; + + // member variables + bool secondary_ratusage_info_present = false; + ie_field_s secondary_ratusage_info; + + // sequence methods + pdu_session_res_notify_released_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + // PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE struct pdu_session_res_notify_released_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + pdu_session_res_notify_released_transfer_ext_ies_container ie_exts; + // ... - // member variables - bool secondary_ratusage_info_present = false; - ie_field_s secondary_ratusage_info; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_notify_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; - // ... + bool secondary_ratusage_info_present = false; + ie_field_s secondary_ratusage_info; // sequence methods + pdu_session_res_notify_transfer_ext_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; @@ -11308,29 +9133,13 @@ struct pdu_session_res_notify_released_transfer_s { // PDUSessionResourceNotifyTransfer ::= SEQUENCE struct pdu_session_res_notify_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; - - // member variables - bool secondary_ratusage_info_present = false; - ie_field_s secondary_ratusage_info; - - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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; + pdu_session_res_notify_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11339,15 +9148,14 @@ struct pdu_session_res_notify_transfer_s { 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + pdu_session_res_release_cmd_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11386,31 +9194,30 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_to_be_switched_dl_item_ext_ies // 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 { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct path_switch_request_ack_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool add_ngu_up_tnl_info_present = false; - ie_field_s > add_ngu_up_tnl_info; + // member variables + bool add_ngu_up_tnl_info_present = false; + ie_field_s > add_ngu_up_tnl_info; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + path_switch_request_ack_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - 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; - ie_exts_l_ ie_exts; +// 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; + path_switch_request_ack_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11419,15 +9226,14 @@ struct path_switch_request_ack_transfer_s { 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + path_switch_request_setup_failed_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11436,33 +9242,32 @@ struct path_switch_request_setup_failed_transfer_s { void to_json(json_writer& j) const; }; -// PathSwitchRequestTransfer ::= SEQUENCE -struct path_switch_request_transfer_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct path_switch_request_transfer_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool add_dl_qos_flow_per_tnl_info_present = false; - ie_field_s > add_dl_qos_flow_per_tnl_info; + // member variables + bool add_dl_qos_flow_per_tnl_info_present = false; + ie_field_s > add_dl_qos_flow_per_tnl_info; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + path_switch_request_transfer_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - 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; - ie_exts_l_ ie_exts; +// 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; + path_switch_request_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11471,15 +9276,14 @@ struct path_switch_request_transfer_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l path_switch_request_unsuccessful_transfer_ext_ies_container; + // PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE struct path_switch_request_unsuccessful_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - cause_c cause; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + cause_c cause; + path_switch_request_unsuccessful_transfer_ext_ies_container ie_exts; // ... // sequence methods @@ -11531,16 +9335,15 @@ private: void destroy_(); }; +typedef protocol_ext_container_empty_l secondary_rat_data_usage_report_transfer_ext_ies_container; + // SecondaryRATDataUsageReportTransfer ::= SEQUENCE struct secondary_rat_data_usage_report_transfer_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool secondary_ratusage_info_present = false; - bool ie_exts_present = false; - secondary_ratusage_info_s secondary_ratusage_info; - ie_exts_l_ ie_exts; + 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 @@ -11561,18 +9364,17 @@ 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; + // UE-associatedLogicalNG-connectionItem ::= SEQUENCE struct ue_associated_lc_ng_conn_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -11595,19 +9397,18 @@ 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; + // OverloadStartNSSAIItem ::= SEQUENCE struct overload_start_nssai_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -11616,16 +9417,15 @@ struct overload_start_nssai_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_failed_to_modify_item_mod_cfm_ext_ies_container; + // PDUSessionResourceFailedToModifyItemModCfm ::= SEQUENCE struct pdu_session_res_failed_to_modify_item_mod_cfm_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_ind_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11634,16 +9434,15 @@ struct pdu_session_res_failed_to_modify_item_mod_cfm_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_failed_to_modify_item_mod_res_ext_ies_container; + // PDUSessionResourceFailedToModifyItemModRes ::= SEQUENCE struct pdu_session_res_failed_to_modify_item_mod_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11652,16 +9451,15 @@ struct pdu_session_res_failed_to_modify_item_mod_res_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_ps_req_ext_ies_container; + // PDUSessionResourceFailedToSetupItemPSReq ::= SEQUENCE struct pdu_session_res_failed_to_setup_item_ps_req_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_setup_failed_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11670,16 +9468,15 @@ struct pdu_session_res_failed_to_setup_item_ps_req_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_failed_to_setup_item_su_res_ext_ies_container; + // PDUSessionResourceFailedToSetupItemSURes ::= SEQUENCE struct pdu_session_res_failed_to_setup_item_su_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11688,28 +9485,27 @@ struct pdu_session_res_failed_to_setup_item_su_res_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceItemCxtRelCpl ::= SEQUENCE -struct pdu_session_res_item_cxt_rel_cpl_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct pdu_session_res_item_cxt_rel_cpl_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool pdu_session_res_release_resp_transfer_present = false; - ie_field_s > pdu_session_res_release_resp_transfer; + // member variables + bool pdu_session_res_release_resp_transfer_present = false; + ie_field_s > pdu_session_res_release_resp_transfer; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + pdu_session_res_item_cxt_rel_cpl_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - ie_exts_l_ ie_exts; +// 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; + pdu_session_res_item_cxt_rel_cpl_ext_ies_container ie_exts; // ... // sequence methods @@ -11718,15 +9514,14 @@ struct pdu_session_res_item_cxt_rel_cpl_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_item_cxt_rel_req_ext_ies_container; + // PDUSessionResourceItemCxtRelReq ::= SEQUENCE struct pdu_session_res_item_cxt_rel_req_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - ie_exts_l_ ie_exts; + 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 @@ -11735,16 +9530,15 @@ struct pdu_session_res_item_cxt_rel_req_s { void to_json(json_writer& j) const; }; +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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_confirm_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11753,16 +9547,15 @@ struct pdu_session_res_modify_item_mod_cfm_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_modify_item_mod_ind_ext_ies_container; + // PDUSessionResourceModifyItemModInd ::= SEQUENCE struct pdu_session_res_modify_item_mod_ind_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_ind_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11771,31 +9564,30 @@ struct pdu_session_res_modify_item_mod_ind_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyItemModReq ::= SEQUENCE -struct pdu_session_res_modify_item_mod_req_s { - struct ie_exts_l_ { - template - using ie_field_s = protocol_ext_container_item_s; +struct pdu_session_res_modify_item_mod_req_ext_ies_container { + template + using ie_field_s = protocol_ext_container_item_s; - // member variables - bool s_nssai_present = false; - ie_field_s s_nssai; + // member variables + bool s_nssai_present = false; + ie_field_s s_nssai; - // sequence methods - ie_exts_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; + // sequence methods + pdu_session_res_modify_item_mod_req_ext_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // member variables - 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; - ie_exts_l_ ie_exts; +// 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; + pdu_session_res_modify_item_mod_req_ext_ies_container ie_exts; // ... // sequence methods @@ -11804,16 +9596,15 @@ struct pdu_session_res_modify_item_mod_req_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_modify_item_mod_res_ext_ies_container; + // PDUSessionResourceModifyItemModRes ::= SEQUENCE struct pdu_session_res_modify_item_mod_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_modify_resp_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11822,16 +9613,15 @@ struct pdu_session_res_modify_item_mod_res_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_notify_item_ext_ies_container; + // PDUSessionResourceNotifyItem ::= SEQUENCE struct pdu_session_res_notify_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_notify_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11840,16 +9630,15 @@ struct pdu_session_res_notify_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_released_item_not_ext_ies_container; + // PDUSessionResourceReleasedItemNot ::= SEQUENCE struct pdu_session_res_released_item_not_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_notify_released_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11858,16 +9647,15 @@ struct pdu_session_res_released_item_not_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_released_item_ps_ack_ext_ies_container; + // PDUSessionResourceReleasedItemPSAck ::= SEQUENCE struct pdu_session_res_released_item_ps_ack_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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 @@ -11876,16 +9664,15 @@ struct pdu_session_res_released_item_ps_ack_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_released_item_ps_fail_ext_ies_container; + // PDUSessionResourceReleasedItemPSFail ::= SEQUENCE struct pdu_session_res_released_item_ps_fail_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_unsuccessful_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11894,16 +9681,15 @@ struct pdu_session_res_released_item_ps_fail_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_released_item_rel_res_ext_ies_container; + // PDUSessionResourceReleasedItemRelRes ::= SEQUENCE struct pdu_session_res_released_item_rel_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_release_resp_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11912,16 +9698,15 @@ struct pdu_session_res_released_item_rel_res_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_secondary_ratusage_item_ext_ies_container; + // PDUSessionResourceSecondaryRATUsageItem ::= SEQUENCE struct pdu_session_res_secondary_ratusage_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring secondary_rat_data_usage_report_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11930,19 +9715,18 @@ struct pdu_session_res_secondary_ratusage_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_setup_item_su_req_ext_ies_container; + // PDUSessionResourceSetupItemSUReq ::= SEQUENCE struct pdu_session_res_setup_item_su_req_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11951,16 +9735,15 @@ struct pdu_session_res_setup_item_su_req_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_setup_item_su_res_ext_ies_container; + // PDUSessionResourceSetupItemSURes ::= SEQUENCE struct pdu_session_res_setup_item_su_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_setup_resp_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -11969,17 +9752,16 @@ struct pdu_session_res_setup_item_su_res_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_switched_item_ext_ies_container; + // PDUSessionResourceSwitchedItem ::= SEQUENCE struct pdu_session_res_switched_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_ack_transfer; - ie_exts_l_ ie_exts; - // ... + 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; + // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -11987,16 +9769,15 @@ struct pdu_session_res_switched_item_s { void to_json(json_writer& j) const; }; +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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring path_switch_request_transfer; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -12005,16 +9786,15 @@ struct pdu_session_res_to_be_switched_dl_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l pdu_session_res_to_release_item_rel_cmd_ext_ies_container; + // PDUSessionResourceToReleaseItemRelCmd ::= SEQUENCE struct pdu_session_res_to_release_item_rel_cmd_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint16_t pdu_session_id = 0; - unbounded_octstring pdu_session_res_release_cmd_transfer; - ie_exts_l_ ie_exts; + 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 @@ -12037,16 +9817,15 @@ 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; + // SupportedTAItem ::= SEQUENCE struct supported_ta_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - fixed_octstring<3, true> tac; - broadcast_plmn_list_l broadcast_plmn_list; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -12055,15 +9834,14 @@ struct supported_ta_item_s { void to_json(json_writer& j) const; }; +typedef protocol_ext_container_empty_l tai_list_for_paging_item_ext_ies_container; + // TAIListForPagingItem ::= SEQUENCE struct tai_list_for_paging_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - tai_s tai; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + tai_s tai; + tai_list_for_paging_item_ext_ies_container ie_exts; // ... // sequence methods @@ -12075,16 +9853,15 @@ struct tai_list_for_paging_item_s { // TAIListForWarning ::= SEQUENCE (SIZE (1..65535)) OF TAI using tai_list_for_warning_l = dyn_array; +typedef protocol_ext_container_empty_l ue_ngap_id_pair_ext_ies_container; + // UE-NGAP-ID-pair ::= SEQUENCE struct ue_ngap_id_pair_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint64_t amf_ue_ngap_id = 0; - uint64_t ran_ue_ngap_id = 0; - ie_exts_l_ ie_exts; + 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; // ... // sequence methods @@ -12102,16 +9879,15 @@ using ue_associated_lc_ng_conn_list_l = dyn_array paging_prio_e; // PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} -template +template struct private_ie_field_s { - private_ie_id_c id; - crit_e crit; - typename ies_set_param::value_c value; + private_ie_id_c id; + crit_e crit; + typename ies_set_paramT_::value_c value; SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); @@ -12689,7 +10465,7 @@ private: // LocationReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct location_report_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -12717,96 +10493,18 @@ struct location_report_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - ue_presence_in_area_of_interest_list_l& 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_request_type() - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - ngran_cgi_c& ps_cell_info() - { - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_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& 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_request_type() const - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - const ngran_cgi_c& ps_cell_info() const - { - assert_choice_type("NGRAN-CGI", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - ue_presence_in_area_of_interest_list_l& set_ue_presence_in_area_of_interest_list() - { - set(types::ue_presence_in_area_of_interest_list); - return c.get(); - } - location_report_request_type_s& set_location_report_request_type() - { - set(types::location_report_request_type); - return c.get(); - } - ngran_cgi_c& set_ps_cell_info() - { - set(types::ps_cell_info); - return c.get(); - } + 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_; @@ -12829,7 +10527,7 @@ struct location_report_ies_o { // LocationReportingControlIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct location_report_ctrl_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -12849,51 +10547,12 @@ struct location_report_ctrl_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - location_report_request_type_s& location_report_request_type() - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_request_type() const - { - assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - location_report_request_type_s& set_location_report_request_type() - { - set(types::location_report_request_type); - return c.get(); - } + 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; private: types type_; @@ -12912,7 +10571,7 @@ struct location_report_ctrl_ies_o { // LocationReportingFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct location_report_fail_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, nulltype } value; @@ -12932,51 +10591,12 @@ struct location_report_fail_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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; private: types type_; @@ -12995,7 +10615,7 @@ struct location_report_fail_ind_ies_o { // NASNonDeliveryIndication-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct nas_non_delivery_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, nas_pdu, cause, nulltype } value; @@ -13015,66 +10635,14 @@ struct nas_non_delivery_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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; private: types type_; @@ -13093,7 +10661,7 @@ struct nas_non_delivery_ind_ies_o { // NGResetAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ng_reset_ack_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { ue_associated_lc_ng_conn_list, crit_diagnostics, nulltype } value; @@ -13113,36 +10681,10 @@ struct ng_reset_ack_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list() - { - assert_choice_type("UE-associatedLogicalNG-connectionList", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const ue_associated_lc_ng_conn_list_l& ue_associated_lc_ng_conn_list() const - { - assert_choice_type("UE-associatedLogicalNG-connectionList", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - ue_associated_lc_ng_conn_list_l& set_ue_associated_lc_ng_conn_list() - { - set(types::ue_associated_lc_ng_conn_list); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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; private: types type_; @@ -13161,7 +10703,7 @@ struct ng_reset_ack_ies_o { // NGResetIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ng_reset_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { cause, reset_type, nulltype } value; @@ -13181,36 +10723,10 @@ struct ng_reset_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - reset_type_c& reset_type() - { - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const reset_type_c& reset_type() const - { - assert_choice_type("ResetType", type_.to_string(), "Value"); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - reset_type_c& set_reset_type() - { - set(types::reset_type); - return c.get(); - } + cause_c& cause(); + reset_type_c& reset_type(); + const cause_c& cause() const; + const reset_type_c& reset_type() const; private: types type_; @@ -13229,7 +10745,7 @@ struct ng_reset_ies_o { // NGSetupFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ng_setup_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; @@ -13249,51 +10765,12 @@ struct ng_setup_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - time_to_wait_e& time_to_wait() - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const time_to_wait_e& time_to_wait() const - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - time_to_wait_e& set_time_to_wait() - { - set(types::time_to_wait); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -13312,7 +10789,7 @@ struct ng_setup_fail_ies_o { // NGSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ng_setup_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -13339,81 +10816,16 @@ struct ng_setup_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - global_ran_node_id_c& global_ran_node_id() - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& ran_node_name() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - supported_ta_list_l& supported_ta_list() - { - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); - } - paging_drx_e& default_paging_drx() - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - ue_retention_info_e& ue_retention_info() - { - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); - } - const global_ran_node_id_c& global_ran_node_id() const - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - const printable_string<1, 150, true, true>& ran_node_name() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const supported_ta_list_l& supported_ta_list() const - { - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); - } - const paging_drx_e& default_paging_drx() const - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - const ue_retention_info_e& ue_retention_info() const - { - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); - } - global_ran_node_id_c& set_global_ran_node_id() - { - set(types::global_ran_node_id); - return c.get(); - } - printable_string<1, 150, true, true>& set_ran_node_name() - { - set(types::ran_node_name); - return c.get >(); - } - supported_ta_list_l& set_supported_ta_list() - { - set(types::supported_ta_list); - return c.get(); - } - paging_drx_e& set_default_paging_drx() - { - set(types::default_paging_drx); - return c.get(); - } - ue_retention_info_e& set_ue_retention_info() - { - set(types::ue_retention_info); - return c.get(); - } + 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; private: types type_; @@ -13432,7 +10844,7 @@ struct ng_setup_request_ies_o { // NGSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ng_setup_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -13462,96 +10874,18 @@ struct ng_setup_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - printable_string<1, 150, true, true>& amf_name() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - served_guami_list_l& served_guami_list() - { - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& relative_amf_capacity() - { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); - } - plmn_support_list_l& plmn_support_list() - { - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - ue_retention_info_e& ue_retention_info() - { - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); - } - const printable_string<1, 150, true, true>& amf_name() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const served_guami_list_l& served_guami_list() const - { - assert_choice_type("ServedGUAMIList", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& relative_amf_capacity() const - { - assert_choice_type("INTEGER (0..255)", type_.to_string(), "Value"); - return c.get(); - } - const plmn_support_list_l& plmn_support_list() const - { - assert_choice_type("PLMNSupportList", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const ue_retention_info_e& ue_retention_info() const - { - assert_choice_type("UERetentionInformation", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& set_amf_name() - { - set(types::amf_name); - return c.get >(); - } - served_guami_list_l& set_served_guami_list() - { - set(types::served_guami_list); - return c.get(); - } - uint16_t& set_relative_amf_capacity() - { - set(types::relative_amf_capacity); - return c.get(); - } - plmn_support_list_l& set_plmn_support_list() - { - set(types::plmn_support_list); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } - ue_retention_info_e& set_ue_retention_info() - { - set(types::ue_retention_info); - return c.get(); - } + 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; private: types type_; @@ -13571,7 +10905,7 @@ struct ng_setup_resp_ies_o { // OverloadStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct overload_start_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -13593,51 +10927,12 @@ struct overload_start_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - overload_resp_c& amf_overload_resp() - { - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); - } - uint8_t& 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_nssai_list() - { - assert_choice_type("OverloadStartNSSAIList", type_.to_string(), "Value"); - return c.get(); - } - const overload_resp_c& amf_overload_resp() const - { - assert_choice_type("OverloadResponse", type_.to_string(), "Value"); - return c.get(); - } - const uint8_t& 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_nssai_list() const - { - assert_choice_type("OverloadStartNSSAIList", type_.to_string(), "Value"); - return c.get(); - } - overload_resp_c& set_amf_overload_resp() - { - set(types::amf_overload_resp); - return c.get(); - } - uint8_t& set_amf_traffic_load_reduction_ind() - { - set(types::amf_traffic_load_reduction_ind); - return c.get(); - } - overload_start_nssai_list_l& set_overload_start_nssai_list() - { - set(types::overload_start_nssai_list); - return c.get(); - } + 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; private: types type_; @@ -13659,7 +10954,7 @@ 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 { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -13686,81 +10981,16 @@ struct pdu_session_res_modify_confirm_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_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_failed_to_modify_list_mod_cfm() - { - assert_choice_type("PDUSessionResourceFailedToModifyListModCfm", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_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_failed_to_modify_list_mod_cfm() const - { - assert_choice_type("PDUSessionResourceFailedToModifyListModCfm", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_modify_list_mod_cfm_l& set_pdu_session_res_modify_list_mod_cfm() - { - set(types::pdu_session_res_modify_list_mod_cfm); - return c.get(); - } - pdu_session_res_failed_to_modify_list_mod_cfm_l& set_pdu_session_res_failed_to_modify_list_mod_cfm() - { - set(types::pdu_session_res_failed_to_modify_list_mod_cfm); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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; private: types type_; @@ -13782,7 +11012,7 @@ struct pdu_session_res_modify_confirm_ies_o { // PDUSessionResourceModifyIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_modify_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -13802,51 +11032,12 @@ struct pdu_session_res_modify_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_list_mod_ind() - { - assert_choice_type("PDUSessionResourceModifyListModInd", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_list_mod_ind() const - { - assert_choice_type("PDUSessionResourceModifyListModInd", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_modify_list_mod_ind_l& set_pdu_session_res_modify_list_mod_ind() - { - set(types::pdu_session_res_modify_list_mod_ind); - return c.get(); - } + 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; private: types type_; @@ -13865,7 +11056,7 @@ struct pdu_session_res_modify_ind_ies_o { // PDUSessionResourceModifyRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_modify_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -13891,66 +11082,14 @@ struct pdu_session_res_modify_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& 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_list_mod_req() - { - assert_choice_type("PDUSessionResourceModifyListModReq", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& 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_list_mod_req() const - { - assert_choice_type("PDUSessionResourceModifyListModReq", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint16_t& set_ran_paging_prio() - { - set(types::ran_paging_prio); - return c.get(); - } - pdu_session_res_modify_list_mod_req_l& set_pdu_session_res_modify_list_mod_req() - { - set(types::pdu_session_res_modify_list_mod_req); - return c.get(); - } + 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; private: types type_; @@ -13969,7 +11108,7 @@ struct pdu_session_res_modify_request_ies_o { // PDUSessionResourceModifyResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_modify_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -13997,96 +11136,18 @@ struct pdu_session_res_modify_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_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_failed_to_modify_list_mod_res() - { - assert_choice_type("PDUSessionResourceFailedToModifyListModRes", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_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_failed_to_modify_list_mod_res() const - { - assert_choice_type("PDUSessionResourceFailedToModifyListModRes", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_modify_list_mod_res_l& set_pdu_session_res_modify_list_mod_res() - { - set(types::pdu_session_res_modify_list_mod_res); - return c.get(); - } - pdu_session_res_failed_to_modify_list_mod_res_l& set_pdu_session_res_failed_to_modify_list_mod_res() - { - set(types::pdu_session_res_failed_to_modify_list_mod_res); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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; private: types type_; @@ -14109,7 +11170,7 @@ struct pdu_session_res_modify_resp_ies_o { // PDUSessionResourceNotifyIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_notify_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -14136,81 +11197,16 @@ struct pdu_session_res_notify_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_list() - { - assert_choice_type("PDUSessionResourceNotifyList", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_released_list_not_l& pdu_session_res_released_list_not() - { - assert_choice_type("PDUSessionResourceReleasedListNot", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_list() const - { - assert_choice_type("PDUSessionResourceNotifyList", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_released_list_not_l& pdu_session_res_released_list_not() const - { - assert_choice_type("PDUSessionResourceReleasedListNot", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_notify_list_l& set_pdu_session_res_notify_list() - { - set(types::pdu_session_res_notify_list); - return c.get(); - } - pdu_session_res_released_list_not_l& set_pdu_session_res_released_list_not() - { - set(types::pdu_session_res_released_list_not); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } + 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; private: types type_; @@ -14229,7 +11225,7 @@ struct pdu_session_res_notify_ies_o { // PDUSessionResourceReleaseCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_release_cmd_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -14256,81 +11252,16 @@ struct pdu_session_res_release_cmd_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& ran_paging_prio() - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd() - { - assert_choice_type("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& ran_paging_prio() const - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const pdu_session_res_to_release_list_rel_cmd_l& pdu_session_res_to_release_list_rel_cmd() const - { - assert_choice_type("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint16_t& set_ran_paging_prio() - { - set(types::ran_paging_prio); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - pdu_session_res_to_release_list_rel_cmd_l& set_pdu_session_res_to_release_list_rel_cmd() - { - set(types::pdu_session_res_to_release_list_rel_cmd); - return c.get(); - } + 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; private: types type_; @@ -14349,7 +11280,7 @@ struct pdu_session_res_release_cmd_ies_o { // PDUSessionResourceReleaseResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_release_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -14376,81 +11307,16 @@ struct pdu_session_res_release_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_released_list_rel_res() - { - assert_choice_type("PDUSessionResourceReleasedListRelRes", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_released_list_rel_res() const - { - assert_choice_type("PDUSessionResourceReleasedListRelRes", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_released_list_rel_res_l& set_pdu_session_res_released_list_rel_res() - { - set(types::pdu_session_res_released_list_rel_res); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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; private: types type_; @@ -14469,7 +11335,7 @@ struct pdu_session_res_release_resp_ies_o { // PDUSessionResourceSetupRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_setup_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -14497,96 +11363,18 @@ struct pdu_session_res_setup_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& ran_paging_prio() - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& 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_list_su_req() - { - assert_choice_type("PDUSessionResourceSetupListSUReq", type_.to_string(), "Value"); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& ran_paging_prio() const - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& 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_list_su_req() const - { - assert_choice_type("PDUSessionResourceSetupListSUReq", type_.to_string(), "Value"); - return c.get(); - } - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint16_t& set_ran_paging_prio() - { - set(types::ran_paging_prio); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - pdu_session_res_setup_list_su_req_l& set_pdu_session_res_setup_list_su_req() - { - set(types::pdu_session_res_setup_list_su_req); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& set_ue_aggregate_maximum_bit_rate() - { - set(types::ue_aggregate_maximum_bit_rate); - return c.get(); - } + 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; private: types type_; @@ -14605,7 +11393,7 @@ struct pdu_session_res_setup_request_ies_o { // PDUSessionResourceSetupResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pdu_session_res_setup_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -14632,81 +11420,16 @@ struct pdu_session_res_setup_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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_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_failed_to_setup_list_su_res() - { - assert_choice_type("PDUSessionResourceFailedToSetupListSURes", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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_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_failed_to_setup_list_su_res() const - { - assert_choice_type("PDUSessionResourceFailedToSetupListSURes", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_setup_list_su_res_l& set_pdu_session_res_setup_list_su_res() - { - set(types::pdu_session_res_setup_list_su_res); - return c.get(); - } - pdu_session_res_failed_to_setup_list_su_res_l& set_pdu_session_res_failed_to_setup_list_su_res() - { - set(types::pdu_session_res_failed_to_setup_list_su_res); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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; private: types type_; @@ -14728,7 +11451,7 @@ struct pdu_session_res_setup_resp_ies_o { // PWSCancelRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pws_cancel_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { msg_id, serial_num, warning_area_list, cancel_all_warning_msgs, nulltype } value; @@ -14748,66 +11471,14 @@ struct pws_cancel_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<16, false, true>& serial_num() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - warning_area_list_c& warning_area_list() - { - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); - } - cancel_all_warning_msgs_e& cancel_all_warning_msgs() - { - assert_choice_type("CancelAllWarningMessages", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<16, false, true>& msg_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<16, false, true>& serial_num() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const warning_area_list_c& warning_area_list() const - { - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); - } - const cancel_all_warning_msgs_e& cancel_all_warning_msgs() const - { - assert_choice_type("CancelAllWarningMessages", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<16, false, true>& set_msg_id() - { - set(types::msg_id); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_serial_num() - { - set(types::serial_num); - return c.get >(); - } - warning_area_list_c& set_warning_area_list() - { - set(types::warning_area_list); - return c.get(); - } - cancel_all_warning_msgs_e& set_cancel_all_warning_msgs() - { - set(types::cancel_all_warning_msgs); - return c.get(); - } + 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_; @@ -14826,7 +11497,7 @@ struct pws_cancel_request_ies_o { // PWSCancelResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pws_cancel_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { msg_id, serial_num, broadcast_cancelled_area_list, crit_diagnostics, nulltype } value; @@ -14846,66 +11517,14 @@ struct pws_cancel_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<16, false, true>& serial_num() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - broadcast_cancelled_area_list_c& broadcast_cancelled_area_list() - { - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<16, false, true>& msg_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<16, false, true>& serial_num() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const broadcast_cancelled_area_list_c& broadcast_cancelled_area_list() const - { - assert_choice_type("BroadcastCancelledAreaList", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<16, false, true>& set_msg_id() - { - set(types::msg_id); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_serial_num() - { - set(types::serial_num); - return c.get >(); - } - broadcast_cancelled_area_list_c& set_broadcast_cancelled_area_list() - { - set(types::broadcast_cancelled_area_list); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -14924,7 +11543,7 @@ struct pws_cancel_resp_ies_o { // PWSFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pws_fail_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { pws_failed_cell_id_list, global_ran_node_id, nulltype } value; @@ -14944,36 +11563,10 @@ struct pws_fail_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - pws_failed_cell_id_list_c& pws_failed_cell_id_list() - { - assert_choice_type("PWSFailedCellIDList", type_.to_string(), "Value"); - return c.get(); - } - global_ran_node_id_c& global_ran_node_id() - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - const pws_failed_cell_id_list_c& pws_failed_cell_id_list() const - { - assert_choice_type("PWSFailedCellIDList", type_.to_string(), "Value"); - return c.get(); - } - const global_ran_node_id_c& global_ran_node_id() const - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - pws_failed_cell_id_list_c& set_pws_failed_cell_id_list() - { - set(types::pws_failed_cell_id_list); - return c.get(); - } - global_ran_node_id_c& set_global_ran_node_id() - { - set(types::global_ran_node_id); - return c.get(); - } + 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_; @@ -14992,7 +11585,7 @@ struct pws_fail_ind_ies_o { // PWSRestartIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct pws_restart_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -15018,66 +11611,14 @@ struct pws_restart_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - cell_id_list_for_restart_c& cell_id_list_for_restart() - { - assert_choice_type("CellIDListForRestart", type_.to_string(), "Value"); - return c.get(); - } - global_ran_node_id_c& global_ran_node_id() - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - tai_list_for_restart_l& tai_list_for_restart() - { - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); - } - emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart() - { - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); - } - const cell_id_list_for_restart_c& cell_id_list_for_restart() const - { - assert_choice_type("CellIDListForRestart", type_.to_string(), "Value"); - return c.get(); - } - const global_ran_node_id_c& global_ran_node_id() const - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - const tai_list_for_restart_l& tai_list_for_restart() const - { - assert_choice_type("TAIListForRestart", type_.to_string(), "Value"); - return c.get(); - } - const emergency_area_id_list_for_restart_l& emergency_area_id_list_for_restart() const - { - assert_choice_type("EmergencyAreaIDListForRestart", type_.to_string(), "Value"); - return c.get(); - } - cell_id_list_for_restart_c& set_cell_id_list_for_restart() - { - set(types::cell_id_list_for_restart); - return c.get(); - } - global_ran_node_id_c& set_global_ran_node_id() - { - set(types::global_ran_node_id); - return c.get(); - } - tai_list_for_restart_l& set_tai_list_for_restart() - { - set(types::tai_list_for_restart); - return c.get(); - } - emergency_area_id_list_for_restart_l& set_emergency_area_id_list_for_restart() - { - set(types::emergency_area_id_list_for_restart); - return c.get(); - } + 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_; @@ -15100,7 +11641,7 @@ struct pws_restart_ind_ies_o { // PagingIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct paging_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -15129,111 +11670,20 @@ struct paging_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - ue_paging_id_c& ue_paging_id() - { - assert_choice_type("UEPagingIdentity", type_.to_string(), "Value"); - return c.get(); - } - paging_drx_e& paging_drx() - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - tai_list_for_paging_l& tai_list_for_paging() - { - assert_choice_type("TAIListForPaging", type_.to_string(), "Value"); - return c.get(); - } - paging_prio_e& paging_prio() - { - assert_choice_type("PagingPriority", type_.to_string(), "Value"); - return c.get(); - } - ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - paging_origin_e& paging_origin() - { - assert_choice_type("PagingOrigin", type_.to_string(), "Value"); - return c.get(); - } - assist_data_for_paging_s& assist_data_for_paging() - { - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); - return c.get(); - } - const ue_paging_id_c& ue_paging_id() const - { - assert_choice_type("UEPagingIdentity", type_.to_string(), "Value"); - return c.get(); - } - const paging_drx_e& paging_drx() const - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - const tai_list_for_paging_l& tai_list_for_paging() const - { - assert_choice_type("TAIListForPaging", type_.to_string(), "Value"); - return c.get(); - } - const paging_prio_e& paging_prio() const - { - assert_choice_type("PagingPriority", type_.to_string(), "Value"); - return c.get(); - } - const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - const paging_origin_e& paging_origin() const - { - assert_choice_type("PagingOrigin", type_.to_string(), "Value"); - return c.get(); - } - const assist_data_for_paging_s& assist_data_for_paging() const - { - assert_choice_type("AssistanceDataForPaging", type_.to_string(), "Value"); - return c.get(); - } - ue_paging_id_c& set_ue_paging_id() - { - set(types::ue_paging_id); - return c.get(); - } - paging_drx_e& set_paging_drx() - { - set(types::paging_drx); - return c.get(); - } - tai_list_for_paging_l& set_tai_list_for_paging() - { - set(types::tai_list_for_paging); - return c.get(); - } - paging_prio_e& set_paging_prio() - { - set(types::paging_prio); - return c.get(); - } - ue_radio_cap_for_paging_s& set_ue_radio_cap_for_paging() - { - set(types::ue_radio_cap_for_paging); - return c.get(); - } - paging_origin_e& set_paging_origin() - { - set(types::paging_origin); - return c.get(); - } - assist_data_for_paging_s& set_assist_data_for_paging() - { - set(types::assist_data_for_paging); - return c.get(); - } + 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_; @@ -15252,7 +11702,7 @@ struct paging_ies_o { // PathSwitchRequestAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct path_switch_request_ack_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -15286,186 +11736,30 @@ struct path_switch_request_ack_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ue_security_cap_s& ue_security_cap() - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - security_context_s& security_context() - { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); - } - new_security_context_ind_e& new_security_context_ind() - { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_switched_list_l& pdu_session_res_switched_list() - { - assert_choice_type("PDUSessionResourceSwitchedList", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack() - { - assert_choice_type("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); - return c.get(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - core_network_assist_info_s& core_network_assist_info() - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - redirection_voice_fallback_e& redirection_voice_fallback() - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const ue_security_cap_s& ue_security_cap() const - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - const security_context_s& security_context() const - { - assert_choice_type("SecurityContext", type_.to_string(), "Value"); - return c.get(); - } - const new_security_context_ind_e& new_security_context_ind() const - { - assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_switched_list_l& pdu_session_res_switched_list() const - { - assert_choice_type("PDUSessionResourceSwitchedList", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_released_list_ps_ack_l& pdu_session_res_released_list_ps_ack() const - { - assert_choice_type("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); - return c.get(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const core_network_assist_info_s& core_network_assist_info() const - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const redirection_voice_fallback_e& redirection_voice_fallback() const - { - assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ue_security_cap_s& set_ue_security_cap() - { - set(types::ue_security_cap); - return c.get(); - } - security_context_s& set_security_context() - { - set(types::security_context); - return c.get(); - } - new_security_context_ind_e& set_new_security_context_ind() - { - set(types::new_security_context_ind); - return c.get(); - } - pdu_session_res_switched_list_l& set_pdu_session_res_switched_list() - { - set(types::pdu_session_res_switched_list); - return c.get(); - } - pdu_session_res_released_list_ps_ack_l& set_pdu_session_res_released_list_ps_ack() - { - set(types::pdu_session_res_released_list_ps_ack); - return c.get(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } - core_network_assist_info_s& set_core_network_assist_info() - { - set(types::core_network_assist_info); - return c.get(); - } - rrc_inactive_transition_report_request_e& set_rrc_inactive_transition_report_request() - { - set(types::rrc_inactive_transition_report_request); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } - redirection_voice_fallback_e& set_redirection_voice_fallback() - { - set(types::redirection_voice_fallback); - return c.get(); - } + 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_; @@ -15491,7 +11785,7 @@ struct path_switch_request_ack_ies_o { // PathSwitchRequestFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct path_switch_request_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -15517,66 +11811,14 @@ struct path_switch_request_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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& pdu_session_res_released_list_ps_fail() - { - assert_choice_type("PDUSessionResourceReleasedListPSFail", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& pdu_session_res_released_list_ps_fail() const - { - assert_choice_type("PDUSessionResourceReleasedListPSFail", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_released_list_ps_fail_l& set_pdu_session_res_released_list_ps_fail() - { - set(types::pdu_session_res_released_list_ps_fail); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -15595,7 +11837,7 @@ struct path_switch_request_fail_ies_o { // PathSwitchRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct path_switch_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -15623,96 +11865,18 @@ struct path_switch_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& source_amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - ue_security_cap_s& ue_security_cap() - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_to_be_switched_dl_list_l& 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& pdu_session_res_failed_to_setup_list_ps_req() - { - assert_choice_type("PDUSessionResourceFailedToSetupListPSReq", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& source_amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const ue_security_cap_s& 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& 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& pdu_session_res_failed_to_setup_list_ps_req() const - { - assert_choice_type("PDUSessionResourceFailedToSetupListPSReq", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint64_t& set_source_amf_ue_ngap_id() - { - set(types::source_amf_ue_ngap_id); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - ue_security_cap_s& set_ue_security_cap() - { - set(types::ue_security_cap); - return c.get(); - } - pdu_session_res_to_be_switched_dl_list_l& set_pdu_session_res_to_be_switched_dl_list() - { - set(types::pdu_session_res_to_be_switched_dl_list); - return c.get(); - } - pdu_session_res_failed_to_setup_list_ps_req_l& set_pdu_session_res_failed_to_setup_list_ps_req() - { - set(types::pdu_session_res_failed_to_setup_list_ps_req); - return c.get(); - } + 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_; @@ -15734,11 +11898,11 @@ struct path_switch_request_ies_o { }; // PrivateIE-Container{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE (SIZE (1..65535)) OF PrivateIE-Field -template -using private_ie_container_l = dyn_array >; +template +using private_ie_container_l = dyn_array >; struct ngap_private_ies_empty_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { nulltype } value; @@ -15759,7 +11923,7 @@ 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 ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { crit_diagnostics, nulltype } value; @@ -15791,7 +11955,7 @@ struct ran_cfg_upd_ack_ies_o { // RANConfigurationUpdateFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ran_cfg_upd_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { cause, time_to_wait, crit_diagnostics, nulltype } value; @@ -15811,51 +11975,12 @@ struct ran_cfg_upd_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - time_to_wait_e& time_to_wait() - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const time_to_wait_e& time_to_wait() const - { - assert_choice_type("TimeToWait", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - time_to_wait_e& set_time_to_wait() - { - set(types::time_to_wait); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -15874,7 +11999,7 @@ struct ran_cfg_upd_fail_ies_o { // RANConfigurationUpdateIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ran_cfg_upd_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -15894,66 +12019,14 @@ struct ran_cfg_upd_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - printable_string<1, 150, true, true>& ran_node_name() - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - supported_ta_list_l& supported_ta_list() - { - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); - } - paging_drx_e& default_paging_drx() - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - global_ran_node_id_c& global_ran_node_id() - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - const printable_string<1, 150, true, true>& ran_node_name() const - { - assert_choice_type("PrintableString", type_.to_string(), "Value"); - return c.get >(); - } - const supported_ta_list_l& supported_ta_list() const - { - assert_choice_type("SupportedTAList", type_.to_string(), "Value"); - return c.get(); - } - const paging_drx_e& default_paging_drx() const - { - assert_choice_type("PagingDRX", type_.to_string(), "Value"); - return c.get(); - } - const global_ran_node_id_c& global_ran_node_id() const - { - assert_choice_type("GlobalRANNodeID", type_.to_string(), "Value"); - return c.get(); - } - printable_string<1, 150, true, true>& set_ran_node_name() - { - set(types::ran_node_name); - return c.get >(); - } - supported_ta_list_l& set_supported_ta_list() - { - set(types::supported_ta_list); - return c.get(); - } - paging_drx_e& set_default_paging_drx() - { - set(types::default_paging_drx); - return c.get(); - } - global_ran_node_id_c& set_global_ran_node_id() - { - set(types::global_ran_node_id); - return c.get(); - } + 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_; @@ -15972,7 +12045,7 @@ struct ran_cfg_upd_ies_o { // RRCInactiveTransitionReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct rrc_inactive_transition_report_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -15992,66 +12065,14 @@ struct rrc_inactive_transition_report_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - rrc_state_e& rrc_state() - { - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const rrc_state_e& rrc_state() const - { - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - rrc_state_e& set_rrc_state() - { - set(types::rrc_state); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } + 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_; @@ -16070,7 +12091,7 @@ struct rrc_inactive_transition_report_ies_o { // RerouteNASRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct reroute_nas_request_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -16090,81 +12111,16 @@ struct reroute_nas_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& ngap_msg() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<10, false, true>& amf_set_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - allowed_nssai_l& allowed_nssai() - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& ngap_msg() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<10, false, true>& amf_set_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const allowed_nssai_l& allowed_nssai() const - { - assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_ngap_msg() - { - set(types::ngap_msg); - return c.get >(); - } - fixed_bitstring<10, false, true>& set_amf_set_id() - { - set(types::amf_set_id); - return c.get >(); - } - allowed_nssai_l& set_allowed_nssai() - { - set(types::allowed_nssai); - return c.get(); - } + 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_; @@ -16183,7 +12139,7 @@ struct reroute_nas_request_ies_o { // SecondaryRATDataUsageReportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct secondary_rat_data_usage_report_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -16203,66 +12159,14 @@ struct secondary_rat_data_usage_report_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_secondary_ratusage_list_l& pdu_session_res_secondary_ratusage_list() - { - assert_choice_type("PDUSessionResourceSecondaryRATUsageList", type_.to_string(), "Value"); - return c.get(); - } - ho_flag_e& ho_flag() - { - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& pdu_session_res_secondary_ratusage_list() const - { - assert_choice_type("PDUSessionResourceSecondaryRATUsageList", type_.to_string(), "Value"); - return c.get(); - } - const ho_flag_e& ho_flag() const - { - assert_choice_type("HandoverFlag", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_secondary_ratusage_list_l& set_pdu_session_res_secondary_ratusage_list() - { - set(types::pdu_session_res_secondary_ratusage_list); - return c.get(); - } - ho_flag_e& set_ho_flag() - { - set(types::ho_flag); - return c.get(); - } + 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_; @@ -16281,7 +12185,7 @@ struct secondary_rat_data_usage_report_ies_o { // TraceFailureIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct trace_fail_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -16301,66 +12205,14 @@ struct trace_fail_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - fixed_octstring<8, true>& ngran_trace_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_octstring<8, true>& ngran_trace_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - fixed_octstring<8, true>& set_ngran_trace_id() - { - set(types::ngran_trace_id); - return c.get >(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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_; @@ -16379,7 +12231,7 @@ struct trace_fail_ind_ies_o { // TraceStartIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct trace_start_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, trace_activation, nulltype } value; @@ -16399,51 +12251,12 @@ struct trace_start_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - trace_activation_s& trace_activation() - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const trace_activation_s& trace_activation() const - { - assert_choice_type("TraceActivation", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - trace_activation_s& set_trace_activation() - { - set(types::trace_activation); - return c.get(); - } + 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_; @@ -16462,7 +12275,7 @@ struct trace_start_ies_o { // UEContextModificationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_mod_fail_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, cause, crit_diagnostics, nulltype } value; @@ -16482,66 +12295,14 @@ struct ue_context_mod_fail_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -16560,7 +12321,7 @@ struct ue_context_mod_fail_ies_o { // UEContextModificationRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_mod_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -16593,171 +12354,28 @@ struct ue_context_mod_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint16_t& ran_paging_prio() - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<256, false, true>& security_key() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint16_t& idx_to_rfsp() - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - ue_security_cap_s& ue_security_cap() - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - core_network_assist_info_s& core_network_assist_info() - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - emergency_fallback_ind_s& emergency_fallback_ind() - { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& new_amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint16_t& ran_paging_prio() const - { - assert_choice_type("INTEGER (1..256)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<256, false, true>& security_key() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint16_t& idx_to_rfsp() const - { - assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); - return c.get(); - } - const ue_aggregate_maximum_bit_rate_s& ue_aggregate_maximum_bit_rate() const - { - assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); - return c.get(); - } - const ue_security_cap_s& ue_security_cap() const - { - assert_choice_type("UESecurityCapabilities", type_.to_string(), "Value"); - return c.get(); - } - const core_network_assist_info_s& core_network_assist_info() const - { - assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); - return c.get(); - } - const emergency_fallback_ind_s& emergency_fallback_ind() const - { - assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& new_amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const rrc_inactive_transition_report_request_e& rrc_inactive_transition_report_request() const - { - assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - uint16_t& set_ran_paging_prio() - { - set(types::ran_paging_prio); - return c.get(); - } - fixed_bitstring<256, false, true>& set_security_key() - { - set(types::security_key); - return c.get >(); - } - uint16_t& set_idx_to_rfsp() - { - set(types::idx_to_rfsp); - return c.get(); - } - ue_aggregate_maximum_bit_rate_s& set_ue_aggregate_maximum_bit_rate() - { - set(types::ue_aggregate_maximum_bit_rate); - return c.get(); - } - ue_security_cap_s& set_ue_security_cap() - { - set(types::ue_security_cap); - return c.get(); - } - core_network_assist_info_s& set_core_network_assist_info() - { - set(types::core_network_assist_info); - return c.get(); - } - emergency_fallback_ind_s& set_emergency_fallback_ind() - { - set(types::emergency_fallback_ind); - return c.get(); - } - uint64_t& set_new_amf_ue_ngap_id() - { - set(types::new_amf_ue_ngap_id); - return c.get(); - } - rrc_inactive_transition_report_request_e& set_rrc_inactive_transition_report_request() - { - set(types::rrc_inactive_transition_report_request); - return c.get(); - } + 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_; @@ -16781,7 +12399,7 @@ struct ue_context_mod_request_ies_o { // UEContextModificationResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_mod_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -16801,81 +12419,16 @@ struct ue_context_mod_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - rrc_state_e& rrc_state() - { - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const rrc_state_e& rrc_state() const - { - assert_choice_type("RRCState", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - rrc_state_e& set_rrc_state() - { - set(types::rrc_state); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -16894,7 +12447,7 @@ struct ue_context_mod_resp_ies_o { // UEContextReleaseCommand-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_release_cmd_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { ue_ngap_ids, cause, nulltype } value; @@ -16914,36 +12467,10 @@ struct ue_context_release_cmd_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - ue_ngap_ids_c& ue_ngap_ids() - { - assert_choice_type("UE-NGAP-IDs", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const ue_ngap_ids_c& ue_ngap_ids() const - { - assert_choice_type("UE-NGAP-IDs", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - ue_ngap_ids_c& set_ue_ngap_ids() - { - set(types::ue_ngap_ids); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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_; @@ -16962,7 +12489,7 @@ struct ue_context_release_cmd_ies_o { // UEContextReleaseComplete-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_release_complete_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -16990,97 +12517,19 @@ struct ue_context_release_complete_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - info_on_recommended_cells_and_ran_nodes_for_paging_s& info_on_recommended_cells_and_ran_nodes_for_paging() - { - assert_choice_type("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "Value"); - return c.get(); - } - pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl() - { - assert_choice_type("PDUSessionResourceListCxtRelCpl", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } + 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 - { - assert_choice_type("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "Value"); - return c.get(); - } - const pdu_session_res_list_cxt_rel_cpl_l& pdu_session_res_list_cxt_rel_cpl() const - { - assert_choice_type("PDUSessionResourceListCxtRelCpl", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } - info_on_recommended_cells_and_ran_nodes_for_paging_s& set_info_on_recommended_cells_and_ran_nodes_for_paging() - { - set(types::info_on_recommended_cells_and_ran_nodes_for_paging); - return c.get(); - } - pdu_session_res_list_cxt_rel_cpl_l& set_pdu_session_res_list_cxt_rel_cpl() - { - set(types::pdu_session_res_list_cxt_rel_cpl); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -17103,7 +12552,7 @@ struct ue_context_release_complete_ies_o { // UEContextReleaseRequest-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_context_release_request_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17123,66 +12572,14 @@ struct ue_context_release_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& 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& pdu_session_res_list_cxt_rel_req() - { - assert_choice_type("PDUSessionResourceListCxtRelReq", type_.to_string(), "Value"); - return c.get(); - } - cause_c& cause() - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& pdu_session_res_list_cxt_rel_req() const - { - assert_choice_type("PDUSessionResourceListCxtRelReq", type_.to_string(), "Value"); - return c.get(); - } - const cause_c& cause() const - { - assert_choice_type("Cause", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - pdu_session_res_list_cxt_rel_req_l& set_pdu_session_res_list_cxt_rel_req() - { - set(types::pdu_session_res_list_cxt_rel_req); - return c.get(); - } - cause_c& set_cause() - { - set(types::cause); - return c.get(); - } + 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_; @@ -17201,7 +12598,7 @@ struct ue_context_release_request_ies_o { // UERadioCapabilityCheckRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_radio_cap_check_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, ue_radio_cap, nulltype } value; @@ -17221,51 +12618,12 @@ struct ue_radio_cap_check_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& ue_radio_cap() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& ue_radio_cap() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_ue_radio_cap() - { - set(types::ue_radio_cap); - return c.get >(); - } + 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_; @@ -17284,7 +12642,7 @@ struct ue_radio_cap_check_request_ies_o { // UERadioCapabilityCheckResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_radio_cap_check_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17304,66 +12662,14 @@ struct ue_radio_cap_check_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ims_voice_support_ind_e& ims_voice_support_ind() - { - assert_choice_type("IMSVoiceSupportIndicator", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const ims_voice_support_ind_e& ims_voice_support_ind() const - { - assert_choice_type("IMSVoiceSupportIndicator", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ims_voice_support_ind_e& set_ims_voice_support_ind() - { - set(types::ims_voice_support_ind); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -17382,7 +12688,7 @@ struct ue_radio_cap_check_resp_ies_o { // UERadioCapabilityInfoIndicationIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ue_radio_cap_info_ind_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17402,66 +12708,14 @@ struct ue_radio_cap_info_ind_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& ue_radio_cap() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& ue_radio_cap() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const ue_radio_cap_for_paging_s& ue_radio_cap_for_paging() const - { - assert_choice_type("UERadioCapabilityForPaging", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_ue_radio_cap() - { - set(types::ue_radio_cap); - return c.get >(); - } - ue_radio_cap_for_paging_s& set_ue_radio_cap_for_paging() - { - set(types::ue_radio_cap_for_paging); - return c.get(); - } + 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; private: types type_; @@ -17480,7 +12734,7 @@ struct ue_radio_cap_info_ind_ies_o { // UETNLABindingReleaseRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct uetnla_binding_release_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { amf_ue_ngap_id, ran_ue_ngap_id, nulltype } value; @@ -17500,36 +12754,10 @@ struct uetnla_binding_release_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } + 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_; @@ -17548,7 +12776,7 @@ struct uetnla_binding_release_request_ies_o { // UplinkNASTransport-IEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ul_nas_transport_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17568,66 +12796,14 @@ struct ul_nas_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& nas_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - user_location_info_c& user_location_info() - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& nas_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const user_location_info_c& user_location_info() const - { - assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_nas_pdu() - { - set(types::nas_pdu); - return c.get >(); - } - user_location_info_c& set_user_location_info() - { - set(types::user_location_info); - return c.get(); - } + 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_; @@ -17646,7 +12822,7 @@ struct ul_nas_transport_ies_o { // UplinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ul_non_ueassociated_nrp_pa_transport_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { routing_id, nrp_pa_pdu, nulltype } value; @@ -17666,36 +12842,10 @@ struct ul_non_ueassociated_nrp_pa_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - unbounded_octstring& routing_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& nrp_pa_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& routing_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& nrp_pa_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& set_routing_id() - { - set(types::routing_id); - return c.get >(); - } - unbounded_octstring& set_nrp_pa_pdu() - { - set(types::nrp_pa_pdu); - return c.get >(); - } + 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_; @@ -17714,7 +12864,7 @@ struct ul_non_ueassociated_nrp_pa_transport_ies_o { // UplinkRANConfigurationTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ul_ran_cfg_transfer_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { son_cfg_transfer_ul, endc_son_cfg_transfer_ul, nulltype } value; @@ -17734,36 +12884,10 @@ struct ul_ran_cfg_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - son_cfg_transfer_s& son_cfg_transfer_ul() - { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& endc_son_cfg_transfer_ul() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const son_cfg_transfer_s& son_cfg_transfer_ul() const - { - assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& endc_son_cfg_transfer_ul() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - son_cfg_transfer_s& set_son_cfg_transfer_ul() - { - set(types::son_cfg_transfer_ul); - return c.get(); - } - unbounded_octstring& set_endc_son_cfg_transfer_ul() - { - set(types::endc_son_cfg_transfer_ul); - return c.get >(); - } + 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_; @@ -17782,7 +12906,7 @@ struct ul_ran_cfg_transfer_ies_o { // UplinkRANStatusTransferIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ul_ran_status_transfer_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17802,51 +12926,12 @@ struct ul_ran_status_transfer_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - ran_status_transfer_transparent_container_s& ran_status_transfer_transparent_container() - { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& 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& ran_status_transfer_transparent_container() const - { - assert_choice_type("RANStatusTransfer-TransparentContainer", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - ran_status_transfer_transparent_container_s& set_ran_status_transfer_transparent_container() - { - set(types::ran_status_transfer_transparent_container); - return c.get(); - } + 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_; @@ -17865,7 +12950,7 @@ struct ul_ran_status_transfer_ies_o { // UplinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct ul_ueassociated_nrp_pa_transport_ies_o { - // Value ::= CLASS OPEN TYPE + // 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; @@ -17885,66 +12970,14 @@ struct ul_ueassociated_nrp_pa_transport_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - uint64_t& amf_ue_ngap_id() - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - uint64_t& ran_ue_ngap_id() - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& routing_id() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& nrp_pa_pdu() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const uint64_t& amf_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); - return c.get(); - } - const uint64_t& ran_ue_ngap_id() const - { - assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& routing_id() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& nrp_pa_pdu() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - uint64_t& set_amf_ue_ngap_id() - { - set(types::amf_ue_ngap_id); - return c.get(); - } - uint64_t& set_ran_ue_ngap_id() - { - set(types::ran_ue_ngap_id); - return c.get(); - } - unbounded_octstring& set_routing_id() - { - set(types::routing_id); - return c.get >(); - } - unbounded_octstring& set_nrp_pa_pdu() - { - set(types::nrp_pa_pdu); - return c.get >(); - } + 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_; @@ -17963,7 +12996,7 @@ struct ul_ueassociated_nrp_pa_transport_ies_o { // WriteReplaceWarningRequestIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct write_replace_warning_request_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { @@ -17996,171 +13029,28 @@ struct write_replace_warning_request_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<16, false, true>& serial_num() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - warning_area_list_c& warning_area_list() - { - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); - } - uint32_t& repeat_period() - { - assert_choice_type("INTEGER (0..131071)", type_.to_string(), "Value"); - return c.get(); - } - uint32_t& nof_broadcasts_requested() - { - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); - } - fixed_octstring<2, true>& warning_type() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_octstring<50, true>& warning_security_info() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<8, false, true>& data_coding_scheme() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - unbounded_octstring& warning_msg_contents() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - concurrent_warning_msg_ind_e& concurrent_warning_msg_ind() - { - assert_choice_type("ConcurrentWarningMessageInd", type_.to_string(), "Value"); - return c.get(); - } - unbounded_octstring& warning_area_coordinates() - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<16, false, true>& msg_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<16, false, true>& serial_num() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const warning_area_list_c& warning_area_list() const - { - assert_choice_type("WarningAreaList", type_.to_string(), "Value"); - return c.get(); - } - const uint32_t& repeat_period() const - { - assert_choice_type("INTEGER (0..131071)", type_.to_string(), "Value"); - return c.get(); - } - const uint32_t& nof_broadcasts_requested() const - { - assert_choice_type("INTEGER (0..65535)", type_.to_string(), "Value"); - return c.get(); - } - const fixed_octstring<2, true>& warning_type() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_octstring<50, true>& warning_security_info() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<8, false, true>& data_coding_scheme() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const unbounded_octstring& warning_msg_contents() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - const concurrent_warning_msg_ind_e& concurrent_warning_msg_ind() const - { - assert_choice_type("ConcurrentWarningMessageInd", type_.to_string(), "Value"); - return c.get(); - } - const unbounded_octstring& warning_area_coordinates() const - { - assert_choice_type("OCTET STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_msg_id() - { - set(types::msg_id); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_serial_num() - { - set(types::serial_num); - return c.get >(); - } - warning_area_list_c& set_warning_area_list() - { - set(types::warning_area_list); - return c.get(); - } - uint32_t& set_repeat_period() - { - set(types::repeat_period); - return c.get(); - } - uint32_t& set_nof_broadcasts_requested() - { - set(types::nof_broadcasts_requested); - return c.get(); - } - fixed_octstring<2, true>& set_warning_type() - { - set(types::warning_type); - return c.get >(); - } - fixed_octstring<50, true>& set_warning_security_info() - { - set(types::warning_security_info); - return c.get >(); - } - fixed_bitstring<8, false, true>& set_data_coding_scheme() - { - set(types::data_coding_scheme); - return c.get >(); - } - unbounded_octstring& set_warning_msg_contents() - { - set(types::warning_msg_contents); - return c.get >(); - } - concurrent_warning_msg_ind_e& set_concurrent_warning_msg_ind() - { - set(types::concurrent_warning_msg_ind); - return c.get(); - } - unbounded_octstring& set_warning_area_coordinates() - { - set(types::warning_area_coordinates); - return c.get >(); - } + 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_; @@ -18184,7 +13074,7 @@ struct write_replace_warning_request_ies_o { // WriteReplaceWarningResponseIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES struct write_replace_warning_resp_ies_o { - // Value ::= CLASS OPEN TYPE + // Value ::= OPEN TYPE struct value_c { struct types_opts { enum options { msg_id, serial_num, broadcast_completed_area_list, crit_diagnostics, nulltype } value; @@ -18204,66 +13094,14 @@ struct write_replace_warning_resp_ies_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - fixed_bitstring<16, false, true>& msg_id() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - fixed_bitstring<16, false, true>& serial_num() - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - broadcast_completed_area_list_c& broadcast_completed_area_list() - { - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); - } - crit_diagnostics_s& crit_diagnostics() - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - const fixed_bitstring<16, false, true>& msg_id() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const fixed_bitstring<16, false, true>& serial_num() const - { - assert_choice_type("BIT STRING", type_.to_string(), "Value"); - return c.get >(); - } - const broadcast_completed_area_list_c& broadcast_completed_area_list() const - { - assert_choice_type("BroadcastCompletedAreaList", type_.to_string(), "Value"); - return c.get(); - } - const crit_diagnostics_s& crit_diagnostics() const - { - assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); - return c.get(); - } - fixed_bitstring<16, false, true>& set_msg_id() - { - set(types::msg_id); - return c.get >(); - } - fixed_bitstring<16, false, true>& set_serial_num() - { - set(types::serial_num); - return c.get >(); - } - broadcast_completed_area_list_c& set_broadcast_completed_area_list() - { - set(types::broadcast_completed_area_list); - return c.get(); - } - crit_diagnostics_s& set_crit_diagnostics() - { - set(types::crit_diagnostics); - return c.get(); - } + 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_; @@ -18280,61 +13118,31 @@ struct write_replace_warning_resp_ies_o { static presence_e get_presence(const uint32_t& id); }; -// LocationReport ::= SEQUENCE -struct location_report_s { - struct protocol_ies_l_ { - 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; - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct location_report_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + location_report_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// LocationReportingControl ::= SEQUENCE -struct location_report_ctrl_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// LocationReport ::= SEQUENCE +struct location_report_s { + bool ext = false; + location_report_ies_container protocol_ies; // ... // sequence methods @@ -18343,57 +13151,26 @@ struct location_report_ctrl_s { void to_json(json_writer& j) const; }; -// LocationReportingFailureIndication ::= SEQUENCE -struct location_report_fail_ind_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct location_report_ctrl_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s location_report_request_type; // sequence methods + location_report_ctrl_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// NASNonDeliveryIndication ::= SEQUENCE -struct nas_non_delivery_ind_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// LocationReportingControl ::= SEQUENCE +struct location_report_ctrl_s { + bool ext = false; + location_report_ctrl_ies_container protocol_ies; // ... // sequence methods @@ -18402,56 +13179,26 @@ struct nas_non_delivery_ind_s { void to_json(json_writer& j) const; }; -// NGReset ::= SEQUENCE -struct ng_reset_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s cause; - ie_field_s reset_type; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct location_report_fail_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s cause; // sequence methods + location_report_fail_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// NGResetAcknowledge ::= SEQUENCE -struct ng_reset_ack_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// LocationReportingFailureIndication ::= SEQUENCE +struct location_report_fail_ind_s { + bool ext = false; + location_report_fail_ind_ies_container protocol_ies; // ... // sequence methods @@ -18460,62 +13207,27 @@ struct ng_reset_ack_s { void to_json(json_writer& j) const; }; -// NGSetupFailure ::= SEQUENCE -struct ng_setup_fail_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct nas_non_delivery_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > nas_pdu; + ie_field_s cause; // sequence methods + nas_non_delivery_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// NGSetupRequest ::= SEQUENCE -struct ng_setup_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NASNonDeliveryIndication ::= SEQUENCE +struct nas_non_delivery_ind_s { + bool ext = false; + nas_non_delivery_ind_ies_container protocol_ies; // ... // sequence methods @@ -18524,64 +13236,25 @@ struct ng_setup_request_s { void to_json(json_writer& j) const; }; -// NGSetupResponse ::= SEQUENCE -struct ng_setup_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ng_reset_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s cause; + ie_field_s reset_type; // sequence methods + ng_reset_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// OverloadStart ::= SEQUENCE -struct overload_start_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NGReset ::= SEQUENCE +struct ng_reset_s { + bool ext = false; + ng_reset_ies_container protocol_ies; // ... // sequence methods @@ -18590,22 +13263,27 @@ struct overload_start_s { void to_json(json_writer& j) const; }; -struct protocol_ie_container_empty_l { +struct ng_reset_ack_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; + // sequence methods + ng_reset_ack_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// OverloadStop ::= SEQUENCE -struct overload_stop_s { - typedef protocol_ie_container_empty_l protocol_ies_l_; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NGResetAcknowledge ::= SEQUENCE +struct ng_reset_ack_s { + bool ext = false; + ng_reset_ack_ies_container protocol_ies; // ... // sequence methods @@ -18614,61 +13292,28 @@ struct overload_stop_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyConfirm ::= SEQUENCE -struct pdu_session_res_modify_confirm_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ng_setup_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + ng_setup_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyIndication ::= SEQUENCE -struct pdu_session_res_modify_ind_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NGSetupFailure ::= SEQUENCE +struct ng_setup_fail_s { + bool ext = false; + ng_setup_fail_ies_container protocol_ies; // ... // sequence methods @@ -18677,66 +13322,30 @@ struct pdu_session_res_modify_ind_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyRequest ::= SEQUENCE -struct pdu_session_res_modify_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ng_setup_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + ng_setup_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceModifyResponse ::= SEQUENCE -struct pdu_session_res_modify_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NGSetupRequest ::= SEQUENCE +struct ng_setup_request_s { + bool ext = false; + ng_setup_request_ies_container protocol_ies; // ... // sequence methods @@ -18745,66 +13354,31 @@ struct pdu_session_res_modify_resp_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceNotify ::= SEQUENCE -struct pdu_session_res_notify_s { - struct protocol_ies_l_ { - 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; - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct ng_setup_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + ng_setup_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseCommand ::= SEQUENCE -struct pdu_session_res_release_cmd_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// NGSetupResponse ::= SEQUENCE +struct ng_setup_resp_s { + bool ext = false; + ng_setup_resp_ies_container protocol_ies; // ... // sequence methods @@ -18813,67 +13387,29 @@ struct pdu_session_res_release_cmd_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceReleaseResponse ::= SEQUENCE -struct pdu_session_res_release_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct overload_start_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + overload_start_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupRequest ::= SEQUENCE -struct pdu_session_res_setup_request_s { - struct protocol_ies_l_ { - 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; - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// OverloadStart ::= SEQUENCE +struct overload_start_s { + bool ext = false; + overload_start_ies_container protocol_ies; // ... // sequence methods @@ -18882,65 +13418,21 @@ struct pdu_session_res_setup_request_s { void to_json(json_writer& j) const; }; -// PDUSessionResourceSetupResponse ::= SEQUENCE -struct pdu_session_res_setup_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... +struct protocol_ie_container_empty_l { + template + using ie_field_s = protocol_ie_container_item_s; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; +typedef protocol_ie_container_empty_l overload_stop_ies_container; -// PWSCancelRequest ::= SEQUENCE -struct pws_cancel_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// OverloadStop ::= SEQUENCE +struct overload_stop_s { + bool ext = false; + overload_stop_ies_container protocol_ies; // ... // sequence methods @@ -18949,58 +13441,31 @@ struct pws_cancel_request_s { void to_json(json_writer& j) const; }; -// PWSCancelResponse ::= SEQUENCE -struct pws_cancel_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_confirm_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + pdu_session_res_modify_confirm_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PWSFailureIndication ::= SEQUENCE -struct pws_fail_ind_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PDUSessionResourceModifyConfirm ::= SEQUENCE +struct pdu_session_res_modify_confirm_s { + bool ext = false; + pdu_session_res_modify_confirm_ies_container protocol_ies; // ... // sequence methods @@ -19009,67 +13474,26 @@ struct pws_fail_ind_s { void to_json(json_writer& j) const; }; -// PWSRestartIndication ::= SEQUENCE -struct pws_restart_ind_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s > amf_ue_ngap_id; + ie_field_s > ran_ue_ngap_id; + ie_field_s > pdu_session_res_modify_list_mod_ind; // sequence methods + pdu_session_res_modify_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// Paging ::= SEQUENCE -struct paging_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PDUSessionResourceModifyIndication ::= SEQUENCE +struct pdu_session_res_modify_ind_s { + bool ext = false; + pdu_session_res_modify_ind_ies_container protocol_ies; // ... // sequence methods @@ -19078,78 +13502,28 @@ struct paging_s { void to_json(json_writer& j) const; }; -// PathSwitchRequest ::= SEQUENCE -struct path_switch_request_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + pdu_session_res_modify_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PathSwitchRequestAcknowledge ::= SEQUENCE -struct path_switch_request_ack_s { - struct protocol_ies_l_ { - 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; - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PDUSessionResourceModifyRequest ::= SEQUENCE +struct pdu_session_res_modify_request_s { + bool ext = false; + pdu_session_res_modify_request_ies_container protocol_ies; // ... // sequence methods @@ -19158,67 +13532,67 @@ struct path_switch_request_ack_s { void to_json(json_writer& j) const; }; -// PathSwitchRequestFailure ::= SEQUENCE -struct path_switch_request_fail_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_modify_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + pdu_session_res_modify_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -template -struct private_ie_container_item_s { - private_ie_id_c id; - crit_e crit; - valueT_ value; +// PDUSessionResourceModifyResponse ::= SEQUENCE +struct pdu_session_res_modify_resp_s { + bool ext = false; + pdu_session_res_modify_resp_ies_container protocol_ies; + // ... // 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(bit_ref& bref); void to_json(json_writer& j) const; }; -struct private_ie_container_empty_l { +struct pdu_session_res_notify_ies_container { template - using ie_field_s = private_ie_container_item_s; + 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; + 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; // sequence methods + pdu_session_res_notify_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// PrivateMessage ::= SEQUENCE -struct private_msg_s { - typedef private_ie_container_empty_l private_ies_l_; - // member variables - bool ext = false; - private_ies_l_ private_ies; +// PDUSessionResourceNotify ::= SEQUENCE +struct pdu_session_res_notify_s { + bool ext = false; + pdu_session_res_notify_ies_container protocol_ies; // ... // sequence methods @@ -19227,61 +13601,32 @@ struct private_msg_s { void to_json(json_writer& j) const; }; -// RANConfigurationUpdate ::= SEQUENCE -struct ran_cfg_upd_s { - struct protocol_ies_l_ { - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_release_cmd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + pdu_session_res_release_cmd_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// RANConfigurationUpdateAcknowledge ::= SEQUENCE -struct ran_cfg_upd_ack_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - bool crit_diagnostics_present = false; - ie_field_s crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... +// PDUSessionResourceReleaseCommand ::= SEQUENCE +struct pdu_session_res_release_cmd_s { + bool ext = false; + pdu_session_res_release_cmd_ies_container protocol_ies; + // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -19289,59 +13634,30 @@ struct ran_cfg_upd_ack_s { void to_json(json_writer& j) const; }; -// RANConfigurationUpdateFailure ::= SEQUENCE -struct ran_cfg_upd_fail_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_release_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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; // sequence methods + pdu_session_res_release_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// RRCInactiveTransitionReport ::= SEQUENCE -struct rrc_inactive_transition_report_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PDUSessionResourceReleaseResponse ::= SEQUENCE +struct pdu_session_res_release_resp_s { + bool ext = false; + pdu_session_res_release_resp_ies_container protocol_ies; // ... // sequence methods @@ -19350,63 +13666,32 @@ struct rrc_inactive_transition_report_s { void to_json(json_writer& j) const; }; -// RerouteNASRequest ::= SEQUENCE -struct reroute_nas_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_setup_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 > 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 + pdu_session_res_setup_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// SecondaryRATDataUsageReport ::= SEQUENCE -struct secondary_rat_data_usage_report_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ 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 @@ -19415,57 +13700,32 @@ struct secondary_rat_data_usage_report_s { void to_json(json_writer& j) const; }; -// TraceFailureIndication ::= SEQUENCE -struct trace_fail_ind_s { - struct protocol_ies_l_ { - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pdu_session_res_setup_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + pdu_session_res_setup_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// TraceStart ::= SEQUENCE -struct trace_start_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ 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 @@ -19474,75 +13734,29 @@ struct trace_start_s { void to_json(json_writer& j) const; }; -// UEContextModificationFailure ::= SEQUENCE -struct ue_context_mod_fail_s { - struct protocol_ies_l_ { - 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 - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pws_cancel_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + pws_cancel_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextModificationRequest ::= SEQUENCE -struct ue_context_mod_request_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PWSCancelRequest ::= SEQUENCE +struct pws_cancel_request_s { + bool ext = false; + pws_cancel_request_ies_container protocol_ies; // ... // sequence methods @@ -19551,60 +13765,29 @@ struct ue_context_mod_request_s { void to_json(json_writer& j) const; }; -// UEContextModificationResponse ::= SEQUENCE -struct ue_context_mod_resp_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pws_cancel_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + pws_cancel_resp_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextReleaseCommand ::= SEQUENCE -struct ue_context_release_cmd_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s ue_ngap_ids; - ie_field_s cause; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PWSCancelResponse ::= SEQUENCE +struct pws_cancel_resp_s { + bool ext = false; + pws_cancel_resp_ies_container protocol_ies; // ... // sequence methods @@ -19613,65 +13796,25 @@ struct ue_context_release_cmd_s { void to_json(json_writer& j) const; }; -// UEContextReleaseComplete ::= SEQUENCE -struct ue_context_release_complete_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pws_fail_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + ie_field_s pws_failed_cell_id_list; + ie_field_s global_ran_node_id; // sequence methods + pws_fail_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UEContextReleaseRequest ::= SEQUENCE -struct ue_context_release_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PWSFailureIndication ::= SEQUENCE +struct pws_fail_ind_s { + bool ext = false; + pws_fail_ind_ies_container protocol_ies; // ... // sequence methods @@ -19680,59 +13823,28 @@ struct ue_context_release_request_s { void to_json(json_writer& j) const; }; -// UERadioCapabilityCheckRequest ::= SEQUENCE -struct ue_radio_cap_check_request_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct pws_restart_ind_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + pws_restart_ind_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UERadioCapabilityCheckResponse ::= SEQUENCE -struct ue_radio_cap_check_resp_s { - struct protocol_ies_l_ { - 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 ims_voice_support_ind; - ie_field_s crit_diagnostics; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PWSRestartIndication ::= SEQUENCE +struct pws_restart_ind_s { + bool ext = false; + pws_restart_ind_ies_container protocol_ies; // ... // sequence methods @@ -19741,57 +13853,35 @@ struct ue_radio_cap_check_resp_s { void to_json(json_writer& j) const; }; -// UERadioCapabilityInfoIndication ::= SEQUENCE -struct ue_radio_cap_info_ind_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct paging_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + paging_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UETNLABindingReleaseRequest ::= SEQUENCE -struct uetnla_binding_release_request_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// Paging ::= SEQUENCE +struct paging_s { + bool ext = false; + paging_ies_container protocol_ies; // ... // sequence methods @@ -19800,56 +13890,32 @@ struct uetnla_binding_release_request_s { void to_json(json_writer& j) const; }; -// UplinkNASTransport ::= SEQUENCE -struct ul_nas_transport_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct path_switch_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + path_switch_request_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -struct ul_non_ueassociated_nrp_pa_transport_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // member variables - ie_field_s > routing_id; - ie_field_s > nrp_pa_pdu; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PathSwitchRequest ::= SEQUENCE +struct path_switch_request_s { + bool ext = false; + path_switch_request_ies_container protocol_ies; // ... // sequence methods @@ -19858,87 +13924,72 @@ struct ul_non_ueassociated_nrp_pa_transport_s { void to_json(json_writer& j) const; }; -// UplinkRANConfigurationTransfer ::= SEQUENCE -struct ul_ran_cfg_transfer_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct path_switch_request_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + path_switch_request_ack_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UplinkRANStatusTransfer ::= SEQUENCE -struct ul_ran_status_transfer_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; +// PathSwitchRequestAcknowledge ::= SEQUENCE +struct path_switch_request_ack_s { + bool ext = false; + path_switch_request_ack_ies_container protocol_ies; + // ... - // 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 + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct path_switch_request_fail_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... + 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 + path_switch_request_fail_ies_container(); SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; }; -// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE -struct ul_ueassociated_nrp_pa_transport_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; +// PathSwitchRequestFailure ::= SEQUENCE +struct path_switch_request_fail_s { + bool ext = false; + path_switch_request_fail_ies_container protocol_ies; // ... // sequence methods @@ -19947,74 +13998,34 @@ struct ul_ueassociated_nrp_pa_transport_s { void to_json(json_writer& j) const; }; -// WriteReplaceWarningRequest ::= SEQUENCE -struct write_replace_warning_request_s { - struct protocol_ies_l_ { - template - using ie_field_s = protocol_ie_container_item_s; - - // 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; - - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; - // ... +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(bit_ref& bref); void to_json(json_writer& j) const; }; -// WriteReplaceWarningResponse ::= SEQUENCE -struct write_replace_warning_resp_s { - struct protocol_ies_l_ { - 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; - - // sequence methods - protocol_ies_l_(); - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - }; +struct private_ie_container_empty_l { + template + using ie_field_s = private_ie_container_item_s; - // member variables - bool ext = false; - protocol_ies_l_ protocol_ies; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; // ... // sequence methods @@ -20023,345 +14034,781 @@ struct write_replace_warning_resp_s { void to_json(json_writer& j) const; }; -// NGAP-ELEMENTARY-PROCEDURES-CLASS-1 ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE -struct ngap_elem_procs_class_minus1_o { - // InitiatingMessage ::= CLASS 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, - nulltype - } value; +struct ran_cfg_upd_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(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ran_cfg_upd_ack_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // member variables + bool crit_diagnostics_present = false; + ie_field_s crit_diagnostics; + + // sequence methods + ran_cfg_upd_ack_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RANConfigurationUpdateAcknowledge ::= SEQUENCE +struct ran_cfg_upd_ack_s { + bool ext = false; + ran_cfg_upd_ack_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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 + 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 + ran_cfg_upd_fail_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct rrc_inactive_transition_report_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; + + // sequence methods + rrc_inactive_transition_report_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct reroute_nas_request_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; + + // sequence methods + reroute_nas_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct secondary_rat_data_usage_report_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; + + // sequence methods + secondary_rat_data_usage_report_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct trace_fail_ind_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(bit_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(bit_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; + + // sequence methods + trace_start_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// TraceStart ::= SEQUENCE +struct trace_start_s { + bool ext = false; + trace_start_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ue_context_mod_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // 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; + + // sequence methods + ue_context_mod_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ue_context_mod_resp_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // 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; + + // sequence methods + ue_context_mod_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ue_context_release_cmd_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // member variables + ie_field_s ue_ngap_ids; + ie_field_s cause; + + // sequence methods + ue_context_release_cmd_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ue_context_release_complete_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // 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; + + // sequence methods + ue_context_release_complete_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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; + + // sequence methods + ue_context_release_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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; + + // 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; + + // sequence methods + ue_radio_cap_check_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UERadioCapabilityCheckRequest ::= SEQUENCE +struct ue_radio_cap_check_request_s { + bool ext = false; + ue_radio_cap_check_request_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ue_radio_cap_check_resp_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 ims_voice_support_ind; + ie_field_s crit_diagnostics; - std::string to_string() const; - }; - typedef enumerated types; + // sequence methods + ue_radio_cap_check_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - // 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(bit_ref& bref); - void to_json(json_writer& j) const; - // getters - amf_cfg_upd_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_cancel_s& ho_cancel() - { - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_required_s& ho_required() - { - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_request_s& ho_request() - { - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - init_context_setup_request_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ng_reset_s& ng_reset() - { - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ng_setup_request_s& ng_setup_request() - { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - path_switch_request_s& path_switch_request() - { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_modify_request_s& pdu_session_res_modify_request() - { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() - { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() - { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_setup_request_s& pdu_session_res_setup_request() - { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_cancel_request_s& pws_cancel_request() - { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ran_cfg_upd_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_mod_request_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_release_cmd_s& ue_context_release_cmd() - { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_radio_cap_check_request_s& ue_radio_cap_check_request() - { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - write_replace_warning_request_s& write_replace_warning_request() - { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const amf_cfg_upd_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_cancel_s& ho_cancel() const - { - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_required_s& ho_required() const - { - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_request_s& ho_request() const - { - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const init_context_setup_request_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ng_reset_s& ng_reset() const - { - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ng_setup_request_s& ng_setup_request() const - { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const path_switch_request_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_modify_request_s& pdu_session_res_modify_request() const - { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() const - { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() const - { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_setup_request_s& pdu_session_res_setup_request() const - { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_cancel_request_s& pws_cancel_request() const - { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ran_cfg_upd_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_mod_request_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_release_cmd_s& ue_context_release_cmd() const - { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_radio_cap_check_request_s& ue_radio_cap_check_request() const - { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const write_replace_warning_request_s& write_replace_warning_request() const - { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - amf_cfg_upd_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_cancel_s& set_ho_cancel() - { - set(types::ho_cancel); - return c.get(); - } - ho_required_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_request_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_request_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_reset_s& set_ng_reset() - { - set(types::ng_reset); - return c.get(); - } - ng_setup_request_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - pdu_session_res_modify_request_s& set_pdu_session_res_modify_request() - { - set(types::pdu_session_res_modify_request); - return c.get(); - } - pdu_session_res_modify_ind_s& set_pdu_session_res_modify_ind() - { - set(types::pdu_session_res_modify_ind); - return c.get(); - } - pdu_session_res_release_cmd_s& set_pdu_session_res_release_cmd() - { - set(types::pdu_session_res_release_cmd); - return c.get(); - } - pdu_session_res_setup_request_s& set_pdu_session_res_setup_request() - { - set(types::pdu_session_res_setup_request); - return c.get(); - } - pws_cancel_request_s& set_pws_cancel_request() - { - set(types::pws_cancel_request); - return c.get(); - } - ran_cfg_upd_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_request_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } - ue_context_release_cmd_s& set_ue_context_release_cmd() - { - set(types::ue_context_release_cmd); - return c.get(); - } - ue_radio_cap_check_request_s& set_ue_radio_cap_check_request() - { - set(types::ue_radio_cap_check_request); - return c.get(); - } - write_replace_warning_request_s& set_write_replace_warning_request() - { - set(types::write_replace_warning_request); - return c.get(); - } +// UERadioCapabilityCheckResponse ::= SEQUENCE +struct ue_radio_cap_check_resp_s { + bool ext = false; + ue_radio_cap_check_resp_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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; + + // 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; + + // sequence methods + ue_radio_cap_info_ind_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct uetnla_binding_release_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; + + // sequence methods + uetnla_binding_release_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ul_nas_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 > 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(bit_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; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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; + + // sequence methods + ul_non_ueassociated_nrp_pa_transport_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// 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 + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct ul_ran_cfg_transfer_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // 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; + + // sequence methods + ul_ran_cfg_transfer_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UplinkRANConfigurationTransfer ::= SEQUENCE +struct ul_ran_cfg_transfer_s { + bool ext = false; + ul_ran_cfg_transfer_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +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(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UplinkRANStatusTransfer ::= SEQUENCE +struct ul_ran_status_transfer_s { + bool ext = false; + ul_ran_status_transfer_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + 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; + + // sequence methods + ul_ueassociated_nrp_pa_transport_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE +struct ul_ueassociated_nrp_pa_transport_s { + bool ext = false; + ul_ueassociated_nrp_pa_transport_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +struct write_replace_warning_request_ies_container { + template + using ie_field_s = protocol_ie_container_item_s; + + // 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; + + // sequence methods + write_replace_warning_request_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// WriteReplaceWarningRequest ::= SEQUENCE +struct write_replace_warning_request_s { + bool ext = false; + write_replace_warning_request_ies_container protocol_ies; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +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; + + // sequence methods + write_replace_warning_resp_ies_container(); + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; - private: - types type_; - choice_buffer_t - c; +// WriteReplaceWarningResponse ::= SEQUENCE +struct write_replace_warning_resp_s { + bool ext = false; + write_replace_warning_resp_ies_container protocol_ies; + // ... - void destroy_(); - }; - // SuccessfulOutcome ::= CLASS OPEN TYPE - struct successful_outcome_c { + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; +}; + +// NGAP-ELEMENTARY-PROCEDURES-CLASS-1 ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE +struct ngap_elem_procs_class_minus1_o { + // InitiatingMessage ::= OPEN TYPE + struct init_msg_c { struct types_opts { enum options { amf_cfg_upd, @@ -20390,313 +14837,79 @@ struct ngap_elem_procs_class_minus1_o { 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_(); } + 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(bit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_ack_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_cancel_ack_s& ho_cancel() - { - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_cmd_s& ho_required() - { - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_request_ack_s& ho_request() - { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - init_context_setup_resp_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ng_reset_ack_s& ng_reset() - { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ng_setup_resp_s& ng_setup_request() - { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - path_switch_request_ack_s& path_switch_request() - { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_modify_resp_s& pdu_session_res_modify_request() - { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() - { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_release_resp_s& pdu_session_res_release_cmd() - { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_setup_resp_s& pdu_session_res_setup_request() - { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pws_cancel_resp_s& pws_cancel_request() - { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ran_cfg_upd_ack_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_context_mod_resp_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_context_release_complete_s& ue_context_release_cmd() - { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_radio_cap_check_resp_s& ue_radio_cap_check_request() - { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - write_replace_warning_resp_s& write_replace_warning_request() - { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const amf_cfg_upd_ack_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_cancel_ack_s& ho_cancel() const - { - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_cmd_s& ho_required() const - { - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_request_ack_s& ho_request() const - { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const init_context_setup_resp_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ng_reset_ack_s& ng_reset() const - { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ng_setup_resp_s& ng_setup_request() const - { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const path_switch_request_ack_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_modify_resp_s& pdu_session_res_modify_request() const - { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() const - { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_release_resp_s& pdu_session_res_release_cmd() const - { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_setup_resp_s& pdu_session_res_setup_request() const - { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pws_cancel_resp_s& pws_cancel_request() const - { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ran_cfg_upd_ack_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_context_mod_resp_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_context_release_complete_s& ue_context_release_cmd() const - { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_radio_cap_check_resp_s& ue_radio_cap_check_request() const - { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const write_replace_warning_resp_s& write_replace_warning_request() const - { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - amf_cfg_upd_ack_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_cancel_ack_s& set_ho_cancel() - { - set(types::ho_cancel); - return c.get(); - } - ho_cmd_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_request_ack_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_resp_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_reset_ack_s& set_ng_reset() - { - set(types::ng_reset); - return c.get(); - } - ng_setup_resp_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_ack_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - pdu_session_res_modify_resp_s& set_pdu_session_res_modify_request() - { - set(types::pdu_session_res_modify_request); - return c.get(); - } - pdu_session_res_modify_confirm_s& set_pdu_session_res_modify_ind() - { - set(types::pdu_session_res_modify_ind); - return c.get(); - } - pdu_session_res_release_resp_s& set_pdu_session_res_release_cmd() - { - set(types::pdu_session_res_release_cmd); - return c.get(); - } - pdu_session_res_setup_resp_s& set_pdu_session_res_setup_request() - { - set(types::pdu_session_res_setup_request); - return c.get(); - } - pws_cancel_resp_s& set_pws_cancel_request() - { - set(types::pws_cancel_request); - return c.get(); - } - ran_cfg_upd_ack_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_resp_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } - ue_context_release_complete_s& set_ue_context_release_cmd() - { - set(types::ue_context_release_cmd); - return c.get(); - } - ue_radio_cap_check_resp_s& set_ue_radio_cap_check_request() - { - set(types::ue_radio_cap_check_request); - return c.get(); - } - write_replace_warning_resp_s& set_write_replace_warning_request() - { - set(types::write_replace_warning_request); - return c.get(); - } + 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(); + 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; private: types type_; - choice_buffer_t + choice_buffer_t c; void destroy_(); }; - // UnsuccessfulOutcome ::= CLASS OPEN TYPE - struct unsuccessful_outcome_c { + // SuccessfulOutcome ::= OPEN TYPE + struct successful_outcome_c { struct types_opts { enum options { amf_cfg_upd, @@ -20709,218 +14922,14 @@ struct ngap_elem_procs_class_minus1_o { 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, - nulltype - } value; - - std::string 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(bit_ref& bref); - void to_json(json_writer& j) const; - // getters - amf_cfg_upd_fail_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ho_prep_fail_s& ho_required() - { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ho_fail_s& ho_request() - { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - init_context_setup_fail_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ng_setup_fail_s& ng_setup_request() - { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - path_switch_request_fail_s& path_switch_request() - { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ran_cfg_upd_fail_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ue_context_mod_fail_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const amf_cfg_upd_fail_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ho_prep_fail_s& ho_required() const - { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ho_fail_s& ho_request() const - { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const init_context_setup_fail_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ng_setup_fail_s& ng_setup_request() const - { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const path_switch_request_fail_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ran_cfg_upd_fail_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ue_context_mod_fail_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - amf_cfg_upd_fail_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_prep_fail_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_fail_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_fail_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_setup_fail_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_fail_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - ran_cfg_upd_fail_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_fail_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } - - 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); -}; - -// NGAP-ELEMENTARY-PROCEDURES-CLASS-2 ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE -struct ngap_elem_procs_class_minus2_o { - // InitiatingMessage ::= CLASS OPEN TYPE - struct init_msg_c { - struct types_opts { - enum options { - 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, + 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, nulltype } value; @@ -20929,622 +14938,99 @@ struct ngap_elem_procs_class_minus2_o { 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_(); } + 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(bit_ref& bref); void to_json(json_writer& j) const; // getters - amf_status_ind_s& amf_status_ind() - { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - cell_traffic_trace_s& cell_traffic_trace() - { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - deactiv_trace_s& deactiv_trace() - { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_nas_transport_s& dl_nas_transport() - { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() - { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() - { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ran_status_transfer_s& dl_ran_status_transfer() - { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() - { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - error_ind_s& error_ind() - { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_notify_s& ho_notify() - { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - init_ue_msg_s& init_ue_msg() - { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_s& location_report() - { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_ctrl_s& location_report_ctrl() - { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_fail_ind_s& location_report_fail_ind() - { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - nas_non_delivery_ind_s& nas_non_delivery_ind() - { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - overload_start_s& overload_start() - { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - overload_stop_s& overload_stop() - { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - paging_s& paging() - { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_notify_s& pdu_session_res_notify() - { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - private_msg_s& private_msg() - { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_fail_ind_s& pws_fail_ind() - { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_restart_ind_s& pws_restart_ind() - { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - reroute_nas_request_s& reroute_nas_request() - { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - rrc_inactive_transition_report_s& rrc_inactive_transition_report() - { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() - { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - trace_fail_ind_s& trace_fail_ind() - { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - trace_start_s& trace_start() - { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_release_request_s& ue_context_release_request() - { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() - { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - uetnla_binding_release_request_s& uetnla_binding_release_request() - { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_nas_transport_s& ul_nas_transport() - { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() - { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() - { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ran_status_transfer_s& ul_ran_status_transfer() - { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() - { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const amf_status_ind_s& amf_status_ind() const - { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const cell_traffic_trace_s& cell_traffic_trace() const - { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const deactiv_trace_s& deactiv_trace() const - { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_nas_transport_s& dl_nas_transport() const - { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() const - { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() const - { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ran_status_transfer_s& dl_ran_status_transfer() const - { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() const - { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const error_ind_s& error_ind() const - { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_notify_s& ho_notify() const - { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const init_ue_msg_s& init_ue_msg() const - { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_s& location_report() const - { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_ctrl_s& location_report_ctrl() const - { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_fail_ind_s& location_report_fail_ind() const - { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const nas_non_delivery_ind_s& nas_non_delivery_ind() const - { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const overload_start_s& overload_start() const - { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const overload_stop_s& overload_stop() const - { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const paging_s& paging() const - { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_notify_s& pdu_session_res_notify() const - { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const private_msg_s& private_msg() const - { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_fail_ind_s& pws_fail_ind() const - { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_restart_ind_s& pws_restart_ind() const - { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const reroute_nas_request_s& reroute_nas_request() const - { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const rrc_inactive_transition_report_s& rrc_inactive_transition_report() const - { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() const - { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const trace_fail_ind_s& trace_fail_ind() const - { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const trace_start_s& trace_start() const - { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_release_request_s& ue_context_release_request() const - { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() const - { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const uetnla_binding_release_request_s& uetnla_binding_release_request() const - { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_nas_transport_s& ul_nas_transport() const - { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() const - { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() const - { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ran_status_transfer_s& ul_ran_status_transfer() const - { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() const - { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - amf_status_ind_s& set_amf_status_ind() - { - set(types::amf_status_ind); - return c.get(); - } - cell_traffic_trace_s& set_cell_traffic_trace() - { - set(types::cell_traffic_trace); - return c.get(); - } - deactiv_trace_s& set_deactiv_trace() - { - set(types::deactiv_trace); - return c.get(); - } - dl_nas_transport_s& set_dl_nas_transport() - { - set(types::dl_nas_transport); - return c.get(); - } - dl_non_ueassociated_nrp_pa_transport_s& set_dl_non_ueassociated_nrp_pa_transport() - { - set(types::dl_non_ueassociated_nrp_pa_transport); - return c.get(); - } - dl_ran_cfg_transfer_s& set_dl_ran_cfg_transfer() - { - set(types::dl_ran_cfg_transfer); - return c.get(); - } - dl_ran_status_transfer_s& set_dl_ran_status_transfer() - { - set(types::dl_ran_status_transfer); - return c.get(); - } - dl_ueassociated_nrp_pa_transport_s& set_dl_ueassociated_nrp_pa_transport() - { - set(types::dl_ueassociated_nrp_pa_transport); - return c.get(); - } - error_ind_s& set_error_ind() - { - set(types::error_ind); - return c.get(); - } - ho_notify_s& set_ho_notify() - { - set(types::ho_notify); - return c.get(); - } - init_ue_msg_s& set_init_ue_msg() - { - set(types::init_ue_msg); - return c.get(); - } - location_report_s& set_location_report() - { - set(types::location_report); - return c.get(); - } - location_report_ctrl_s& set_location_report_ctrl() - { - set(types::location_report_ctrl); - return c.get(); - } - location_report_fail_ind_s& set_location_report_fail_ind() - { - set(types::location_report_fail_ind); - return c.get(); - } - nas_non_delivery_ind_s& set_nas_non_delivery_ind() - { - set(types::nas_non_delivery_ind); - return c.get(); - } - overload_start_s& set_overload_start() - { - set(types::overload_start); - return c.get(); - } - overload_stop_s& set_overload_stop() - { - set(types::overload_stop); - return c.get(); - } - paging_s& set_paging() - { - set(types::paging); - return c.get(); - } - pdu_session_res_notify_s& set_pdu_session_res_notify() - { - set(types::pdu_session_res_notify); - return c.get(); - } - private_msg_s& set_private_msg() - { - set(types::private_msg); - return c.get(); - } - pws_fail_ind_s& set_pws_fail_ind() - { - set(types::pws_fail_ind); - return c.get(); - } - pws_restart_ind_s& set_pws_restart_ind() - { - set(types::pws_restart_ind); - return c.get(); - } - reroute_nas_request_s& set_reroute_nas_request() - { - set(types::reroute_nas_request); - return c.get(); - } - rrc_inactive_transition_report_s& set_rrc_inactive_transition_report() - { - set(types::rrc_inactive_transition_report); - return c.get(); - } - secondary_rat_data_usage_report_s& set_secondary_rat_data_usage_report() - { - set(types::secondary_rat_data_usage_report); - return c.get(); - } - trace_fail_ind_s& set_trace_fail_ind() - { - set(types::trace_fail_ind); - return c.get(); - } - trace_start_s& set_trace_start() - { - set(types::trace_start); - return c.get(); - } - ue_context_release_request_s& set_ue_context_release_request() - { - set(types::ue_context_release_request); - return c.get(); - } - ue_radio_cap_info_ind_s& set_ue_radio_cap_info_ind() - { - set(types::ue_radio_cap_info_ind); - return c.get(); - } - uetnla_binding_release_request_s& set_uetnla_binding_release_request() - { - set(types::uetnla_binding_release_request); - return c.get(); - } - ul_nas_transport_s& set_ul_nas_transport() - { - set(types::ul_nas_transport); - return c.get(); - } - ul_non_ueassociated_nrp_pa_transport_s& set_ul_non_ueassociated_nrp_pa_transport() - { - set(types::ul_non_ueassociated_nrp_pa_transport); - return c.get(); - } - ul_ran_cfg_transfer_s& set_ul_ran_cfg_transfer() - { - set(types::ul_ran_cfg_transfer); - return c.get(); - } - ul_ran_status_transfer_s& set_ul_ran_status_transfer() - { - set(types::ul_ran_status_transfer); - return c.get(); - } - ul_ueassociated_nrp_pa_transport_s& set_ul_ueassociated_nrp_pa_transport() - { - set(types::ul_ueassociated_nrp_pa_transport); - return c.get(); - } + amf_cfg_upd_ack_s& amf_cfg_upd(); + ho_cancel_ack_s& ho_cancel(); + ho_cmd_s& ho_required(); + ho_request_ack_s& ho_request(); + init_context_setup_resp_s& init_context_setup_request(); + ng_reset_ack_s& ng_reset(); + ng_setup_resp_s& ng_setup_request(); + path_switch_request_ack_s& path_switch_request(); + pdu_session_res_modify_resp_s& pdu_session_res_modify_request(); + pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind(); + pdu_session_res_release_resp_s& pdu_session_res_release_cmd(); + pdu_session_res_setup_resp_s& pdu_session_res_setup_request(); + pws_cancel_resp_s& pws_cancel_request(); + ran_cfg_upd_ack_s& ran_cfg_upd(); + ue_context_mod_resp_s& ue_context_mod_request(); + ue_context_release_complete_s& ue_context_release_cmd(); + ue_radio_cap_check_resp_s& ue_radio_cap_check_request(); + write_replace_warning_resp_s& write_replace_warning_request(); + const amf_cfg_upd_ack_s& amf_cfg_upd() const; + const ho_cancel_ack_s& ho_cancel() const; + const ho_cmd_s& ho_required() const; + const ho_request_ack_s& ho_request() const; + const init_context_setup_resp_s& init_context_setup_request() const; + const ng_reset_ack_s& ng_reset() const; + const ng_setup_resp_s& ng_setup_request() const; + const path_switch_request_ack_s& path_switch_request() const; + const pdu_session_res_modify_resp_s& pdu_session_res_modify_request() const; + const pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() const; + const pdu_session_res_release_resp_s& pdu_session_res_release_cmd() const; + const pdu_session_res_setup_resp_s& pdu_session_res_setup_request() const; + const pws_cancel_resp_s& pws_cancel_request() const; + const ran_cfg_upd_ack_s& ran_cfg_upd() const; + const ue_context_mod_resp_s& ue_context_mod_request() const; + const ue_context_release_complete_s& ue_context_release_cmd() const; + const ue_radio_cap_check_resp_s& ue_radio_cap_check_request() const; + const write_replace_warning_resp_s& write_replace_warning_request() const; private: types type_; - choice_buffer_t + choice_buffer_t c; void destroy_(); }; - // SuccessfulOutcome ::= CLASS OPEN TYPE - struct successful_outcome_c { + // UnsuccessfulOutcome ::= OPEN TYPE + struct unsuccessful_outcome_c { struct types_opts { enum options { - 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, + 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, nulltype } value; @@ -21553,18 +15039,61 @@ struct ngap_elem_procs_class_minus2_o { typedef enumerated types; // choice methods - successful_outcome_c() = default; + 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(bit_ref& bref); void to_json(json_writer& j) const; + // getters + amf_cfg_upd_fail_s& amf_cfg_upd(); + ho_prep_fail_s& ho_required(); + ho_fail_s& ho_request(); + init_context_setup_fail_s& init_context_setup_request(); + ng_setup_fail_s& ng_setup_request(); + path_switch_request_fail_s& path_switch_request(); + ran_cfg_upd_fail_s& ran_cfg_upd(); + ue_context_mod_fail_s& ue_context_mod_request(); + const amf_cfg_upd_fail_s& amf_cfg_upd() const; + const ho_prep_fail_s& ho_required() const; + const ho_fail_s& ho_request() const; + const init_context_setup_fail_s& init_context_setup_request() const; + const ng_setup_fail_s& ng_setup_request() const; + const path_switch_request_fail_s& path_switch_request() const; + const ran_cfg_upd_fail_s& ran_cfg_upd() const; + const ue_context_mod_fail_s& ue_context_mod_request() 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); +}; - private: - types type_; - }; - // UnsuccessfulOutcome ::= CLASS OPEN TYPE - struct unsuccessful_outcome_c { +// NGAP-ELEMENTARY-PROCEDURES-CLASS-2 ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE +struct ngap_elem_procs_class_minus2_o { + // InitiatingMessage ::= OPEN TYPE + struct init_msg_c { struct types_opts { enum options { amf_status_ind, @@ -21610,50 +15139,132 @@ struct ngap_elem_procs_class_minus2_o { typedef enumerated types; // choice methods - unsuccessful_outcome_c() = default; + 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(bit_ref& bref); void to_json(json_writer& j) const; + // getters + 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_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; private: types type_; - }; - - // 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); -}; + choice_buffer_t + c; -// NGAP-ELEMENTARY-PROCEDURES ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE -struct ngap_elem_procs_o { - // InitiatingMessage ::= CLASS OPEN TYPE - struct init_msg_c { + void destroy_(); + }; + // SuccessfulOutcome ::= OPEN TYPE + struct successful_outcome_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, @@ -21696,812 +15307,267 @@ struct ngap_elem_procs_o { }; 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_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(bit_ref& bref); - void to_json(json_writer& j) const; - // getters - amf_cfg_upd_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_cancel_s& ho_cancel() - { - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_required_s& ho_required() - { - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_request_s& ho_request() - { - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - init_context_setup_request_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ng_reset_s& ng_reset() - { - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ng_setup_request_s& ng_setup_request() - { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - path_switch_request_s& path_switch_request() - { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_modify_request_s& pdu_session_res_modify_request() - { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() - { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() - { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_setup_request_s& pdu_session_res_setup_request() - { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_cancel_request_s& pws_cancel_request() - { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ran_cfg_upd_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_mod_request_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_release_cmd_s& ue_context_release_cmd() - { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_radio_cap_check_request_s& ue_radio_cap_check_request() - { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - write_replace_warning_request_s& write_replace_warning_request() - { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - amf_status_ind_s& amf_status_ind() - { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - cell_traffic_trace_s& cell_traffic_trace() - { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - deactiv_trace_s& deactiv_trace() - { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_nas_transport_s& dl_nas_transport() - { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() - { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() - { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ran_status_transfer_s& dl_ran_status_transfer() - { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() - { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - error_ind_s& error_ind() - { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ho_notify_s& ho_notify() - { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - init_ue_msg_s& init_ue_msg() - { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_s& location_report() - { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_ctrl_s& location_report_ctrl() - { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - location_report_fail_ind_s& location_report_fail_ind() - { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - nas_non_delivery_ind_s& nas_non_delivery_ind() - { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - overload_start_s& overload_start() - { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - overload_stop_s& overload_stop() - { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - paging_s& paging() - { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pdu_session_res_notify_s& pdu_session_res_notify() - { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - private_msg_s& private_msg() - { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_fail_ind_s& pws_fail_ind() - { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - pws_restart_ind_s& pws_restart_ind() - { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - reroute_nas_request_s& reroute_nas_request() - { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - rrc_inactive_transition_report_s& rrc_inactive_transition_report() - { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() - { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - trace_fail_ind_s& trace_fail_ind() - { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - trace_start_s& trace_start() - { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_context_release_request_s& ue_context_release_request() - { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() - { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - uetnla_binding_release_request_s& uetnla_binding_release_request() - { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_nas_transport_s& ul_nas_transport() - { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() - { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() - { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ran_status_transfer_s& ul_ran_status_transfer() - { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() - { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const amf_cfg_upd_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_cancel_s& ho_cancel() const - { - assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_required_s& ho_required() const - { - assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_request_s& ho_request() const - { - assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const init_context_setup_request_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ng_reset_s& ng_reset() const - { - assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ng_setup_request_s& ng_setup_request() const - { - assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const path_switch_request_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_modify_request_s& pdu_session_res_modify_request() const - { - assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_modify_ind_s& pdu_session_res_modify_ind() const - { - assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_release_cmd_s& pdu_session_res_release_cmd() const - { - assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_setup_request_s& pdu_session_res_setup_request() const - { - assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_cancel_request_s& pws_cancel_request() const - { - assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ran_cfg_upd_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_mod_request_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_release_cmd_s& ue_context_release_cmd() const - { - assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_radio_cap_check_request_s& ue_radio_cap_check_request() const - { - assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const write_replace_warning_request_s& write_replace_warning_request() const - { - assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const amf_status_ind_s& amf_status_ind() const - { - assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const cell_traffic_trace_s& cell_traffic_trace() const - { - assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const deactiv_trace_s& deactiv_trace() const - { - assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_nas_transport_s& dl_nas_transport() const - { - assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_non_ueassociated_nrp_pa_transport_s& dl_non_ueassociated_nrp_pa_transport() const - { - assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ran_cfg_transfer_s& dl_ran_cfg_transfer() const - { - assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ran_status_transfer_s& dl_ran_status_transfer() const - { - assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const dl_ueassociated_nrp_pa_transport_s& dl_ueassociated_nrp_pa_transport() const - { - assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const error_ind_s& error_ind() const - { - assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ho_notify_s& ho_notify() const - { - assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const init_ue_msg_s& init_ue_msg() const - { - assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_s& location_report() const - { - assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_ctrl_s& location_report_ctrl() const - { - assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const location_report_fail_ind_s& location_report_fail_ind() const - { - assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const nas_non_delivery_ind_s& nas_non_delivery_ind() const - { - assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const overload_start_s& overload_start() const - { - assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const overload_stop_s& overload_stop() const - { - assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const paging_s& paging() const - { - assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pdu_session_res_notify_s& pdu_session_res_notify() const - { - assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const private_msg_s& private_msg() const - { - assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_fail_ind_s& pws_fail_ind() const - { - assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const pws_restart_ind_s& pws_restart_ind() const - { - assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const reroute_nas_request_s& reroute_nas_request() const - { - assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const rrc_inactive_transition_report_s& rrc_inactive_transition_report() const - { - assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const secondary_rat_data_usage_report_s& secondary_rat_data_usage_report() const - { - assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const trace_fail_ind_s& trace_fail_ind() const - { - assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const trace_start_s& trace_start() const - { - assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_context_release_request_s& ue_context_release_request() const - { - assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ue_radio_cap_info_ind_s& ue_radio_cap_info_ind() const - { - assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const uetnla_binding_release_request_s& uetnla_binding_release_request() const - { - assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_nas_transport_s& ul_nas_transport() const - { - assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_non_ueassociated_nrp_pa_transport_s& ul_non_ueassociated_nrp_pa_transport() const - { - assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ran_cfg_transfer_s& ul_ran_cfg_transfer() const - { - assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ran_status_transfer_s& ul_ran_status_transfer() const - { - assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - const ul_ueassociated_nrp_pa_transport_s& ul_ueassociated_nrp_pa_transport() const - { - assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); - return c.get(); - } - amf_cfg_upd_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_cancel_s& set_ho_cancel() - { - set(types::ho_cancel); - return c.get(); - } - ho_required_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_request_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_request_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_reset_s& set_ng_reset() - { - set(types::ng_reset); - return c.get(); - } - ng_setup_request_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - pdu_session_res_modify_request_s& set_pdu_session_res_modify_request() - { - set(types::pdu_session_res_modify_request); - return c.get(); - } - pdu_session_res_modify_ind_s& set_pdu_session_res_modify_ind() - { - set(types::pdu_session_res_modify_ind); - return c.get(); - } - pdu_session_res_release_cmd_s& set_pdu_session_res_release_cmd() - { - set(types::pdu_session_res_release_cmd); - return c.get(); - } - pdu_session_res_setup_request_s& set_pdu_session_res_setup_request() - { - set(types::pdu_session_res_setup_request); - return c.get(); - } - pws_cancel_request_s& set_pws_cancel_request() - { - set(types::pws_cancel_request); - return c.get(); - } - ran_cfg_upd_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_request_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } - ue_context_release_cmd_s& set_ue_context_release_cmd() - { - set(types::ue_context_release_cmd); - return c.get(); - } - ue_radio_cap_check_request_s& set_ue_radio_cap_check_request() - { - set(types::ue_radio_cap_check_request); - return c.get(); - } - write_replace_warning_request_s& set_write_replace_warning_request() - { - set(types::write_replace_warning_request); - return c.get(); - } - amf_status_ind_s& set_amf_status_ind() - { - set(types::amf_status_ind); - return c.get(); - } - cell_traffic_trace_s& set_cell_traffic_trace() - { - set(types::cell_traffic_trace); - return c.get(); - } - deactiv_trace_s& set_deactiv_trace() - { - set(types::deactiv_trace); - return c.get(); - } - dl_nas_transport_s& set_dl_nas_transport() - { - set(types::dl_nas_transport); - return c.get(); - } - dl_non_ueassociated_nrp_pa_transport_s& set_dl_non_ueassociated_nrp_pa_transport() - { - set(types::dl_non_ueassociated_nrp_pa_transport); - return c.get(); - } - dl_ran_cfg_transfer_s& set_dl_ran_cfg_transfer() - { - set(types::dl_ran_cfg_transfer); - return c.get(); - } - dl_ran_status_transfer_s& set_dl_ran_status_transfer() - { - set(types::dl_ran_status_transfer); - return c.get(); - } - dl_ueassociated_nrp_pa_transport_s& set_dl_ueassociated_nrp_pa_transport() - { - set(types::dl_ueassociated_nrp_pa_transport); - return c.get(); - } - error_ind_s& set_error_ind() - { - set(types::error_ind); - return c.get(); - } - ho_notify_s& set_ho_notify() - { - set(types::ho_notify); - return c.get(); - } - init_ue_msg_s& set_init_ue_msg() - { - set(types::init_ue_msg); - return c.get(); - } - location_report_s& set_location_report() - { - set(types::location_report); - return c.get(); - } - location_report_ctrl_s& set_location_report_ctrl() - { - set(types::location_report_ctrl); - return c.get(); - } - location_report_fail_ind_s& set_location_report_fail_ind() - { - set(types::location_report_fail_ind); - return c.get(); - } - nas_non_delivery_ind_s& set_nas_non_delivery_ind() - { - set(types::nas_non_delivery_ind); - return c.get(); - } - overload_start_s& set_overload_start() - { - set(types::overload_start); - return c.get(); - } - overload_stop_s& set_overload_stop() - { - set(types::overload_stop); - return c.get(); - } - paging_s& set_paging() - { - set(types::paging); - return c.get(); - } - pdu_session_res_notify_s& set_pdu_session_res_notify() - { - set(types::pdu_session_res_notify); - return c.get(); - } - private_msg_s& set_private_msg() - { - set(types::private_msg); - return c.get(); - } - pws_fail_ind_s& set_pws_fail_ind() - { - set(types::pws_fail_ind); - return c.get(); - } - pws_restart_ind_s& set_pws_restart_ind() - { - set(types::pws_restart_ind); - return c.get(); - } - reroute_nas_request_s& set_reroute_nas_request() - { - set(types::reroute_nas_request); - return c.get(); - } - rrc_inactive_transition_report_s& set_rrc_inactive_transition_report() - { - set(types::rrc_inactive_transition_report); - return c.get(); - } - secondary_rat_data_usage_report_s& set_secondary_rat_data_usage_report() - { - set(types::secondary_rat_data_usage_report); - return c.get(); - } - trace_fail_ind_s& set_trace_fail_ind() - { - set(types::trace_fail_ind); - return c.get(); - } - trace_start_s& set_trace_start() - { - set(types::trace_start); - return c.get(); - } - ue_context_release_request_s& set_ue_context_release_request() - { - set(types::ue_context_release_request); - return c.get(); - } - ue_radio_cap_info_ind_s& set_ue_radio_cap_info_ind() - { - set(types::ue_radio_cap_info_ind); - return c.get(); - } - uetnla_binding_release_request_s& set_uetnla_binding_release_request() - { - set(types::uetnla_binding_release_request); - return c.get(); - } - ul_nas_transport_s& set_ul_nas_transport() - { - set(types::ul_nas_transport); - return c.get(); - } - ul_non_ueassociated_nrp_pa_transport_s& set_ul_non_ueassociated_nrp_pa_transport() - { - set(types::ul_non_ueassociated_nrp_pa_transport); - return c.get(); - } - ul_ran_cfg_transfer_s& set_ul_ran_cfg_transfer() - { - set(types::ul_ran_cfg_transfer); - return c.get(); - } - ul_ran_status_transfer_s& set_ul_ran_status_transfer() - { - set(types::ul_ran_status_transfer); - return c.get(); - } - ul_ueassociated_nrp_pa_transport_s& set_ul_ueassociated_nrp_pa_transport() - { - set(types::ul_ueassociated_nrp_pa_transport); - return c.get(); - } + // choice methods + successful_outcome_c() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; + + private: + types type_; + }; + // UnsuccessfulOutcome ::= OPEN TYPE + struct unsuccessful_outcome_c { + struct types_opts { + enum options { + 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; + + std::string to_string() const; + }; + typedef enumerated types; + + // choice methods + unsuccessful_outcome_c() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_ref& bref); + void to_json(json_writer& j) const; + + private: + types type_; + }; + + // 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); +}; + +// 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; + + std::string 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_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(bit_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; private: types type_; @@ -22562,7 +15628,7 @@ struct ngap_elem_procs_o { void destroy_(); }; - // SuccessfulOutcome ::= CLASS OPEN TYPE + // SuccessfulOutcome ::= OPEN TYPE struct successful_outcome_c { struct types_opts { enum options { @@ -22637,276 +15703,42 @@ struct ngap_elem_procs_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_ack_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_cancel_ack_s& ho_cancel() - { - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_cmd_s& ho_required() - { - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ho_request_ack_s& ho_request() - { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - init_context_setup_resp_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ng_reset_ack_s& ng_reset() - { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ng_setup_resp_s& ng_setup_request() - { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - path_switch_request_ack_s& path_switch_request() - { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_modify_resp_s& pdu_session_res_modify_request() - { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() - { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_release_resp_s& pdu_session_res_release_cmd() - { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pdu_session_res_setup_resp_s& pdu_session_res_setup_request() - { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - pws_cancel_resp_s& pws_cancel_request() - { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ran_cfg_upd_ack_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_context_mod_resp_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_context_release_complete_s& ue_context_release_cmd() - { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - ue_radio_cap_check_resp_s& ue_radio_cap_check_request() - { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - write_replace_warning_resp_s& write_replace_warning_request() - { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const amf_cfg_upd_ack_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_cancel_ack_s& ho_cancel() const - { - assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_cmd_s& ho_required() const - { - assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ho_request_ack_s& ho_request() const - { - assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const init_context_setup_resp_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ng_reset_ack_s& ng_reset() const - { - assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ng_setup_resp_s& ng_setup_request() const - { - assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const path_switch_request_ack_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_modify_resp_s& pdu_session_res_modify_request() const - { - assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() const - { - assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_release_resp_s& pdu_session_res_release_cmd() const - { - assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pdu_session_res_setup_resp_s& pdu_session_res_setup_request() const - { - assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const pws_cancel_resp_s& pws_cancel_request() const - { - assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ran_cfg_upd_ack_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_context_mod_resp_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_context_release_complete_s& ue_context_release_cmd() const - { - assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const ue_radio_cap_check_resp_s& ue_radio_cap_check_request() const - { - assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - const write_replace_warning_resp_s& write_replace_warning_request() const - { - assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); - return c.get(); - } - amf_cfg_upd_ack_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_cancel_ack_s& set_ho_cancel() - { - set(types::ho_cancel); - return c.get(); - } - ho_cmd_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_request_ack_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_resp_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_reset_ack_s& set_ng_reset() - { - set(types::ng_reset); - return c.get(); - } - ng_setup_resp_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_ack_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - pdu_session_res_modify_resp_s& set_pdu_session_res_modify_request() - { - set(types::pdu_session_res_modify_request); - return c.get(); - } - pdu_session_res_modify_confirm_s& set_pdu_session_res_modify_ind() - { - set(types::pdu_session_res_modify_ind); - return c.get(); - } - pdu_session_res_release_resp_s& set_pdu_session_res_release_cmd() - { - set(types::pdu_session_res_release_cmd); - return c.get(); - } - pdu_session_res_setup_resp_s& set_pdu_session_res_setup_request() - { - set(types::pdu_session_res_setup_request); - return c.get(); - } - pws_cancel_resp_s& set_pws_cancel_request() - { - set(types::pws_cancel_request); - return c.get(); - } - ran_cfg_upd_ack_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_resp_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } - ue_context_release_complete_s& set_ue_context_release_cmd() - { - set(types::ue_context_release_cmd); - return c.get(); - } - ue_radio_cap_check_resp_s& set_ue_radio_cap_check_request() - { - set(types::ue_radio_cap_check_request); - return c.get(); - } - write_replace_warning_resp_s& set_write_replace_warning_request() - { - set(types::write_replace_warning_request); - return c.get(); - } + amf_cfg_upd_ack_s& amf_cfg_upd(); + ho_cancel_ack_s& ho_cancel(); + ho_cmd_s& ho_required(); + ho_request_ack_s& ho_request(); + init_context_setup_resp_s& init_context_setup_request(); + ng_reset_ack_s& ng_reset(); + ng_setup_resp_s& ng_setup_request(); + path_switch_request_ack_s& path_switch_request(); + pdu_session_res_modify_resp_s& pdu_session_res_modify_request(); + pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind(); + pdu_session_res_release_resp_s& pdu_session_res_release_cmd(); + pdu_session_res_setup_resp_s& pdu_session_res_setup_request(); + pws_cancel_resp_s& pws_cancel_request(); + ran_cfg_upd_ack_s& ran_cfg_upd(); + ue_context_mod_resp_s& ue_context_mod_request(); + ue_context_release_complete_s& ue_context_release_cmd(); + ue_radio_cap_check_resp_s& ue_radio_cap_check_request(); + write_replace_warning_resp_s& write_replace_warning_request(); + const amf_cfg_upd_ack_s& amf_cfg_upd() const; + const ho_cancel_ack_s& ho_cancel() const; + const ho_cmd_s& ho_required() const; + const ho_request_ack_s& ho_request() const; + const init_context_setup_resp_s& init_context_setup_request() const; + const ng_reset_ack_s& ng_reset() const; + const ng_setup_resp_s& ng_setup_request() const; + const path_switch_request_ack_s& path_switch_request() const; + const pdu_session_res_modify_resp_s& pdu_session_res_modify_request() const; + const pdu_session_res_modify_confirm_s& pdu_session_res_modify_ind() const; + const pdu_session_res_release_resp_s& pdu_session_res_release_cmd() const; + const pdu_session_res_setup_resp_s& pdu_session_res_setup_request() const; + const pws_cancel_resp_s& pws_cancel_request() const; + const ran_cfg_upd_ack_s& ran_cfg_upd() const; + const ue_context_mod_resp_s& ue_context_mod_request() const; + const ue_context_release_complete_s& ue_context_release_cmd() const; + const ue_radio_cap_check_resp_s& ue_radio_cap_check_request() const; + const write_replace_warning_resp_s& write_replace_warning_request() const; private: types type_; @@ -22932,7 +15764,7 @@ struct ngap_elem_procs_o { void destroy_(); }; - // UnsuccessfulOutcome ::= CLASS OPEN TYPE + // UnsuccessfulOutcome ::= OPEN TYPE struct unsuccessful_outcome_c { struct types_opts { enum options { @@ -23007,126 +15839,22 @@ struct ngap_elem_procs_o { SRSASN_CODE unpack(bit_ref& bref); void to_json(json_writer& j) const; // getters - amf_cfg_upd_fail_s& amf_cfg_upd() - { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ho_prep_fail_s& ho_required() - { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ho_fail_s& ho_request() - { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - init_context_setup_fail_s& init_context_setup_request() - { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ng_setup_fail_s& ng_setup_request() - { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - path_switch_request_fail_s& path_switch_request() - { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ran_cfg_upd_fail_s& ran_cfg_upd() - { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - ue_context_mod_fail_s& ue_context_mod_request() - { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const amf_cfg_upd_fail_s& amf_cfg_upd() const - { - assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ho_prep_fail_s& ho_required() const - { - assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ho_fail_s& ho_request() const - { - assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const init_context_setup_fail_s& init_context_setup_request() const - { - assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ng_setup_fail_s& ng_setup_request() const - { - assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const path_switch_request_fail_s& path_switch_request() const - { - assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ran_cfg_upd_fail_s& ran_cfg_upd() const - { - assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - const ue_context_mod_fail_s& ue_context_mod_request() const - { - assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); - return c.get(); - } - amf_cfg_upd_fail_s& set_amf_cfg_upd() - { - set(types::amf_cfg_upd); - return c.get(); - } - ho_prep_fail_s& set_ho_required() - { - set(types::ho_required); - return c.get(); - } - ho_fail_s& set_ho_request() - { - set(types::ho_request); - return c.get(); - } - init_context_setup_fail_s& set_init_context_setup_request() - { - set(types::init_context_setup_request); - return c.get(); - } - ng_setup_fail_s& set_ng_setup_request() - { - set(types::ng_setup_request); - return c.get(); - } - path_switch_request_fail_s& set_path_switch_request() - { - set(types::path_switch_request); - return c.get(); - } - ran_cfg_upd_fail_s& set_ran_cfg_upd() - { - set(types::ran_cfg_upd); - return c.get(); - } - ue_context_mod_fail_s& set_ue_context_mod_request() - { - set(types::ue_context_mod_request); - return c.get(); - } + amf_cfg_upd_fail_s& amf_cfg_upd(); + ho_prep_fail_s& ho_required(); + ho_fail_s& ho_request(); + init_context_setup_fail_s& init_context_setup_request(); + ng_setup_fail_s& ng_setup_request(); + path_switch_request_fail_s& path_switch_request(); + ran_cfg_upd_fail_s& ran_cfg_upd(); + ue_context_mod_fail_s& ue_context_mod_request(); + const amf_cfg_upd_fail_s& amf_cfg_upd() const; + const ho_prep_fail_s& ho_required() const; + const ho_fail_s& ho_request() const; + const init_context_setup_fail_s& init_context_setup_request() const; + const ng_setup_fail_s& ng_setup_request() const; + const path_switch_request_fail_s& path_switch_request() const; + const ran_cfg_upd_fail_s& ran_cfg_upd() const; + const ue_context_mod_fail_s& ue_context_mod_request() const; private: types type_; @@ -23170,21 +15898,20 @@ 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 { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -23302,15 +16029,14 @@ private: // LastVisitedCellItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o last_visited_cell_item_ext_ies_o; +typedef protocol_ext_container_empty_l last_visited_cell_item_ext_ies_container; + // LastVisitedCellItem ::= SEQUENCE struct last_visited_cell_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - last_visited_cell_info_c last_visited_cell_info; - ie_exts_l_ ie_exts; + 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 @@ -23419,17 +16145,16 @@ private: // QosFlowInformationItem-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o qos_flow_info_item_ext_ies_o; +typedef protocol_ext_container_empty_l qos_flow_info_item_ext_ies_container; + // QosFlowInformationItem ::= SEQUENCE struct qos_flow_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool dlforwarding_present = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - dl_forwarding_e dlforwarding; - ie_exts_l_ ie_exts; + 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 @@ -23444,18 +16169,17 @@ typedef ngap_protocol_ext_empty_o pdu_session_res_info_item_ext_ies_o; // QosFlowInformationList ::= SEQUENCE (SIZE (1..64)) OF QosFlowInformationItem using qos_flow_info_list_l = dyn_array; +typedef protocol_ext_container_empty_l pdu_session_res_info_item_ext_ies_container; + // PDUSessionResourceInformationItem ::= SEQUENCE struct pdu_session_res_info_item_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - 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; - ie_exts_l_ ie_exts; + 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 @@ -23468,18 +16192,18 @@ struct pdu_session_res_info_item_s { using pdu_session_res_info_list_l = dyn_array; // ProtocolIE-ContainerList{INTEGER : lowerBound, INTEGER : upperBound, NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE -// (SIZE (lowerBound..upperBound)) OF ProtocolIE-Field{NGAP-PROTOCOL-IES : IEsSetParam} -template -using protocol_ie_container_list_l = dyn_array >; +// (SIZE (lowerBound..upperBound)) OF ProtocolIE-SingleContainer +template +using protocol_ie_container_list_l = dyn_array >; // ProtocolIE-FieldPair{NGAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES-PAIR}} -template +template struct protocol_ie_field_pair_s { - uint32_t id = 0; - crit_e first_crit; - typename ies_set_param::first_value_c first_value; - crit_e second_crit; - typename ies_set_param::first_value_c second_value; + uint32_t id = 0; + crit_e first_crit; + typename ies_set_paramT_::first_value_c first_value; + crit_e second_crit; + typename ies_set_paramT_::second_value_c second_value; SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(bit_ref& bref); @@ -23488,26 +16212,25 @@ struct protocol_ie_field_pair_s { }; // ProtocolIE-ContainerPair{NGAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE (SIZE (0..65535)) OF ProtocolIE-FieldPair -template -using protocol_ie_container_pair_l = dyn_array >; +template +using protocol_ie_container_pair_l = dyn_array >; // ProtocolIE-ContainerPairList{INTEGER : lowerBound, INTEGER : upperBound, NGAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= // SEQUENCE (SIZE (lowerBound..upperBound)) OF ProtocolIE-ContainerPair -template -using protocol_ie_container_pair_list_l = dyn_array >; +template +using protocol_ie_container_pair_list_l = dyn_array >; // QosFlowSetupResponseItemSURes-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION typedef ngap_protocol_ext_empty_o qos_flow_setup_resp_item_su_res_ext_ies_o; +typedef protocol_ext_container_empty_l qos_flow_setup_resp_item_su_res_ext_ies_container; + // QosFlowSetupResponseItemSURes ::= SEQUENCE struct qos_flow_setup_resp_item_su_res_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - uint8_t qos_flow_id = 0; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + uint8_t qos_flow_id = 0; + qos_flow_setup_resp_item_su_res_ext_ies_container ie_exts; // ... // sequence methods @@ -23525,11 +16248,10 @@ typedef ngap_protocol_ext_empty_o source_ngran_node_to_target_ngran_node_transpa // 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; + // SourceNGRANNode-ToTargetNGRANNode-TransparentContainer ::= SEQUENCE struct source_ngran_node_to_target_ngran_node_transparent_container_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables bool ext = false; bool pdu_session_res_info_list_present = false; bool e_rab_info_list_present = false; @@ -23541,7 +16263,7 @@ struct source_ngran_node_to_target_ngran_node_transparent_container_s { ngran_cgi_c target_cell_id; uint16_t idx_to_rfsp = 1; ue_history_info_l uehistory_info; - ie_exts_l_ ie_exts; + source_ngran_node_to_target_ngran_node_transparent_container_ext_ies_container ie_exts; // ... // sequence methods @@ -23553,15 +16275,14 @@ 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; +typedef protocol_ext_container_empty_l target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_container; + // TargetNGRANNode-ToSourceNGRANNode-TransparentContainer ::= SEQUENCE struct target_ngran_node_to_source_ngran_node_transparent_container_s { - typedef protocol_ext_container_empty_l ie_exts_l_; - - // member variables - bool ext = false; - bool ie_exts_present = false; - unbounded_octstring rrc_container; - ie_exts_l_ ie_exts; + bool ext = false; + bool ie_exts_present = false; + unbounded_octstring rrc_container; + target_ngran_node_to_source_ngran_node_transparent_container_ext_ies_container ie_exts; // ... // sequence methods diff --git a/lib/include/srslte/asn1/rrc_nr_asn1.h b/lib/include/srslte/asn1/rrc_nr_asn1.h index f90be4fcd..3f3391ff1 100644 --- a/lib/include/srslte/asn1/rrc_nr_asn1.h +++ b/lib/include/srslte/asn1/rrc_nr_asn1.h @@ -5026,7 +5026,7 @@ struct cg_uci_on_pusch_c { // getters dynamic_l_& dynamic_type() { - assert_choice_type("dynamic_type", type_.to_string(), "CG-UCI-OnPUSCH"); + assert_choice_type("dynamic", type_.to_string(), "CG-UCI-OnPUSCH"); return c.get(); } beta_offsets_s& semi_static() @@ -5036,7 +5036,7 @@ struct cg_uci_on_pusch_c { } const dynamic_l_& dynamic_type() const { - assert_choice_type("dynamic_type", type_.to_string(), "CG-UCI-OnPUSCH"); + assert_choice_type("dynamic", type_.to_string(), "CG-UCI-OnPUSCH"); return c.get(); } const beta_offsets_s& semi_static() const @@ -6750,7 +6750,7 @@ struct uci_on_pusch_s { // getters dynamic_l_& dynamic_type() { - assert_choice_type("dynamic_type", type_.to_string(), "betaOffsets"); + assert_choice_type("dynamic", type_.to_string(), "betaOffsets"); return c.get(); } beta_offsets_s& semi_static() @@ -6760,7 +6760,7 @@ struct uci_on_pusch_s { } const dynamic_l_& dynamic_type() const { - assert_choice_type("dynamic_type", type_.to_string(), "betaOffsets"); + assert_choice_type("dynamic", type_.to_string(), "betaOffsets"); return c.get(); } const beta_offsets_s& semi_static() const @@ -11460,12 +11460,12 @@ struct tdd_ul_dl_slot_cfg_s { // getters explicit_s_& explicit_type() { - assert_choice_type("explicit_type", type_.to_string(), "symbols"); + assert_choice_type("explicit", type_.to_string(), "symbols"); return c; } const explicit_s_& explicit_type() const { - assert_choice_type("explicit_type", type_.to_string(), "symbols"); + assert_choice_type("explicit", type_.to_string(), "symbols"); return c; } explicit_s_& set_explicit_type() diff --git a/lib/src/asn1/ngap_nr_asn1.cc b/lib/src/asn1/ngap_nr_asn1.cc index 258fb703e..e195c43c6 100644 --- a/lib/src/asn1/ngap_nr_asn1.cc +++ b/lib/src/asn1/ngap_nr_asn1.cc @@ -69,7 +69,8 @@ void asn1::ngap_nr::assert_choice_type(const std::string& access_type, } } -const char* convert_enum_idx(const char* array[], uint32_t nof_types, uint32_t enum_val, const char* enum_type) +const char* +asn1::ngap_nr::convert_enum_idx(const char* array[], uint32_t nof_types, uint32_t enum_val, const char* enum_type) { if (enum_val >= nof_types) { if (enum_val == nof_types) { @@ -117,44 +118,43 @@ std::string presence_opts::to_string() const } // ProtocolIE-Field{NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES}} -template -SRSASN_CODE protocol_ie_field_s::pack(bit_ref& bref) const +template +SRSASN_CODE protocol_ie_field_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_integer(bref, id, (uint32_t)0u, (uint32_t)65535u, false, true)); - ngap_nr_asn1_warn_assert(crit != ies_set_param::get_crit(id), __func__, __LINE__); + ngap_nr_asn1_warn_assert(crit != ies_set_paramT_::get_crit(id), __func__, __LINE__); HANDLE_CODE(crit.pack(bref)); HANDLE_CODE(value.pack(bref)); return SRSASN_SUCCESS; } -template -SRSASN_CODE protocol_ie_field_s::unpack(bit_ref& bref) +template +SRSASN_CODE protocol_ie_field_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_integer(id, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); HANDLE_CODE(crit.unpack(bref)); - value = ies_set_param::get_value(id); + value = ies_set_paramT_::get_value(id); HANDLE_CODE(value.unpack(bref)); return SRSASN_SUCCESS; } -template -void protocol_ie_field_s::to_json(json_writer& j) const +template +void protocol_ie_field_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("id", id); j.write_str("criticality", crit.to_string()); - ; j.end_obj(); } -template -bool protocol_ie_field_s::load_info_obj(const uint32_t& id_) +template +bool protocol_ie_field_s::load_info_obj(const uint32_t& id_) { - if (not ies_set_param::is_id_valid(id_)) { + if (not ies_set_paramT_::is_id_valid(id_)) { return false; } id = id_; - crit = ies_set_param::get_crit(id); - value = ies_set_param::get_value(id); + crit = ies_set_paramT_::get_crit(id); + value = ies_set_paramT_::get_value(id); return true; } @@ -181,7 +181,12 @@ presence_e ngap_protocol_ies_empty_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +void ngap_protocol_ies_empty_o::value_c::to_json(json_writer& j) const +{ + j.start_obj(); + j.end_obj(); +} SRSASN_CODE ngap_protocol_ies_empty_o::value_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); @@ -200,44 +205,84 @@ std::string ngap_protocol_ies_empty_o::value_c::types_opts::to_string() const } // ProtocolExtensionField{NGAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-EXTENSION}} -template -SRSASN_CODE protocol_ext_field_s::pack(bit_ref& bref) const +template +SRSASN_CODE protocol_ext_field_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_integer(bref, id, (uint32_t)0u, (uint32_t)65535u, false, true)); - ngap_nr_asn1_warn_assert(crit != ext_set_param::get_crit(id), __func__, __LINE__); + ngap_nr_asn1_warn_assert(crit != ext_set_paramT_::get_crit(id), __func__, __LINE__); HANDLE_CODE(crit.pack(bref)); HANDLE_CODE(ext_value.pack(bref)); return SRSASN_SUCCESS; } -template -SRSASN_CODE protocol_ext_field_s::unpack(bit_ref& bref) +template +SRSASN_CODE protocol_ext_field_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_integer(id, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); HANDLE_CODE(crit.unpack(bref)); - ext_value = ext_set_param::get_ext(id); + ext_value = ext_set_paramT_::get_ext(id); HANDLE_CODE(ext_value.unpack(bref)); return SRSASN_SUCCESS; } -template -void protocol_ext_field_s::to_json(json_writer& j) const +template +void protocol_ext_field_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("id", id); j.write_str("criticality", crit.to_string()); - ; j.end_obj(); } -template -bool protocol_ext_field_s::load_info_obj(const uint32_t& id_) +template +bool protocol_ext_field_s::load_info_obj(const uint32_t& id_) { - if (not ext_set_param::is_id_valid(id_)) { + if (not ext_set_paramT_::is_id_valid(id_)) { return false; } id = id_; - crit = ext_set_param::get_crit(id); - ext_value = ext_set_param::get_ext(id); + crit = ext_set_paramT_::get_crit(id); + ext_value = ext_set_paramT_::get_ext(id); + return true; +} + +// ProtocolIE-SingleContainer{NGAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES}} +template +SRSASN_CODE protocol_ie_single_container_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, id, (uint32_t)0u, (uint32_t)65535u, false, true)); + ngap_nr_asn1_warn_assert(crit != ies_set_paramT_::get_crit(id), __func__, __LINE__); + HANDLE_CODE(crit.pack(bref)); + HANDLE_CODE(value.pack(bref)); + + return SRSASN_SUCCESS; +} +template +SRSASN_CODE protocol_ie_single_container_s::unpack(bit_ref& bref) +{ + HANDLE_CODE(unpack_integer(id, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); + HANDLE_CODE(crit.unpack(bref)); + value = ies_set_paramT_::get_value(id); + HANDLE_CODE(value.unpack(bref)); + + return SRSASN_SUCCESS; +} +template +void protocol_ie_single_container_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("id", id); + j.write_str("criticality", crit.to_string()); + j.end_obj(); +} +template +bool protocol_ie_single_container_s::load_info_obj(const uint32_t& id_) +{ + if (not ies_set_paramT_::is_id_valid(id_)) { + return false; + } + id = id_; + crit = ies_set_paramT_::get_crit(id); + value = ies_set_paramT_::get_value(id); return true; } @@ -264,7 +309,12 @@ presence_e ngap_protocol_ext_empty_o::get_presence(const uint32_t& id) return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE +void ngap_protocol_ext_empty_o::ext_c::to_json(json_writer& j) const +{ + j.start_obj(); + j.end_obj(); +} SRSASN_CODE ngap_protocol_ext_empty_o::ext_c::pack(bit_ref& bref) const { varlength_field_pack_guard varlen_scope(bref, true); @@ -440,7 +490,28 @@ void protocol_ext_container_item_s::to_json(json_writer& j) const j.start_obj(); j.write_int("id", id); j.write_str("criticality", crit.to_string()); - ; + j.end_obj(); +} + +SRSASN_CODE protocol_ext_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 protocol_ext_container_empty_l::unpack(bit_ref& bref) +{ + uint32_t nof_ies = 0; + unpack_length(nof_ies, bref, 1u, 65535u, true); + if (nof_ies > 0) { + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} +void protocol_ext_container_empty_l::to_json(json_writer& j) const +{ + j.start_obj(); j.end_obj(); } @@ -481,28 +552,6 @@ void amf_tnlassoc_setup_item_s::to_json(json_writer& j) const j.end_obj(); } -SRSASN_CODE protocol_ext_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 protocol_ext_container_empty_l::unpack(bit_ref& bref) -{ - uint32_t nof_ies = 0; - unpack_length(nof_ies, bref, 1u, 65535u, true); - if (nof_ies > 0) { - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} -void protocol_ext_container_empty_l::to_json(json_writer& j) const -{ - j.start_obj(); - j.end_obj(); -} - // TNLAssociationUsage ::= ENUMERATED std::string tnlassoc_usage_opts::to_string() const { @@ -920,25 +969,25 @@ amf_cfg_upd_ies_o::value_c amf_cfg_upd_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 1: - ret.set_amf_name(); + ret.set(value_c::types::amf_name); break; case 96: - ret.set_served_guami_list(); + ret.set(value_c::types::served_guami_list); break; case 86: - ret.set_relative_amf_capacity(); + ret.set(value_c::types::relative_amf_capacity); break; case 80: - ret.set_plmn_support_list(); + ret.set(value_c::types::plmn_support_list); break; case 6: - ret.set_amf_tnlassoc_to_add_list(); + ret.set(value_c::types::amf_tnlassoc_to_add_list); break; case 7: - ret.set_amf_tnlassoc_to_rem_list(); + ret.set(value_c::types::amf_tnlassoc_to_rem_list); break; case 8: - ret.set_amf_tnlassoc_to_upd_list(); + ret.set(value_c::types::amf_tnlassoc_to_upd_list); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -968,7 +1017,77 @@ presence_e amf_cfg_upd_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -1260,34 +1379,12 @@ void protocol_ie_container_item_s::to_json(json_writer& j) const j.start_obj(); j.write_int("id", id); j.write_str("criticality", crit.to_string()); - ; j.end_obj(); } -// AMFConfigurationUpdate ::= SEQUENCE -SRSASN_CODE amf_cfg_upd_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE amf_cfg_upd_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void amf_cfg_upd_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -amf_cfg_upd_s::protocol_ies_l_::protocol_ies_l_() : +amf_cfg_upd_ies_container::amf_cfg_upd_ies_container() : amf_name(1, crit_e::reject), served_guami_list(96, crit_e::reject), relative_amf_capacity(86, crit_e::ignore), @@ -1297,7 +1394,7 @@ amf_cfg_upd_s::protocol_ies_l_::protocol_ies_l_() : amf_tnlassoc_to_upd_list(8, crit_e::ignore) { } -SRSASN_CODE amf_cfg_upd_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE amf_cfg_upd_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += amf_name_present ? 1 : 0; @@ -1333,7 +1430,7 @@ SRSASN_CODE amf_cfg_upd_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE amf_cfg_upd_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE amf_cfg_upd_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -1392,7 +1489,7 @@ SRSASN_CODE amf_cfg_upd_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void amf_cfg_upd_s::protocol_ies_l_::to_json(json_writer& j) const +void amf_cfg_upd_ies_container::to_json(json_writer& j) const { j.start_obj(); if (amf_name_present) { @@ -1426,6 +1523,29 @@ void amf_cfg_upd_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// AMFConfigurationUpdate ::= SEQUENCE +SRSASN_CODE amf_cfg_upd_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE amf_cfg_upd_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void amf_cfg_upd_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // CauseMisc ::= ENUMERATED std::string cause_misc_opts::to_string() const { @@ -1926,13 +2046,13 @@ amf_cfg_upd_ack_ies_o::value_c amf_cfg_upd_ack_ies_o::get_value(const uint32_t& value_c ret{}; switch (id) { case 5: - ret.set_amf_tnlassoc_setup_list(); + ret.set(value_c::types::amf_tnlassoc_setup_list); break; case 4: - ret.set_amf_tnlassoc_failed_to_setup_list(); + ret.set(value_c::types::amf_tnlassoc_failed_to_setup_list); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -1954,7 +2074,37 @@ presence_e amf_cfg_upd_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -2107,36 +2257,15 @@ std::string amf_cfg_upd_ack_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "amf_cfg_upd_ack_ies_o::value_c::types"); } -// AMFConfigurationUpdateAcknowledge ::= SEQUENCE -SRSASN_CODE amf_cfg_upd_ack_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE amf_cfg_upd_ack_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -void amf_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(); -} - -amf_cfg_upd_ack_s::protocol_ies_l_::protocol_ies_l_() : +amf_cfg_upd_ack_ies_container::amf_cfg_upd_ack_ies_container() : amf_tnlassoc_setup_list(5, crit_e::ignore), amf_tnlassoc_failed_to_setup_list(4, crit_e::ignore), crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE amf_cfg_upd_ack_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE amf_cfg_upd_ack_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += amf_tnlassoc_setup_list_present ? 1 : 0; @@ -2156,7 +2285,7 @@ SRSASN_CODE amf_cfg_upd_ack_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE amf_cfg_upd_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE amf_cfg_upd_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -2191,7 +2320,7 @@ SRSASN_CODE amf_cfg_upd_ack_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void amf_cfg_upd_ack_s::protocol_ies_l_::to_json(json_writer& j) const +void amf_cfg_upd_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); if (amf_tnlassoc_setup_list_present) { @@ -2209,6 +2338,29 @@ void amf_cfg_upd_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// AMFConfigurationUpdateAcknowledge ::= SEQUENCE +SRSASN_CODE amf_cfg_upd_ack_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE amf_cfg_upd_ack_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void amf_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(); +} + // TimeToWait ::= ENUMERATED std::string time_to_wait_opts::to_string() const { @@ -2256,13 +2408,13 @@ amf_cfg_upd_fail_ies_o::value_c amf_cfg_upd_fail_ies_o::get_value(const uint32_t value_c ret{}; switch (id) { case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 107: - ret.set_time_to_wait(); + ret.set(value_c::types::time_to_wait); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -2284,7 +2436,37 @@ presence_e amf_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -2426,36 +2608,15 @@ std::string amf_cfg_upd_fail_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "amf_cfg_upd_fail_ies_o::value_c::types"); } -// AMFConfigurationUpdateFailure ::= SEQUENCE -SRSASN_CODE amf_cfg_upd_fail_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE amf_cfg_upd_fail_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void amf_cfg_upd_fail_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -amf_cfg_upd_fail_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE amf_cfg_upd_fail_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE amf_cfg_upd_fail_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 1; nof_ies += time_to_wait_present ? 1 : 0; @@ -2472,7 +2633,7 @@ SRSASN_CODE amf_cfg_upd_fail_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE amf_cfg_upd_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE amf_cfg_upd_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -2512,7 +2673,7 @@ SRSASN_CODE amf_cfg_upd_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void amf_cfg_upd_fail_s::protocol_ies_l_::to_json(json_writer& j) const +void amf_cfg_upd_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -2528,6 +2689,29 @@ void amf_cfg_upd_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// AMFConfigurationUpdateFailure ::= SEQUENCE +SRSASN_CODE amf_cfg_upd_fail_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE amf_cfg_upd_fail_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void amf_cfg_upd_fail_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // GNB-ID ::= CHOICE void gnb_id_c::destroy_() { @@ -3552,7 +3736,7 @@ presence_e amf_status_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE void amf_status_ind_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -3582,31 +3766,10 @@ std::string amf_status_ind_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 1, value, "amf_status_ind_ies_o::value_c::types"); } -// AMFStatusIndication ::= SEQUENCE -SRSASN_CODE amf_status_ind_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE amf_status_ind_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void amf_status_ind_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -amf_status_ind_s::protocol_ies_l_::protocol_ies_l_() : unavailable_guami_list(120, crit_e::reject) {} -SRSASN_CODE amf_status_ind_s::protocol_ies_l_::pack(bit_ref& bref) const +amf_status_ind_ies_container::amf_status_ind_ies_container() : unavailable_guami_list(120, crit_e::reject) {} +SRSASN_CODE amf_status_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 1; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -3615,7 +3778,7 @@ SRSASN_CODE amf_status_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE amf_status_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE amf_status_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -3643,7 +3806,7 @@ SRSASN_CODE amf_status_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void amf_status_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void amf_status_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -3651,6 +3814,29 @@ void amf_status_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// AMFStatusIndication ::= SEQUENCE +SRSASN_CODE amf_status_ind_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE amf_status_ind_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void amf_status_ind_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // DataForwardingAccepted ::= ENUMERATED std::string data_forwarding_accepted_opts::to_string() const { @@ -3704,7 +3890,7 @@ SRSASN_CODE qos_flow_item_with_data_forwarding_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(data_forwarding_accepted_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, false, true)); + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); if (data_forwarding_accepted_present) { HANDLE_CODE(data_forwarding_accepted.pack(bref)); } @@ -3720,7 +3906,7 @@ SRSASN_CODE qos_flow_item_with_data_forwarding_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(data_forwarding_accepted_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, false, true)); + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); if (data_forwarding_accepted_present) { HANDLE_CODE(data_forwarding_accepted.unpack(bref)); } @@ -4441,7 +4627,7 @@ SRSASN_CODE area_of_interest_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ie_exts_present, 1)); HANDLE_CODE(area_of_interest.pack(bref)); - HANDLE_CODE(pack_integer(bref, location_report_ref_id, (uint8_t)1u, (uint8_t)64u, false, true)); + HANDLE_CODE(pack_integer(bref, location_report_ref_id, (uint8_t)1u, (uint8_t)64u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } @@ -4454,7 +4640,7 @@ SRSASN_CODE area_of_interest_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE(area_of_interest.unpack(bref)); - HANDLE_CODE(unpack_integer(location_report_ref_id, bref, (uint8_t)1u, (uint8_t)64u, false, true)); + HANDLE_CODE(unpack_integer(location_report_ref_id, bref, (uint8_t)1u, (uint8_t)64u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } @@ -4613,8 +4799,8 @@ SRSASN_CODE paging_attempt_info_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(next_paging_area_scope_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, paging_attempt_count, (uint8_t)1u, (uint8_t)16u, false, true)); - HANDLE_CODE(pack_integer(bref, intended_nof_paging_attempts, (uint8_t)1u, (uint8_t)16u, false, true)); + HANDLE_CODE(pack_integer(bref, paging_attempt_count, (uint8_t)1u, (uint8_t)16u, true, true)); + HANDLE_CODE(pack_integer(bref, intended_nof_paging_attempts, (uint8_t)1u, (uint8_t)16u, true, true)); if (next_paging_area_scope_present) { HANDLE_CODE(next_paging_area_scope.pack(bref)); } @@ -4630,8 +4816,8 @@ SRSASN_CODE paging_attempt_info_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(next_paging_area_scope_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(paging_attempt_count, bref, (uint8_t)1u, (uint8_t)16u, false, true)); - HANDLE_CODE(unpack_integer(intended_nof_paging_attempts, bref, (uint8_t)1u, (uint8_t)16u, false, true)); + HANDLE_CODE(unpack_integer(paging_attempt_count, bref, (uint8_t)1u, (uint8_t)16u, true, true)); + HANDLE_CODE(unpack_integer(intended_nof_paging_attempts, bref, (uint8_t)1u, (uint8_t)16u, true, true)); if (next_paging_area_scope_present) { HANDLE_CODE(next_paging_area_scope.unpack(bref)); } @@ -4720,7 +4906,7 @@ SRSASN_CODE associated_qos_flow_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(qos_flow_map_ind_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, false, true)); + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); if (qos_flow_map_ind_present) { HANDLE_CODE(qos_flow_map_ind.pack(bref)); } @@ -4736,7 +4922,7 @@ SRSASN_CODE associated_qos_flow_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(qos_flow_map_ind_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, false, true)); + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); if (qos_flow_map_ind_present) { HANDLE_CODE(qos_flow_map_ind.unpack(bref)); } @@ -6412,19 +6598,19 @@ cell_traffic_trace_ies_o::value_c cell_traffic_trace_ies_o::get_value(const uint value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 44: - ret.set_ngran_trace_id(); + ret.set(value_c::types::ngran_trace_id); break; case 43: - ret.set_ngran_cgi(); + ret.set(value_c::types::ngran_cgi); break; case 109: - ret.set_trace_collection_entity_ip_address(); + ret.set(value_c::types::trace_collection_entity_ip_address); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -6450,7 +6636,58 @@ presence_e cell_traffic_trace_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -6630,30 +6867,9 @@ std::string cell_traffic_trace_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 5, value, "cell_traffic_trace_ies_o::value_c::types"); } -// CellTrafficTrace ::= SEQUENCE -SRSASN_CODE cell_traffic_trace_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE cell_traffic_trace_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void cell_traffic_trace_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -cell_traffic_trace_s::protocol_ies_l_::protocol_ies_l_() : +cell_traffic_trace_ies_container::cell_traffic_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), @@ -6661,7 +6877,7 @@ cell_traffic_trace_s::protocol_ies_l_::protocol_ies_l_() : trace_collection_entity_ip_address(109, crit_e::ignore) { } -SRSASN_CODE cell_traffic_trace_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE cell_traffic_trace_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 5; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -6674,7 +6890,7 @@ SRSASN_CODE cell_traffic_trace_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE cell_traffic_trace_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE cell_traffic_trace_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -6726,7 +6942,7 @@ SRSASN_CODE cell_traffic_trace_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void cell_traffic_trace_s::protocol_ies_l_::to_json(json_writer& j) const +void cell_traffic_trace_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -6742,6 +6958,29 @@ void cell_traffic_trace_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// CellTrafficTrace ::= SEQUENCE +SRSASN_CODE cell_traffic_trace_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE cell_traffic_trace_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void cell_traffic_trace_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // CellSize ::= ENUMERATED std::string cell_size_opts::to_string() const { @@ -6862,10 +7101,10 @@ SRSASN_CODE expected_ue_activity_behaviour_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ie_exts_present, 1)); if (expected_activity_period_present) { - HANDLE_CODE(pack_integer(bref, expected_activity_period, (uint8_t)1u, (uint8_t)30u, false, true)); + HANDLE_CODE(pack_integer(bref, expected_activity_period, (uint8_t)1u, (uint8_t)30u, true, true)); } if (expected_idle_period_present) { - HANDLE_CODE(pack_integer(bref, expected_idle_period, (uint8_t)1u, (uint8_t)30u, false, true)); + HANDLE_CODE(pack_integer(bref, expected_idle_period, (uint8_t)1u, (uint8_t)30u, true, true)); } if (source_of_ue_activity_behaviour_info_present) { HANDLE_CODE(source_of_ue_activity_behaviour_info.pack(bref)); @@ -6885,10 +7124,10 @@ SRSASN_CODE expected_ue_activity_behaviour_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(ie_exts_present, 1)); if (expected_activity_period_present) { - HANDLE_CODE(unpack_integer(expected_activity_period, bref, (uint8_t)1u, (uint8_t)30u, false, true)); + HANDLE_CODE(unpack_integer(expected_activity_period, bref, (uint8_t)1u, (uint8_t)30u, true, true)); } if (expected_idle_period_present) { - HANDLE_CODE(unpack_integer(expected_idle_period, bref, (uint8_t)1u, (uint8_t)30u, false, true)); + HANDLE_CODE(unpack_integer(expected_idle_period, bref, (uint8_t)1u, (uint8_t)30u, true, true)); } if (source_of_ue_activity_behaviour_info_present) { HANDLE_CODE(source_of_ue_activity_behaviour_info.unpack(bref)); @@ -7756,7 +7995,7 @@ SRSASN_CODE drbs_subject_to_status_transfer_item_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_ext_present, 1)); - HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, true, true)); HANDLE_CODE(drb_status_ul.pack(bref)); HANDLE_CODE(drb_status_dl.pack(bref)); if (ie_ext_present) { @@ -7770,7 +8009,7 @@ SRSASN_CODE drbs_subject_to_status_transfer_item_s::unpack(bit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_ext_present, 1)); - HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, true, true)); HANDLE_CODE(drb_status_ul.unpack(bref)); HANDLE_CODE(drb_status_dl.unpack(bref)); if (ie_ext_present) { @@ -7800,7 +8039,7 @@ SRSASN_CODE drbs_to_qos_flows_map_item_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, true, true)); HANDLE_CODE(pack_dyn_seq_of(bref, associated_qos_flow_list, 1, 64, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -7813,7 +8052,7 @@ SRSASN_CODE drbs_to_qos_flows_map_item_s::unpack(bit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, true, true)); HANDLE_CODE(unpack_dyn_seq_of(associated_qos_flow_list, bref, 1, 64, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -7845,7 +8084,7 @@ SRSASN_CODE data_forwarding_resp_drb_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(ulforwarding_up_tnl_info_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(pack_integer(bref, drb_id, (uint8_t)1u, (uint8_t)32u, true, true)); if (dlforwarding_up_tnl_info_present) { HANDLE_CODE(dlforwarding_up_tnl_info.pack(bref)); } @@ -7865,7 +8104,7 @@ SRSASN_CODE data_forwarding_resp_drb_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(ulforwarding_up_tnl_info_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, false, true)); + HANDLE_CODE(unpack_integer(drb_id, bref, (uint8_t)1u, (uint8_t)32u, true, true)); if (dlforwarding_up_tnl_info_present) { HANDLE_CODE(dlforwarding_up_tnl_info.unpack(bref)); } @@ -7932,13 +8171,13 @@ deactiv_trace_ies_o::value_c deactiv_trace_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 44: - ret.set_ngran_trace_id(); + ret.set(value_c::types::ngran_trace_id); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -7960,7 +8199,37 @@ presence_e deactiv_trace_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -8095,36 +8364,15 @@ std::string deactiv_trace_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "deactiv_trace_ies_o::value_c::types"); } -// DeactivateTrace ::= SEQUENCE -SRSASN_CODE deactiv_trace_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE deactiv_trace_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void deactiv_trace_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -deactiv_trace_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE deactiv_trace_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE deactiv_trace_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -8135,7 +8383,7 @@ SRSASN_CODE deactiv_trace_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE deactiv_trace_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE deactiv_trace_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -8175,7 +8423,7 @@ SRSASN_CODE deactiv_trace_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void deactiv_trace_s::protocol_ies_l_::to_json(json_writer& j) const +void deactiv_trace_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -8187,6 +8435,29 @@ void deactiv_trace_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// DeactivateTrace ::= SEQUENCE +SRSASN_CODE deactiv_trace_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE deactiv_trace_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void deactiv_trace_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // ForbiddenAreaInformation-Item ::= SEQUENCE SRSASN_CODE forbidden_area_info_item_s::pack(bit_ref& bref) const { @@ -8383,7 +8654,7 @@ presence_e mob_restrict_list_ext_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void mob_restrict_list_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -8409,104 +8680,10 @@ std::string mob_restrict_list_ext_ies_o::ext_c::types_opts::to_string() const return convert_enum_idx(options, 1, value, "mob_restrict_list_ext_ies_o::ext_c::types"); } -// MobilityRestrictionList ::= SEQUENCE -SRSASN_CODE mob_restrict_list_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(equivalent_plmns_present, 1)); - HANDLE_CODE(bref.pack(rat_restricts_present, 1)); - HANDLE_CODE(bref.pack(forbidden_area_info_present, 1)); - HANDLE_CODE(bref.pack(service_area_info_present, 1)); - HANDLE_CODE(bref.pack(ie_exts_present, 1)); - - HANDLE_CODE(serving_plmn.pack(bref)); - if (equivalent_plmns_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, equivalent_plmns, 1, 15, true)); - } - if (rat_restricts_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, rat_restricts, 1, 16, true)); - } - if (forbidden_area_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, forbidden_area_info, 1, 16, true)); - } - if (service_area_info_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, service_area_info, 1, 16, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE mob_restrict_list_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(equivalent_plmns_present, 1)); - HANDLE_CODE(bref.unpack(rat_restricts_present, 1)); - HANDLE_CODE(bref.unpack(forbidden_area_info_present, 1)); - HANDLE_CODE(bref.unpack(service_area_info_present, 1)); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - - HANDLE_CODE(serving_plmn.unpack(bref)); - if (equivalent_plmns_present) { - HANDLE_CODE(unpack_dyn_seq_of(equivalent_plmns, bref, 1, 15, true)); - } - if (rat_restricts_present) { - HANDLE_CODE(unpack_dyn_seq_of(rat_restricts, bref, 1, 16, true)); - } - if (forbidden_area_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(forbidden_area_info, bref, 1, 16, true)); - } - if (service_area_info_present) { - HANDLE_CODE(unpack_dyn_seq_of(service_area_info, bref, 1, 16, true)); - } - if (ie_exts_present) { - HANDLE_CODE(ie_exts.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void mob_restrict_list_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("servingPLMN", serving_plmn.to_string()); - if (equivalent_plmns_present) { - j.start_array("equivalentPLMNs"); - for (uint32_t i1 = 0; i1 < equivalent_plmns.size(); ++i1) { - j.write_str(equivalent_plmns[i1].to_string()); - } - j.end_array(); - } - if (rat_restricts_present) { - j.start_array("rATRestrictions"); - for (uint32_t i1 = 0; i1 < rat_restricts.size(); ++i1) { - rat_restricts[i1].to_json(j); - } - j.end_array(); - } - if (forbidden_area_info_present) { - j.start_array("forbiddenAreaInformation"); - for (uint32_t i1 = 0; i1 < forbidden_area_info.size(); ++i1) { - forbidden_area_info[i1].to_json(j); - } - j.end_array(); - } - if (service_area_info_present) { - j.start_array("serviceAreaInformation"); - for (uint32_t i1 = 0; i1 < service_area_info.size(); ++i1) { - service_area_info[i1].to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} +template struct protocol_ext_field_s; -mob_restrict_list_s::ie_exts_l_::ie_exts_l_() : last_eutran_plmn_id(150, crit_e::ignore) {} -SRSASN_CODE mob_restrict_list_s::ie_exts_l_::pack(bit_ref& bref) const +mob_restrict_list_ext_ies_container::mob_restrict_list_ext_ies_container() : last_eutran_plmn_id(150, crit_e::ignore) {} +SRSASN_CODE mob_restrict_list_ext_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += last_eutran_plmn_id_present ? 1 : 0; @@ -8518,7 +8695,7 @@ SRSASN_CODE mob_restrict_list_s::ie_exts_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE mob_restrict_list_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE mob_restrict_list_ext_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 1u, 65535u, true); @@ -8541,7 +8718,7 @@ SRSASN_CODE mob_restrict_list_s::ie_exts_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void mob_restrict_list_s::ie_exts_l_::to_json(json_writer& j) const +void mob_restrict_list_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (last_eutran_plmn_id_present) { @@ -8551,14 +8728,110 @@ void mob_restrict_list_s::ie_exts_l_::to_json(json_writer& j) const j.end_obj(); } +// MobilityRestrictionList ::= SEQUENCE +SRSASN_CODE mob_restrict_list_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(equivalent_plmns_present, 1)); + HANDLE_CODE(bref.pack(rat_restricts_present, 1)); + HANDLE_CODE(bref.pack(forbidden_area_info_present, 1)); + HANDLE_CODE(bref.pack(service_area_info_present, 1)); + HANDLE_CODE(bref.pack(ie_exts_present, 1)); + + HANDLE_CODE(serving_plmn.pack(bref)); + if (equivalent_plmns_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, equivalent_plmns, 1, 15, true)); + } + if (rat_restricts_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, rat_restricts, 1, 16, true)); + } + if (forbidden_area_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, forbidden_area_info, 1, 16, true)); + } + if (service_area_info_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, service_area_info, 1, 16, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE mob_restrict_list_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(equivalent_plmns_present, 1)); + HANDLE_CODE(bref.unpack(rat_restricts_present, 1)); + HANDLE_CODE(bref.unpack(forbidden_area_info_present, 1)); + HANDLE_CODE(bref.unpack(service_area_info_present, 1)); + HANDLE_CODE(bref.unpack(ie_exts_present, 1)); + + HANDLE_CODE(serving_plmn.unpack(bref)); + if (equivalent_plmns_present) { + HANDLE_CODE(unpack_dyn_seq_of(equivalent_plmns, bref, 1, 15, true)); + } + if (rat_restricts_present) { + HANDLE_CODE(unpack_dyn_seq_of(rat_restricts, bref, 1, 16, true)); + } + if (forbidden_area_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(forbidden_area_info, bref, 1, 16, true)); + } + if (service_area_info_present) { + HANDLE_CODE(unpack_dyn_seq_of(service_area_info, bref, 1, 16, true)); + } + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void mob_restrict_list_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("servingPLMN", serving_plmn.to_string()); + if (equivalent_plmns_present) { + j.start_array("equivalentPLMNs"); + for (uint32_t i1 = 0; i1 < equivalent_plmns.size(); ++i1) { + j.write_str(equivalent_plmns[i1].to_string()); + } + j.end_array(); + } + if (rat_restricts_present) { + j.start_array("rATRestrictions"); + for (uint32_t i1 = 0; i1 < rat_restricts.size(); ++i1) { + rat_restricts[i1].to_json(j); + } + j.end_array(); + } + if (forbidden_area_info_present) { + j.start_array("forbiddenAreaInformation"); + for (uint32_t i1 = 0; i1 < forbidden_area_info.size(); ++i1) { + forbidden_area_info[i1].to_json(j); + } + j.end_array(); + } + if (service_area_info_present) { + j.start_array("serviceAreaInformation"); + for (uint32_t i1 = 0; i1 < service_area_info.size(); ++i1) { + service_area_info[i1].to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + // UEAggregateMaximumBitRate ::= SEQUENCE SRSASN_CODE ue_aggregate_maximum_bit_rate_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, ueaggregate_maximum_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(pack_integer(bref, ueaggregate_maximum_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); + HANDLE_CODE(pack_integer(bref, ueaggregate_maximum_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(pack_integer(bref, ueaggregate_maximum_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } @@ -8571,9 +8844,9 @@ SRSASN_CODE ue_aggregate_maximum_bit_rate_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(ie_exts_present, 1)); HANDLE_CODE( - unpack_integer(ueaggregate_maximum_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); + unpack_integer(ueaggregate_maximum_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); HANDLE_CODE( - unpack_integer(ueaggregate_maximum_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); + unpack_integer(ueaggregate_maximum_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } @@ -8639,31 +8912,31 @@ dl_nas_transport_ies_o::value_c dl_nas_transport_ies_o::get_value(const uint32_t value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 48: - ret.set_old_amf(); + ret.set(value_c::types::old_amf); break; case 83: - ret.set_ran_paging_prio(); + ret.set(value_c::types::ran_paging_prio); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 36: - ret.set_mob_restrict_list(); + ret.set(value_c::types::mob_restrict_list); break; case 31: - ret.set_idx_to_rfsp(); + ret.set(value_c::types::idx_to_rfsp); break; case 110: - ret.set_ue_aggregate_maximum_bit_rate(); + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -8697,7 +8970,97 @@ presence_e dl_nas_transport_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -8899,7 +9262,7 @@ SRSASN_CODE dl_nas_transport_ies_o::value_c::pack(bit_ref& bref) const 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, false, true)); + 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)); @@ -8936,7 +9299,7 @@ SRSASN_CODE dl_nas_transport_ies_o::value_c::unpack(bit_ref& bref) 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, false, true)); + 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)); @@ -8965,30 +9328,9 @@ std::string dl_nas_transport_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 9, value, "dl_nas_transport_ies_o::value_c::types"); } -// DownlinkNASTransport ::= SEQUENCE -SRSASN_CODE dl_nas_transport_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE dl_nas_transport_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void dl_nas_transport_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -dl_nas_transport_s::protocol_ies_l_::protocol_ies_l_() : +dl_nas_transport_ies_container::dl_nas_transport_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), old_amf(48, crit_e::reject), @@ -9000,7 +9342,7 @@ dl_nas_transport_s::protocol_ies_l_::protocol_ies_l_() : allowed_nssai(0, crit_e::reject) { } -SRSASN_CODE dl_nas_transport_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE dl_nas_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += old_amf_present ? 1 : 0; @@ -9035,7 +9377,7 @@ SRSASN_CODE dl_nas_transport_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE dl_nas_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE dl_nas_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -9111,7 +9453,7 @@ SRSASN_CODE dl_nas_transport_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void dl_nas_transport_s::protocol_ies_l_::to_json(json_writer& j) const +void dl_nas_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -9147,6 +9489,29 @@ void dl_nas_transport_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// DownlinkNASTransport ::= SEQUENCE +SRSASN_CODE dl_nas_transport_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE dl_nas_transport_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void dl_nas_transport_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // DownlinkNonUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t dl_non_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) { @@ -9181,10 +9546,10 @@ dl_non_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 89: - ret.set_routing_id(); + ret.set(value_c::types::routing_id); break; case 46: - ret.set_nrp_pa_pdu(); + ret.set(value_c::types::nrp_pa_pdu); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -9204,7 +9569,27 @@ presence_e dl_non_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32 return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -9328,35 +9713,14 @@ std::string dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_ return convert_enum_idx(options, 2, value, "dl_non_ueassociated_nrp_pa_transport_ies_o::value_c::types"); } -// DownlinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void dl_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -9366,7 +9730,7 @@ SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_re return SRSASN_SUCCESS; } -SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -9400,7 +9764,7 @@ SRSASN_CODE dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ } return SRSASN_SUCCESS; } -void dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_writer& j) const +void dl_non_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -9410,6 +9774,29 @@ void dl_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_write j.end_obj(); } +// DownlinkNonUEAssociatedNRPPaTransport ::= SEQUENCE +SRSASN_CODE dl_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 dl_non_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void dl_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // XnExtTLA-Item ::= SEQUENCE SRSASN_CODE xn_ext_tla_item_s::pack(bit_ref& bref) const { @@ -9891,10 +10278,10 @@ dl_ran_cfg_transfer_ies_o::value_c dl_ran_cfg_transfer_ies_o::get_value(const ui value_c ret{}; switch (id) { case 98: - ret.set_son_cfg_transfer_dl(); + ret.set(value_c::types::son_cfg_transfer_dl); break; case 157: - ret.set_endc_son_cfg_transfer_dl(); + ret.set(value_c::types::endc_son_cfg_transfer_dl); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -9914,7 +10301,27 @@ presence_e dl_ran_cfg_transfer_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -10038,35 +10445,14 @@ std::string dl_ran_cfg_transfer_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 2, value, "dl_ran_cfg_transfer_ies_o::value_c::types"); } -// DownlinkRANConfigurationTransfer ::= SEQUENCE -SRSASN_CODE dl_ran_cfg_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE dl_ran_cfg_transfer_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void dl_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 protocol_ie_field_s; -dl_ran_cfg_transfer_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE dl_ran_cfg_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE dl_ran_cfg_transfer_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += son_cfg_transfer_dl_present ? 1 : 0; @@ -10082,7 +10468,7 @@ SRSASN_CODE dl_ran_cfg_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE dl_ran_cfg_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE dl_ran_cfg_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -10111,7 +10497,7 @@ SRSASN_CODE dl_ran_cfg_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void dl_ran_cfg_transfer_s::protocol_ies_l_::to_json(json_writer& j) const +void dl_ran_cfg_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); if (son_cfg_transfer_dl_present) { @@ -10125,6 +10511,29 @@ void dl_ran_cfg_transfer_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// DownlinkRANConfigurationTransfer ::= SEQUENCE +SRSASN_CODE dl_ran_cfg_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE dl_ran_cfg_transfer_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void dl_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(); +} + // RANStatusTransfer-TransparentContainer ::= SEQUENCE SRSASN_CODE ran_status_transfer_transparent_container_s::pack(bit_ref& bref) const { @@ -10200,13 +10609,13 @@ dl_ran_status_transfer_ies_o::value_c dl_ran_status_transfer_ies_o::get_value(co value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 84: - ret.set_ran_status_transfer_transparent_container(); + ret.set(value_c::types::ran_status_transfer_transparent_container); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -10228,7 +10637,39 @@ presence_e dl_ran_status_transfer_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -10366,36 +10807,15 @@ std::string dl_ran_status_transfer_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "dl_ran_status_transfer_ies_o::value_c::types"); } -// DownlinkRANStatusTransfer ::= SEQUENCE -SRSASN_CODE dl_ran_status_transfer_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE dl_ran_status_transfer_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void dl_ran_status_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 protocol_ie_field_s; -dl_ran_status_transfer_s::protocol_ies_l_::protocol_ies_l_() : +dl_ran_status_transfer_ies_container::dl_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 dl_ran_status_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE dl_ran_status_transfer_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -10406,7 +10826,7 @@ SRSASN_CODE dl_ran_status_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE dl_ran_status_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE dl_ran_status_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -10446,7 +10866,7 @@ SRSASN_CODE dl_ran_status_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void dl_ran_status_transfer_s::protocol_ies_l_::to_json(json_writer& j) const +void dl_ran_status_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -10458,6 +10878,29 @@ void dl_ran_status_transfer_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// DownlinkRANStatusTransfer ::= SEQUENCE +SRSASN_CODE dl_ran_status_transfer_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE dl_ran_status_transfer_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void dl_ran_status_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // DownlinkUEAssociatedNRPPaTransportIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t dl_ueassociated_nrp_pa_transport_ies_o::idx_to_id(uint32_t idx) { @@ -10495,16 +10938,16 @@ dl_ueassociated_nrp_pa_transport_ies_o::value_c dl_ueassociated_nrp_pa_transport value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 89: - ret.set_routing_id(); + ret.set(value_c::types::routing_id); break; case 46: - ret.set_nrp_pa_pdu(); + ret.set(value_c::types::nrp_pa_pdu); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -10528,7 +10971,47 @@ presence_e dl_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -10686,37 +11169,16 @@ std::string dl_ueassociated_nrp_pa_transport_ies_o::value_c::types_opts::to_stri return convert_enum_idx(options, 4, value, "dl_ueassociated_nrp_pa_transport_ies_o::value_c::types"); } -// DownlinkUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE dl_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 dl_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void dl_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::protocol_ies_l_() : +dl_ueassociated_nrp_pa_transport_ies_container::dl_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 dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE dl_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -10728,7 +11190,7 @@ SRSASN_CODE dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_ref& b return SRSASN_SUCCESS; } -SRSASN_CODE dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE dl_ueassociated_nrp_pa_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -10774,7 +11236,7 @@ SRSASN_CODE dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& } return SRSASN_SUCCESS; } -void dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_writer& j) const +void dl_ueassociated_nrp_pa_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -10788,6 +11250,29 @@ void dl_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_writer& j j.end_obj(); } +// DownlinkUEAssociatedNRPPaTransport ::= SEQUENCE +SRSASN_CODE dl_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 dl_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void dl_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // DelayCritical ::= ENUMERATED std::string delay_crit_opts::to_string() const { @@ -10801,8 +11286,8 @@ SRSASN_CODE packet_error_rate_s::pack(bit_ref& bref) const bref.pack(ext, 1); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, per_scalar, (uint8_t)0u, (uint8_t)9u, false, true)); - HANDLE_CODE(pack_integer(bref, per_exponent, (uint8_t)0u, (uint8_t)9u, false, true)); + HANDLE_CODE(pack_integer(bref, per_scalar, (uint8_t)0u, (uint8_t)9u, true, true)); + HANDLE_CODE(pack_integer(bref, per_exponent, (uint8_t)0u, (uint8_t)9u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); } @@ -10814,8 +11299,8 @@ SRSASN_CODE packet_error_rate_s::unpack(bit_ref& bref) bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(per_scalar, bref, (uint8_t)0u, (uint8_t)9u, false, true)); - HANDLE_CODE(unpack_integer(per_exponent, bref, (uint8_t)0u, (uint8_t)9u, false, true)); + HANDLE_CODE(unpack_integer(per_scalar, bref, (uint8_t)0u, (uint8_t)9u, true, true)); + HANDLE_CODE(unpack_integer(per_exponent, bref, (uint8_t)0u, (uint8_t)9u, true, true)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } @@ -10844,20 +11329,20 @@ SRSASN_CODE dynamic5_qi_descriptor_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(maximum_data_burst_volume_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, prio_level_qos, (uint8_t)1u, (uint8_t)127u, false, true)); - HANDLE_CODE(pack_integer(bref, packet_delay_budget, (uint16_t)0u, (uint16_t)1023u, false, true)); + HANDLE_CODE(pack_integer(bref, prio_level_qos, (uint8_t)1u, (uint8_t)127u, true, true)); + HANDLE_CODE(pack_integer(bref, packet_delay_budget, (uint16_t)0u, (uint16_t)1023u, true, true)); HANDLE_CODE(packet_error_rate.pack(bref)); if (five_qi_present) { - HANDLE_CODE(pack_integer(bref, five_qi, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(pack_integer(bref, five_qi, (uint16_t)0u, (uint16_t)255u, true, true)); } if (delay_crit_present) { HANDLE_CODE(delay_crit.pack(bref)); } if (averaging_win_present) { - HANDLE_CODE(pack_integer(bref, averaging_win, (uint16_t)0u, (uint16_t)4095u, false, true)); + 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, false, true)); + 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)); @@ -10874,20 +11359,20 @@ SRSASN_CODE dynamic5_qi_descriptor_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(maximum_data_burst_volume_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(prio_level_qos, bref, (uint8_t)1u, (uint8_t)127u, false, true)); - HANDLE_CODE(unpack_integer(packet_delay_budget, bref, (uint16_t)0u, (uint16_t)1023u, false, true)); + HANDLE_CODE(unpack_integer(prio_level_qos, bref, (uint8_t)1u, (uint8_t)127u, true, true)); + HANDLE_CODE(unpack_integer(packet_delay_budget, bref, (uint16_t)0u, (uint16_t)1023u, true, true)); HANDLE_CODE(packet_error_rate.unpack(bref)); if (five_qi_present) { - HANDLE_CODE(unpack_integer(five_qi, bref, (uint16_t)0u, (uint16_t)255u, false, true)); + HANDLE_CODE(unpack_integer(five_qi, bref, (uint16_t)0u, (uint16_t)255u, true, true)); } if (delay_crit_present) { HANDLE_CODE(delay_crit.unpack(bref)); } if (averaging_win_present) { - HANDLE_CODE(unpack_integer(averaging_win, bref, (uint16_t)0u, (uint16_t)4095u, false, true)); + 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, false, true)); + 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)); @@ -10935,7 +11420,7 @@ SRSASN_CODE e_rab_info_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(dlforwarding_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, true, true)); if (dlforwarding_present) { HANDLE_CODE(dlforwarding.pack(bref)); } @@ -10951,7 +11436,7 @@ SRSASN_CODE e_rab_info_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(dlforwarding_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); if (dlforwarding_present) { HANDLE_CODE(dlforwarding.unpack(bref)); } @@ -11117,16 +11602,16 @@ error_ind_ies_o::value_c error_ind_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -11150,7 +11635,47 @@ presence_e error_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -11309,37 +11834,16 @@ std::string error_ind_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 4, value, "error_ind_ies_o::value_c::types"); } -// ErrorIndication ::= SEQUENCE -SRSASN_CODE error_ind_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE error_ind_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void error_ind_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -error_ind_s::protocol_ies_l_::protocol_ies_l_() : +error_ind_ies_container::error_ind_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 error_ind_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE error_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += amf_ue_ngap_id_present ? 1 : 0; @@ -11363,7 +11867,7 @@ SRSASN_CODE error_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE error_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE error_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -11404,7 +11908,7 @@ SRSASN_CODE error_ind_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void error_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void error_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); if (amf_ue_ngap_id_present) { @@ -11426,6 +11930,29 @@ void error_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// ErrorIndication ::= SEQUENCE +SRSASN_CODE error_ind_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE error_ind_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void error_ind_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // FiveG-S-TMSI ::= SEQUENCE SRSASN_CODE five_g_s_tmsi_s::pack(bit_ref& bref) const { @@ -11484,18 +12011,18 @@ SRSASN_CODE gbr_qos_info_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(maximum_packet_loss_rate_ul_present, 1)); HANDLE_CODE(bref.pack(ie_exts_present, 1)); - HANDLE_CODE(pack_integer(bref, maximum_flow_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(pack_integer(bref, maximum_flow_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(pack_integer(bref, guaranteed_flow_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(pack_integer(bref, guaranteed_flow_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); + HANDLE_CODE(pack_integer(bref, maximum_flow_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(pack_integer(bref, maximum_flow_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(pack_integer(bref, guaranteed_flow_bit_rate_dl, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(pack_integer(bref, guaranteed_flow_bit_rate_ul, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); if (notif_ctrl_present) { HANDLE_CODE(notif_ctrl.pack(bref)); } if (maximum_packet_loss_rate_dl_present) { - HANDLE_CODE(pack_integer(bref, maximum_packet_loss_rate_dl, (uint16_t)0u, (uint16_t)1000u, false, true)); + HANDLE_CODE(pack_integer(bref, maximum_packet_loss_rate_dl, (uint16_t)0u, (uint16_t)1000u, true, true)); } if (maximum_packet_loss_rate_ul_present) { - HANDLE_CODE(pack_integer(bref, maximum_packet_loss_rate_ul, (uint16_t)0u, (uint16_t)1000u, false, true)); + HANDLE_CODE(pack_integer(bref, maximum_packet_loss_rate_ul, (uint16_t)0u, (uint16_t)1000u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -11511,18 +12038,18 @@ SRSASN_CODE gbr_qos_info_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(maximum_packet_loss_rate_ul_present, 1)); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); - HANDLE_CODE(unpack_integer(maximum_flow_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(unpack_integer(maximum_flow_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(unpack_integer(guaranteed_flow_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); - HANDLE_CODE(unpack_integer(guaranteed_flow_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, false, true)); + HANDLE_CODE(unpack_integer(maximum_flow_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(unpack_integer(maximum_flow_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(unpack_integer(guaranteed_flow_bit_rate_dl, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); + HANDLE_CODE(unpack_integer(guaranteed_flow_bit_rate_ul, bref, (uint64_t)0u, (uint64_t)4000000000000u, true, true)); if (notif_ctrl_present) { HANDLE_CODE(notif_ctrl.unpack(bref)); } if (maximum_packet_loss_rate_dl_present) { - HANDLE_CODE(unpack_integer(maximum_packet_loss_rate_dl, bref, (uint16_t)0u, (uint16_t)1000u, false, true)); + HANDLE_CODE(unpack_integer(maximum_packet_loss_rate_dl, bref, (uint16_t)0u, (uint16_t)1000u, true, true)); } if (maximum_packet_loss_rate_ul_present) { - HANDLE_CODE(unpack_integer(maximum_packet_loss_rate_ul, bref, (uint16_t)0u, (uint16_t)1000u, false, true)); + HANDLE_CODE(unpack_integer(maximum_packet_loss_rate_ul, bref, (uint16_t)0u, (uint16_t)1000u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -11588,13 +12115,13 @@ ho_cancel_ies_o::value_c ho_cancel_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -11616,7 +12143,37 @@ presence_e ho_cancel_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -11752,36 +12309,15 @@ std::string ho_cancel_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "ho_cancel_ies_o::value_c::types"); } -// HandoverCancel ::= SEQUENCE -SRSASN_CODE ho_cancel_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cancel_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_cancel_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -ho_cancel_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE ho_cancel_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_cancel_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -11792,7 +12328,7 @@ SRSASN_CODE ho_cancel_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_cancel_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_cancel_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -11832,7 +12368,7 @@ SRSASN_CODE ho_cancel_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_cancel_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_cancel_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -11844,6 +12380,29 @@ void ho_cancel_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverCancel ::= SEQUENCE +SRSASN_CODE ho_cancel_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cancel_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_cancel_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // HandoverCancelAcknowledgeIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t ho_cancel_ack_ies_o::idx_to_id(uint32_t idx) { @@ -11879,13 +12438,13 @@ ho_cancel_ack_ies_o::value_c ho_cancel_ack_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -11907,7 +12466,37 @@ presence_e ho_cancel_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -12044,36 +12633,15 @@ std::string ho_cancel_ack_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "ho_cancel_ack_ies_o::value_c::types"); } -// HandoverCancelAcknowledge ::= SEQUENCE -SRSASN_CODE ho_cancel_ack_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cancel_ack_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_cancel_ack_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ho_cancel_ack_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE ho_cancel_ack_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_cancel_ack_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -12087,7 +12655,7 @@ SRSASN_CODE ho_cancel_ack_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_cancel_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_cancel_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -12127,7 +12695,7 @@ SRSASN_CODE ho_cancel_ack_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_cancel_ack_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_cancel_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -12141,6 +12709,29 @@ void ho_cancel_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverCancelAcknowledge ::= SEQUENCE +SRSASN_CODE ho_cancel_ack_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cancel_ack_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_cancel_ack_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // QosFlowPerTNLInformation ::= SEQUENCE SRSASN_CODE qos_flow_per_tnl_info_s::pack(bit_ref& bref) const { @@ -12228,7 +12819,7 @@ 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, false, true)); + 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)); } @@ -12240,7 +12831,7 @@ SRSASN_CODE qos_flow_to_be_forwarded_item_s::unpack(bit_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, false, true)); + 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)); } @@ -12306,7 +12897,7 @@ presence_e ho_cmd_transfer_ext_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void ho_cmd_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -12336,6 +12927,57 @@ std::string ho_cmd_transfer_ext_ies_o::ext_c::types_opts::to_string() const return convert_enum_idx(options, 1, value, "ho_cmd_transfer_ext_ies_o::ext_c::types"); } +template struct protocol_ext_field_s; + +ho_cmd_transfer_ext_ies_container::ho_cmd_transfer_ext_ies_container() : + add_dl_forwarding_uptnl_info(152, crit_e::ignore) +{ +} +SRSASN_CODE ho_cmd_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += add_dl_forwarding_uptnl_info_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (add_dl_forwarding_uptnl_info_present) { + HANDLE_CODE(add_dl_forwarding_uptnl_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cmd_transfer_ext_ies_container::unpack(bit_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 152: + add_dl_forwarding_uptnl_info_present = true; + add_dl_forwarding_uptnl_info.id = c.id; + add_dl_forwarding_uptnl_info.crit = c.crit; + add_dl_forwarding_uptnl_info.ext = c.ext_value.add_dl_forwarding_uptnl_info(); + break; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void ho_cmd_transfer_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (add_dl_forwarding_uptnl_info_present) { + j.write_fieldname(""); + add_dl_forwarding_uptnl_info.to_json(j); + } + j.end_obj(); +} + // HandoverCommandTransfer ::= SEQUENCE SRSASN_CODE ho_cmd_transfer_s::pack(bit_ref& bref) const { @@ -12411,52 +13053,6 @@ void ho_cmd_transfer_s::to_json(json_writer& j) const j.end_obj(); } -ho_cmd_transfer_s::ie_exts_l_::ie_exts_l_() : add_dl_forwarding_uptnl_info(152, crit_e::ignore) {} -SRSASN_CODE ho_cmd_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += add_dl_forwarding_uptnl_info_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (add_dl_forwarding_uptnl_info_present) { - HANDLE_CODE(add_dl_forwarding_uptnl_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cmd_transfer_s::ie_exts_l_::unpack(bit_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 152: - add_dl_forwarding_uptnl_info_present = true; - add_dl_forwarding_uptnl_info.id = c.id; - add_dl_forwarding_uptnl_info.crit = c.crit; - add_dl_forwarding_uptnl_info.ext = c.ext_value.add_dl_forwarding_uptnl_info(); - break; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void ho_cmd_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (add_dl_forwarding_uptnl_info_present) { - j.write_fieldname(""); - add_dl_forwarding_uptnl_info.to_json(j); - } - j.end_obj(); -} - // HandoverPreparationUnsuccessfulTransfer ::= SEQUENCE SRSASN_CODE ho_prep_unsuccessful_transfer_s::pack(bit_ref& bref) const { @@ -12573,10 +13169,10 @@ void pdu_session_res_to_release_item_ho_cmd_s::to_json(json_writer& j) const } // HandoverType ::= ENUMERATED -std::string ho_type_opts::to_string() const +std::string handov_type_opts::to_string() const { static constexpr const char* options[] = {"intra5gs", "fivegs-to-eps", "eps-to-5gs"}; - return convert_enum_idx(options, 3, value, "ho_type_e"); + return convert_enum_idx(options, 3, value, "handov_type_e"); } // HandoverCommandIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES @@ -12624,28 +13220,28 @@ ho_cmd_ies_o::value_c ho_cmd_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 29: - ret.set_ho_type(); + ret.set(value_c::types::handov_type); break; case 39: - ret.set_nas_security_params_from_ngran(); + ret.set(value_c::types::nas_security_params_from_ngran); break; case 59: - ret.set_pdu_session_res_ho_list(); + ret.set(value_c::types::pdu_session_res_ho_list); break; case 78: - ret.set_pdu_session_res_to_release_list_ho_cmd(); + ret.set(value_c::types::pdu_session_res_to_release_list_ho_cmd); break; case 106: - ret.set_target_to_source_transparent_container(); + ret.set(value_c::types::target_to_source_transparent_container); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -12677,7 +13273,87 @@ presence_e ho_cmd_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -12709,7 +13385,7 @@ void ho_cmd_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::ho_type: + case types::handov_type: break; case types::nas_security_params_from_ngran: c.init >(); @@ -12742,8 +13418,8 @@ ho_cmd_ies_o::value_c::value_c(const ho_cmd_ies_o::value_c& other) case types::ran_ue_ngap_id: c.init(other.c.get()); break; - case types::ho_type: - c.init(other.c.get()); + case types::handov_type: + c.init(other.c.get()); break; case types::nas_security_params_from_ngran: c.init(other.c.get >()); @@ -12779,8 +13455,8 @@ ho_cmd_ies_o::value_c& ho_cmd_ies_o::value_c::operator=(const ho_cmd_ies_o::valu case types::ran_ue_ngap_id: c.set(other.c.get()); break; - case types::ho_type: - c.set(other.c.get()); + case types::handov_type: + c.set(other.c.get()); break; case types::nas_security_params_from_ngran: c.set(other.c.get >()); @@ -12815,8 +13491,8 @@ void ho_cmd_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::ho_type: - j.write_str("HandoverType", c.get().to_string()); + case types::handov_type: + j.write_str("HandoverType", c.get().to_string()); break; case types::nas_security_params_from_ngran: j.write_str("OCTET STRING", c.get >().to_string()); @@ -12857,8 +13533,8 @@ SRSASN_CODE ho_cmd_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::ho_type: - HANDLE_CODE(c.get().pack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().pack(bref)); break; case types::nas_security_params_from_ngran: HANDLE_CODE(c.get >().pack(bref)); @@ -12891,8 +13567,8 @@ SRSASN_CODE ho_cmd_ies_o::value_c::unpack(bit_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::ho_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().unpack(bref)); break; case types::nas_security_params_from_ngran: HANDLE_CODE(c.get >().unpack(bref)); @@ -12929,33 +13605,12 @@ std::string ho_cmd_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 8, value, "ho_cmd_ies_o::value_c::types"); } -// HandoverCommand ::= SEQUENCE -SRSASN_CODE ho_cmd_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_cmd_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -void ho_cmd_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ho_cmd_s::protocol_ies_l_::protocol_ies_l_() : +ho_cmd_ies_container::ho_cmd_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - ho_type(29, crit_e::reject), + handov_type(29, crit_e::reject), nas_security_params_from_ngran(39, crit_e::reject), pdu_session_res_ho_list(59, crit_e::ignore), pdu_session_res_to_release_list_ho_cmd(78, crit_e::ignore), @@ -12963,7 +13618,7 @@ ho_cmd_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE ho_cmd_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_cmd_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 5; nof_ies += nas_security_params_from_ngran_present ? 1 : 0; @@ -12973,7 +13628,7 @@ SRSASN_CODE ho_cmd_s::protocol_ies_l_::pack(bit_ref& bref) const HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ho_type.pack(bref)); + HANDLE_CODE(handov_type.pack(bref)); if (nas_security_params_from_ngran_present) { HANDLE_CODE(nas_security_params_from_ngran.pack(bref)); } @@ -12988,7 +13643,7 @@ SRSASN_CODE ho_cmd_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_cmd_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -13013,9 +13668,9 @@ SRSASN_CODE ho_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) break; case 29: nof_mandatory_ies--; - ho_type.id = c.id; - ho_type.crit = c.crit; - ho_type.value = c.value.ho_type(); + handov_type.id = c.id; + handov_type.crit = c.crit; + handov_type.value = c.value.handov_type(); break; case 39: nas_security_params_from_ngran_present = true; @@ -13058,7 +13713,7 @@ SRSASN_CODE ho_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_cmd_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_cmd_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -13066,7 +13721,7 @@ void ho_cmd_s::protocol_ies_l_::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - ho_type.to_json(j); + handov_type.to_json(j); if (nas_security_params_from_ngran_present) { j.write_fieldname(""); nas_security_params_from_ngran.to_json(j); @@ -13086,6 +13741,29 @@ void ho_cmd_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverCommand ::= SEQUENCE +SRSASN_CODE ho_cmd_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_cmd_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_cmd_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // HandoverFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t ho_fail_ies_o::idx_to_id(uint32_t idx) { @@ -13121,13 +13799,13 @@ ho_fail_ies_o::value_c ho_fail_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -13149,7 +13827,37 @@ presence_e ho_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -13295,36 +14003,15 @@ uint8_t ho_fail_ies_o::value_c::types_opts::to_number() const return convert_enum_idx(options, 1, value, "ho_fail_ies_o::value_c::types"); } -// HandoverFailure ::= SEQUENCE -SRSASN_CODE ho_fail_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_fail_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_fail_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ho_fail_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE ho_fail_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_fail_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -13338,7 +14025,7 @@ SRSASN_CODE ho_fail_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -13378,7 +14065,7 @@ SRSASN_CODE ho_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_fail_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -13392,6 +14079,29 @@ void ho_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverFailure ::= SEQUENCE +SRSASN_CODE ho_fail_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_fail_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_fail_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // UserLocationInformationEUTRA ::= SEQUENCE SRSASN_CODE user_location_info_eutra_s::pack(bit_ref& bref) const { @@ -13751,13 +14461,13 @@ ho_notify_ies_o::value_c ho_notify_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -13779,7 +14489,37 @@ presence_e ho_notify_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -13916,36 +14656,15 @@ std::string ho_notify_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 3, value, "ho_notify_ies_o::value_c::types"); } -// HandoverNotify ::= SEQUENCE -SRSASN_CODE ho_notify_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_notify_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_notify_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -ho_notify_s::protocol_ies_l_::protocol_ies_l_() : +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) { } -SRSASN_CODE ho_notify_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_notify_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -13956,7 +14675,7 @@ SRSASN_CODE ho_notify_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_notify_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_notify_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -13996,7 +14715,7 @@ SRSASN_CODE ho_notify_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_notify_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_notify_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -14008,6 +14727,29 @@ void ho_notify_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverNotify ::= SEQUENCE +SRSASN_CODE ho_notify_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_notify_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_notify_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // HandoverPreparationFailureIEs ::= OBJECT SET OF NGAP-PROTOCOL-IES uint32_t ho_prep_fail_ies_o::idx_to_id(uint32_t idx) { @@ -14045,16 +14787,16 @@ ho_prep_fail_ies_o::value_c ho_prep_fail_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -14078,7 +14820,47 @@ presence_e ho_prep_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -14237,37 +15019,16 @@ std::string ho_prep_fail_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 4, value, "ho_prep_fail_ies_o::value_c::types"); } -// HandoverPreparationFailure ::= SEQUENCE -SRSASN_CODE ho_prep_fail_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_fail_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ho_prep_fail_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ho_prep_fail_s::protocol_ies_l_::protocol_ies_l_() : +ho_prep_fail_ies_container::ho_prep_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 ho_prep_fail_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_prep_fail_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -14282,7 +15043,7 @@ SRSASN_CODE ho_prep_fail_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_prep_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -14328,7 +15089,7 @@ SRSASN_CODE ho_prep_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_prep_fail_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_prep_fail_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -14344,6 +15105,29 @@ void ho_prep_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverPreparationFailure ::= SEQUENCE +SRSASN_CODE ho_prep_fail_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_fail_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ho_prep_fail_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // NonDynamic5QIDescriptor ::= SEQUENCE SRSASN_CODE non_dynamic5_qi_descriptor_s::pack(bit_ref& bref) const { @@ -14353,15 +15137,15 @@ SRSASN_CODE non_dynamic5_qi_descriptor_s::pack(bit_ref& bref) const 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, false, true)); + 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, false, true)); + 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, false, true)); + 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, false, true)); + 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)); @@ -14377,15 +15161,15 @@ SRSASN_CODE non_dynamic5_qi_descriptor_s::unpack(bit_ref& bref) 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, false, true)); + 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, false, true)); + 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, false, true)); + 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, false, true)); + 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)); @@ -14683,10 +15467,10 @@ SRSASN_CODE qos_flow_setup_request_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(e_rab_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, false, true)); + 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 (e_rab_id_present) { - HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -14700,10 +15484,10 @@ SRSASN_CODE qos_flow_setup_request_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(e_rab_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, false, true)); + 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 (e_rab_id_present) { - HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -14775,7 +15559,7 @@ presence_e security_ind_ext_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void security_ind_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -14852,9 +15636,9 @@ SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::pack(bit_ref& bref) const 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, false, true)); + 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, false, true)); + 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)); } @@ -14867,9 +15651,9 @@ SRSASN_CODE pdu_session_aggregate_maximum_bit_rate_s::unpack(bit_ref& bref) 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, false, true)); + 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, false, true)); + 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)); } @@ -14895,6 +15679,57 @@ std::string pdu_session_type_opts::to_string() const return convert_enum_idx(options, 5, value, "pdu_session_type_e"); } +template struct protocol_ext_field_s; + +security_ind_ext_ies_container::security_ind_ext_ies_container() : + maximum_integrity_protected_data_rate_dl(151, crit_e::ignore) +{ +} +SRSASN_CODE security_ind_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += maximum_integrity_protected_data_rate_dl_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (maximum_integrity_protected_data_rate_dl_present) { + HANDLE_CODE(maximum_integrity_protected_data_rate_dl.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE security_ind_ext_ies_container::unpack(bit_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 151: + maximum_integrity_protected_data_rate_dl_present = true; + maximum_integrity_protected_data_rate_dl.id = c.id; + maximum_integrity_protected_data_rate_dl.crit = c.crit; + maximum_integrity_protected_data_rate_dl.ext = c.ext_value.maximum_integrity_protected_data_rate_dl(); + break; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void security_ind_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (maximum_integrity_protected_data_rate_dl_present) { + j.write_fieldname(""); + maximum_integrity_protected_data_rate_dl.to_json(j); + } + j.end_obj(); +} + // SecurityIndication ::= SEQUENCE SRSASN_CODE security_ind_s::pack(bit_ref& bref) const { @@ -14945,52 +15780,6 @@ void security_ind_s::to_json(json_writer& j) const j.end_obj(); } -security_ind_s::ie_exts_l_::ie_exts_l_() : maximum_integrity_protected_data_rate_dl(151, crit_e::ignore) {} -SRSASN_CODE security_ind_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += maximum_integrity_protected_data_rate_dl_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (maximum_integrity_protected_data_rate_dl_present) { - HANDLE_CODE(maximum_integrity_protected_data_rate_dl.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE security_ind_s::ie_exts_l_::unpack(bit_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 151: - maximum_integrity_protected_data_rate_dl_present = true; - maximum_integrity_protected_data_rate_dl.id = c.id; - maximum_integrity_protected_data_rate_dl.crit = c.crit; - maximum_integrity_protected_data_rate_dl.ext = c.ext_value.maximum_integrity_protected_data_rate_dl(); - break; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void security_ind_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (maximum_integrity_protected_data_rate_dl_present) { - j.write_fieldname(""); - maximum_integrity_protected_data_rate_dl.to_json(j); - } - 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) { @@ -15037,28 +15826,28 @@ pdu_session_res_setup_request_transfer_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 130: - ret.set_pdu_session_aggregate_maximum_bit_rate(); + ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); break; case 139: - ret.set_ul_ngu_up_tnl_info(); + ret.set(value_c::types::ul_ngu_up_tnl_info); break; case 126: - ret.set_add_ul_ngu_up_tnl_info(); + ret.set(value_c::types::add_ul_ngu_up_tnl_info); break; case 127: - ret.set_data_forwarding_not_possible(); + ret.set(value_c::types::data_forwarding_not_possible); break; case 134: - ret.set_pdu_session_type(); + ret.set(value_c::types::pdu_session_type); break; case 138: - ret.set_security_ind(); + ret.set(value_c::types::security_ind); break; case 129: - ret.set_network_instance(); + ret.set(value_c::types::network_instance); break; case 136: - ret.set_qos_flow_setup_request_list(); + ret.set(value_c::types::qos_flow_setup_request_list); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -15090,7 +15879,92 @@ presence_e pdu_session_res_setup_request_transfer_ies_o::get_presence(const uint return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -15287,7 +16161,7 @@ SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::pack(bit_ref& HANDLE_CODE(c.get().pack(bref)); break; case types::network_instance: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, false, true)); + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)1u, (uint16_t)256u, true, true)); break; case types::qos_flow_setup_request_list: HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 64, true)); @@ -15321,7 +16195,7 @@ SRSASN_CODE pdu_session_res_setup_request_transfer_ies_o::value_c::unpack(bit_re HANDLE_CODE(c.get().unpack(bref)); break; case types::network_instance: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, true, true)); break; case types::qos_flow_setup_request_list: HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 64, true)); @@ -15356,30 +16230,9 @@ uint8_t pdu_session_res_setup_request_transfer_ies_o::value_c::types_opts::to_nu return 0; } -// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_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_setup_request_transfer_s::unpack(bit_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 -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -pdu_session_res_setup_request_transfer_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -15390,7 +16243,7 @@ pdu_session_res_setup_request_transfer_s::protocol_ies_l_::protocol_ies_l_() : qos_flow_setup_request_list(136, crit_e::reject) { } -SRSASN_CODE pdu_session_res_setup_request_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += pdu_session_aggregate_maximum_bit_rate_present ? 1 : 0; @@ -15421,7 +16274,7 @@ SRSASN_CODE pdu_session_res_setup_request_transfer_s::protocol_ies_l_::pack(bit_ return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -15491,7 +16344,7 @@ SRSASN_CODE pdu_session_res_setup_request_transfer_s::protocol_ies_l_::unpack(bi } return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_transfer_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_setup_request_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); if (pdu_session_aggregate_maximum_bit_rate_present) { @@ -15523,6 +16376,29 @@ void pdu_session_res_setup_request_transfer_s::protocol_ies_l_::to_json(json_wri j.end_obj(); } +// PDUSessionResourceSetupRequestTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_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_setup_request_transfer_s::unpack(bit_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 +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // EventType ::= ENUMERATED std::string event_type_opts::to_string() const { @@ -15611,7 +16487,7 @@ SRSASN_CODE location_report_request_type_s::pack(bit_ref& bref) const 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, false, true)); + 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)); @@ -15632,7 +16508,7 @@ SRSASN_CODE location_report_request_type_s::unpack(bit_ref& bref) 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, false, true)); + 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)); @@ -15882,61 +16758,61 @@ ho_request_ies_o::value_c ho_request_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 29: - ret.set_ho_type(); + ret.set(value_c::types::handov_type); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 110: - ret.set_ue_aggregate_maximum_bit_rate(); + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; case 18: - ret.set_core_network_assist_info(); + ret.set(value_c::types::core_network_assist_info); break; case 119: - ret.set_ue_security_cap(); + ret.set(value_c::types::ue_security_cap); break; case 93: - ret.set_security_context(); + ret.set(value_c::types::security_context); break; case 41: - ret.set_new_security_context_ind(); + ret.set(value_c::types::new_security_context_ind); break; case 37: - ret.set_nasc(); + ret.set(value_c::types::nasc); break; case 73: - ret.set_pdu_session_res_setup_list_ho_req(); + ret.set(value_c::types::pdu_session_res_setup_list_ho_req); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; case 108: - ret.set_trace_activation(); + ret.set(value_c::types::trace_activation); break; case 34: - ret.set_masked_imeisv(); + ret.set(value_c::types::masked_imeisv); break; case 101: - ret.set_source_to_target_transparent_container(); + ret.set(value_c::types::source_to_target_transparent_container); break; case 36: - ret.set_mob_restrict_list(); + ret.set(value_c::types::mob_restrict_list); break; case 33: - ret.set_location_report_request_type(); + ret.set(value_c::types::location_report_request_type); break; case 91: - ret.set_rrc_inactive_transition_report_request(); + ret.set(value_c::types::rrc_inactive_transition_report_request); break; case 28: - ret.set_guami(); + ret.set(value_c::types::guami); break; case 146: - ret.set_redirection_voice_fallback(); + ret.set(value_c::types::redirection_voice_fallback); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -15990,7 +16866,198 @@ presence_e ho_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() +{ + assert_choice_type("INTEGER (0..1099511627775)", 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_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); + return c.get(); +} +core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type("CoreNetworkAssistanceInformation", 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(); +} +security_context_s& ho_request_ies_o::value_c::security_context() +{ + assert_choice_type("SecurityContext", type_.to_string(), "Value"); + return c.get(); +} +new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() +{ + assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); + return c.get(); +} +unbounded_octstring& ho_request_ies_o::value_c::nasc() +{ + assert_choice_type("OCTET STRING", type_.to_string(), "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("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); + return c.get(); +} +allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() +{ + assert_choice_type("AllowedNSSAI", 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(); +} +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 >(); +} +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 >(); +} +mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() +{ + assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); + return c.get(); +} +location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() +{ + assert_choice_type("LocationReportingRequestType", type_.to_string(), "Value"); + return c.get(); +} +rrc_inactive_transition_report_request_e& ho_request_ies_o::value_c::rrc_inactive_transition_report_request() +{ + assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); + return c.get(); +} +guami_s& ho_request_ies_o::value_c::guami() +{ + assert_choice_type("GUAMI", type_.to_string(), "Value"); + return c.get(); +} +redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() +{ + assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& ho_request_ies_o::value_c::amf_ue_ngap_id() const +{ + assert_choice_type("INTEGER (0..1099511627775)", 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_bit_rate_s& ho_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type("UEAggregateMaximumBitRate", type_.to_string(), "Value"); + return c.get(); +} +const core_network_assist_info_s& ho_request_ies_o::value_c::core_network_assist_info() const +{ + assert_choice_type("CoreNetworkAssistanceInformation", 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 security_context_s& ho_request_ies_o::value_c::security_context() const +{ + assert_choice_type("SecurityContext", type_.to_string(), "Value"); + return c.get(); +} +const new_security_context_ind_e& ho_request_ies_o::value_c::new_security_context_ind() const +{ + assert_choice_type("NewSecurityContextInd", type_.to_string(), "Value"); + return c.get(); +} +const unbounded_octstring& ho_request_ies_o::value_c::nasc() const +{ + assert_choice_type("OCTET STRING", type_.to_string(), "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("PDUSessionResourceSetupListHOReq", type_.to_string(), "Value"); + return c.get(); +} +const allowed_nssai_l& ho_request_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type("AllowedNSSAI", 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 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 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 mob_restrict_list_s& ho_request_ies_o::value_c::mob_restrict_list() const +{ + assert_choice_type("MobilityRestrictionList", type_.to_string(), "Value"); + return c.get(); +} +const location_report_request_type_s& ho_request_ies_o::value_c::location_report_request_type() const +{ + assert_choice_type("LocationReportingRequestType", type_.to_string(), "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("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); + return c.get(); +} +const guami_s& ho_request_ies_o::value_c::guami() const +{ + assert_choice_type("GUAMI", type_.to_string(), "Value"); + return c.get(); +} +const redirection_voice_fallback_e& ho_request_ies_o::value_c::redirection_voice_fallback() const +{ + assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); + return c.get(); +} void ho_request_ies_o::value_c::destroy_() { switch (type_) { @@ -16047,7 +17114,7 @@ void ho_request_ies_o::value_c::set(types::options e) switch (type_) { case types::amf_ue_ngap_id: break; - case types::ho_type: + case types::handov_type: break; case types::cause: c.init(); @@ -16110,8 +17177,8 @@ ho_request_ies_o::value_c::value_c(const ho_request_ies_o::value_c& other) case types::amf_ue_ngap_id: c.init(other.c.get()); break; - case types::ho_type: - c.init(other.c.get()); + case types::handov_type: + c.init(other.c.get()); break; case types::cause: c.init(other.c.get()); @@ -16180,8 +17247,8 @@ ho_request_ies_o::value_c& ho_request_ies_o::value_c::operator=(const ho_request case types::amf_ue_ngap_id: c.set(other.c.get()); break; - case types::ho_type: - c.set(other.c.get()); + case types::handov_type: + c.set(other.c.get()); break; case types::cause: c.set(other.c.get()); @@ -16249,8 +17316,8 @@ void ho_request_ies_o::value_c::to_json(json_writer& j) const case types::amf_ue_ngap_id: j.write_int("INTEGER (0..1099511627775)", c.get()); break; - case types::ho_type: - j.write_str("HandoverType", c.get().to_string()); + case types::handov_type: + j.write_str("HandoverType", c.get().to_string()); break; case types::cause: j.write_fieldname("Cause"); @@ -16332,8 +17399,8 @@ SRSASN_CODE ho_request_ies_o::value_c::pack(bit_ref& bref) const case types::amf_ue_ngap_id: HANDLE_CODE(pack_integer(bref, c.get(), (uint64_t)0u, (uint64_t)1099511627775u, false, true)); break; - case types::ho_type: - HANDLE_CODE(c.get().pack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().pack(bref)); break; case types::cause: HANDLE_CODE(c.get().pack(bref)); @@ -16399,8 +17466,8 @@ SRSASN_CODE ho_request_ies_o::value_c::unpack(bit_ref& 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::ho_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().unpack(bref)); break; case types::cause: HANDLE_CODE(c.get().unpack(bref)); @@ -16496,32 +17563,11 @@ uint8_t ho_request_ies_o::value_c::types_opts::to_number() const return 0; } -// HandoverRequest ::= SEQUENCE -SRSASN_CODE ho_request_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_request_s::unpack(bit_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 -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ho_request_s::protocol_ies_l_::protocol_ies_l_() : +ho_request_ies_container::ho_request_ies_container() : amf_ue_ngap_id(10, crit_e::reject), - ho_type(29, 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), @@ -16541,7 +17587,7 @@ ho_request_s::protocol_ies_l_::protocol_ies_l_() : redirection_voice_fallback(146, crit_e::ignore) { } -SRSASN_CODE ho_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 10; nof_ies += core_network_assist_info_present ? 1 : 0; @@ -16556,7 +17602,7 @@ SRSASN_CODE ho_request_s::protocol_ies_l_::pack(bit_ref& bref) const pack_length(bref, nof_ies, 0u, 65535u, true); HANDLE_CODE(amf_ue_ngap_id.pack(bref)); - HANDLE_CODE(ho_type.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) { @@ -16595,7 +17641,7 @@ SRSASN_CODE ho_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -16614,9 +17660,9 @@ SRSASN_CODE ho_request_s::protocol_ies_l_::unpack(bit_ref& bref) break; case 29: nof_mandatory_ies--; - ho_type.id = c.id; - ho_type.crit = c.crit; - ho_type.value = c.value.ho_type(); + handov_type.id = c.id; + handov_type.crit = c.crit; + handov_type.value = c.value.handov_type(); break; case 15: nof_mandatory_ies--; @@ -16731,13 +17777,13 @@ SRSASN_CODE ho_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_request_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_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(""); - ho_type.to_json(j); + handov_type.to_json(j); j.write_fieldname(""); cause.to_json(j); j.write_fieldname(""); @@ -16793,6 +17839,29 @@ void ho_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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 ho_request_s::unpack(bit_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 +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // ConfidentialityProtectionResult ::= ENUMERATED std::string confidentiality_protection_result_opts::to_string() const { @@ -16813,7 +17882,7 @@ SRSASN_CODE qos_flow_with_cause_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, false, true)); + 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)); @@ -16826,7 +17895,7 @@ SRSASN_CODE qos_flow_with_cause_item_s::unpack(bit_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, false, true)); + 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)); @@ -16895,7 +17964,7 @@ presence_e ho_request_ack_transfer_ext_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void ho_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -16964,6 +18033,57 @@ void security_result_s::to_json(json_writer& j) const j.end_obj(); } +template struct protocol_ext_field_s; + +ho_request_ack_transfer_ext_ies_container::ho_request_ack_transfer_ext_ies_container() : + add_dluptnl_info_for_ho_list(153, crit_e::ignore) +{ +} +SRSASN_CODE ho_request_ack_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += add_dluptnl_info_for_ho_list_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (add_dluptnl_info_for_ho_list_present) { + HANDLE_CODE(add_dluptnl_info_for_ho_list.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_request_ack_transfer_ext_ies_container::unpack(bit_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 153: + add_dluptnl_info_for_ho_list_present = true; + add_dluptnl_info_for_ho_list.id = c.id; + add_dluptnl_info_for_ho_list.crit = c.crit; + add_dluptnl_info_for_ho_list.ext = c.ext_value.add_dluptnl_info_for_ho_list(); + break; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void ho_request_ack_transfer_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (add_dluptnl_info_for_ho_list_present) { + j.write_fieldname(""); + add_dluptnl_info_for_ho_list.to_json(j); + } + j.end_obj(); +} + // HandoverRequestAcknowledgeTransfer ::= SEQUENCE SRSASN_CODE ho_request_ack_transfer_s::pack(bit_ref& bref) const { @@ -17062,52 +18182,6 @@ void ho_request_ack_transfer_s::to_json(json_writer& j) const j.end_obj(); } -ho_request_ack_transfer_s::ie_exts_l_::ie_exts_l_() : add_dluptnl_info_for_ho_list(153, crit_e::ignore) {} -SRSASN_CODE ho_request_ack_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += add_dluptnl_info_for_ho_list_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (add_dluptnl_info_for_ho_list_present) { - HANDLE_CODE(add_dluptnl_info_for_ho_list.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_request_ack_transfer_s::ie_exts_l_::unpack(bit_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 153: - add_dluptnl_info_for_ho_list_present = true; - add_dluptnl_info_for_ho_list.id = c.id; - add_dluptnl_info_for_ho_list.crit = c.crit; - add_dluptnl_info_for_ho_list.ext = c.ext_value.add_dluptnl_info_for_ho_list(); - break; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void ho_request_ack_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (add_dluptnl_info_for_ho_list_present) { - j.write_fieldname(""); - add_dluptnl_info_for_ho_list.to_json(j); - } - j.end_obj(); -} - // HandoverResourceAllocationUnsuccessfulTransfer ::= SEQUENCE SRSASN_CODE ho_res_alloc_unsuccessful_transfer_s::pack(bit_ref& bref) const { @@ -17276,22 +18350,22 @@ 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_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 53: - ret.set_pdu_session_res_admitted_list(); + ret.set(value_c::types::pdu_session_res_admitted_list); break; case 56: - ret.set_pdu_session_res_failed_to_setup_list_ho_ack(); + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ho_ack); break; case 106: - ret.set_target_to_source_transparent_container(); + ret.set(value_c::types::target_to_source_transparent_container); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -17319,7 +18393,69 @@ presence_e ho_request_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("OCTET 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(); +} +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_) { @@ -17531,30 +18667,9 @@ std::string ho_request_ack_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 6, value, "ho_request_ack_ies_o::value_c::types"); } -// HandoverRequestAcknowledge ::= SEQUENCE -SRSASN_CODE ho_request_ack_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(bit_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 -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -ho_request_ack_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -17563,7 +18678,7 @@ ho_request_ack_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE ho_request_ack_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_request_ack_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; @@ -17583,7 +18698,7 @@ SRSASN_CODE ho_request_ack_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_request_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_request_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -17641,7 +18756,7 @@ SRSASN_CODE ho_request_ack_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_request_ack_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_request_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -17663,6 +18778,29 @@ void ho_request_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// HandoverRequestAcknowledge ::= SEQUENCE +SRSASN_CODE ho_request_ack_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(bit_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 +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // DirectForwardingPathAvailability ::= ENUMERATED std::string direct_forwarding_path_availability_opts::to_string() const { @@ -17987,28 +19125,28 @@ 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_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 29: - ret.set_ho_type(); + ret.set(value_c::types::handov_type); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 105: - ret.set_target_id(); + ret.set(value_c::types::target_id); break; case 22: - ret.set_direct_forwarding_path_availability(); + ret.set(value_c::types::direct_forwarding_path_availability); break; case 61: - ret.set_pdu_session_res_list_ho_rqd(); + ret.set(value_c::types::pdu_session_res_list_ho_rqd); break; case 101: - ret.set_source_to_target_transparent_container(); + ret.set(value_c::types::source_to_target_transparent_container); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -18040,7 +19178,87 @@ presence_e ho_required_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -18069,7 +19287,7 @@ void ho_required_ies_o::value_c::set(types::options e) break; case types::ran_ue_ngap_id: break; - case types::ho_type: + case types::handov_type: break; case types::cause: c.init(); @@ -18101,8 +19319,8 @@ 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::ho_type: - c.init(other.c.get()); + case types::handov_type: + c.init(other.c.get()); break; case types::cause: c.init(other.c.get()); @@ -18138,8 +19356,8 @@ 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::ho_type: - c.set(other.c.get()); + case types::handov_type: + c.set(other.c.get()); break; case types::cause: c.set(other.c.get()); @@ -18174,8 +19392,8 @@ void ho_required_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::ho_type: - j.write_str("HandoverType", c.get().to_string()); + case types::handov_type: + j.write_str("HandoverType", c.get().to_string()); break; case types::cause: j.write_fieldname("Cause"); @@ -18213,8 +19431,8 @@ 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::ho_type: - HANDLE_CODE(c.get().pack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().pack(bref)); break; case types::cause: HANDLE_CODE(c.get().pack(bref)); @@ -18247,8 +19465,8 @@ SRSASN_CODE ho_required_ies_o::value_c::unpack(bit_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::ho_type: - HANDLE_CODE(c.get().unpack(bref)); + case types::handov_type: + HANDLE_CODE(c.get().unpack(bref)); break; case types::cause: HANDLE_CODE(c.get().unpack(bref)); @@ -18285,33 +19503,12 @@ std::string ho_required_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 8, value, "ho_required_ies_o::value_c::types"); } -// HandoverRequired ::= SEQUENCE -SRSASN_CODE ho_required_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_required_s::unpack(bit_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(); -} - -ho_required_s::protocol_ies_l_::protocol_ies_l_() : +ho_required_ies_container::ho_required_ies_container() : amf_ue_ngap_id(10, crit_e::reject), ran_ue_ngap_id(85, crit_e::reject), - ho_type(29, 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), @@ -18319,7 +19516,7 @@ ho_required_s::protocol_ies_l_::protocol_ies_l_() : source_to_target_transparent_container(101, crit_e::reject) { } -SRSASN_CODE ho_required_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ho_required_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 7; nof_ies += direct_forwarding_path_availability_present ? 1 : 0; @@ -18327,7 +19524,7 @@ SRSASN_CODE ho_required_s::protocol_ies_l_::pack(bit_ref& bref) const HANDLE_CODE(amf_ue_ngap_id.pack(bref)); HANDLE_CODE(ran_ue_ngap_id.pack(bref)); - HANDLE_CODE(ho_type.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) { @@ -18338,7 +19535,7 @@ SRSASN_CODE ho_required_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ho_required_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ho_required_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -18363,9 +19560,9 @@ SRSASN_CODE ho_required_s::protocol_ies_l_::unpack(bit_ref& bref) break; case 29: nof_mandatory_ies--; - ho_type.id = c.id; - ho_type.crit = c.crit; - ho_type.value = c.value.ho_type(); + handov_type.id = c.id; + handov_type.crit = c.crit; + handov_type.value = c.value.handov_type(); break; case 15: nof_mandatory_ies--; @@ -18408,7 +19605,7 @@ SRSASN_CODE ho_required_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ho_required_s::protocol_ies_l_::to_json(json_writer& j) const +void ho_required_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -18416,7 +19613,7 @@ void ho_required_s::protocol_ies_l_::to_json(json_writer& j) const j.write_fieldname(""); ran_ue_ngap_id.to_json(j); j.write_fieldname(""); - ho_type.to_json(j); + handov_type.to_json(j); j.write_fieldname(""); cause.to_json(j); j.write_fieldname(""); @@ -18432,6 +19629,29 @@ void ho_required_s::protocol_ies_l_::to_json(json_writer& j) const 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(bit_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 { @@ -18677,19 +19897,19 @@ init_context_setup_fail_ies_o::value_c init_context_setup_fail_ies_o::get_value( value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 132: - ret.set_pdu_session_res_failed_to_setup_list_cxt_fail(); + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_fail); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -18715,7 +19935,59 @@ presence_e init_context_setup_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -18903,30 +20175,9 @@ std::string init_context_setup_fail_ies_o::value_c::types_opts::to_string() cons return convert_enum_idx(options, 5, value, "init_context_setup_fail_ies_o::value_c::types"); } -// 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 init_context_setup_fail_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -void init_context_setup_fail_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -init_context_setup_fail_s::protocol_ies_l_::protocol_ies_l_() : +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_failed_to_setup_list_cxt_fail(132, crit_e::ignore), @@ -18934,7 +20185,7 @@ init_context_setup_fail_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE init_context_setup_fail_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_fail_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; @@ -18953,7 +20204,7 @@ SRSASN_CODE init_context_setup_fail_s::protocol_ies_l_::pack(bit_ref& bref) cons return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE init_context_setup_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -19005,7 +20256,7 @@ SRSASN_CODE init_context_setup_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void init_context_setup_fail_s::protocol_ies_l_::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(""); @@ -19025,6 +20276,29 @@ void init_context_setup_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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 init_context_setup_fail_s::unpack(bit_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 +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // PDUSessionResourceSetupItemCxtReq ::= SEQUENCE SRSASN_CODE pdu_session_res_setup_item_cxt_req_s::pack(bit_ref& bref) const { @@ -19205,64 +20479,64 @@ init_context_setup_request_ies_o::value_c init_context_setup_request_ies_o::get_ value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 48: - ret.set_old_amf(); + ret.set(value_c::types::old_amf); break; case 110: - ret.set_ue_aggregate_maximum_bit_rate(); + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; case 18: - ret.set_core_network_assist_info(); + ret.set(value_c::types::core_network_assist_info); break; case 28: - ret.set_guami(); + ret.set(value_c::types::guami); break; case 71: - ret.set_pdu_session_res_setup_list_cxt_req(); + ret.set(value_c::types::pdu_session_res_setup_list_cxt_req); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; case 119: - ret.set_ue_security_cap(); + ret.set(value_c::types::ue_security_cap); break; case 94: - ret.set_security_key(); + ret.set(value_c::types::security_key); break; case 108: - ret.set_trace_activation(); + ret.set(value_c::types::trace_activation); break; case 36: - ret.set_mob_restrict_list(); + ret.set(value_c::types::mob_restrict_list); break; case 117: - ret.set_ue_radio_cap(); + ret.set(value_c::types::ue_radio_cap); break; case 31: - ret.set_idx_to_rfsp(); + ret.set(value_c::types::idx_to_rfsp); break; case 34: - ret.set_masked_imeisv(); + ret.set(value_c::types::masked_imeisv); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 24: - ret.set_emergency_fallback_ind(); + ret.set(value_c::types::emergency_fallback_ind); break; case 91: - ret.set_rrc_inactive_transition_report_request(); + ret.set(value_c::types::rrc_inactive_transition_report_request); break; case 118: - ret.set_ue_radio_cap_for_paging(); + ret.set(value_c::types::ue_radio_cap_for_paging); break; case 146: - ret.set_redirection_voice_fallback(); + ret.set(value_c::types::redirection_voice_fallback); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -19318,7 +20592,210 @@ presence_e init_context_setup_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("PrintableString", type_.to_string(), "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("UEAggregateMaximumBitRate", type_.to_string(), "Value"); + return c.get(); +} +core_network_assist_info_s& init_context_setup_request_ies_o::value_c::core_network_assist_info() +{ + 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(); +} +redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() +{ + assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& init_context_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& init_context_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 printable_string<1, 150, true, true>& init_context_setup_request_ies_o::value_c::old_amf() const +{ + assert_choice_type("PrintableString", type_.to_string(), "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("UEAggregateMaximumBitRate", type_.to_string(), "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("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); + return c.get(); +} +const guami_s& init_context_setup_request_ies_o::value_c::guami() const +{ + assert_choice_type("GUAMI", type_.to_string(), "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("PDUSessionResourceSetupListCxtReq", type_.to_string(), "Value"); + return c.get(); +} +const allowed_nssai_l& init_context_setup_request_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type("AllowedNSSAI", 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 mob_restrict_list_s& init_context_setup_request_ies_o::value_c::mob_restrict_list() const +{ + assert_choice_type("MobilityRestrictionList", 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::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 +{ + assert_choice_type("BIT STRING", type_.to_string(), "Value"); + return c.get >(); +} +const unbounded_octstring& init_context_setup_request_ies_o::value_c::nas_pdu() const +{ + assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + return c.get >(); +} +const emergency_fallback_ind_s& init_context_setup_request_ies_o::value_c::emergency_fallback_ind() const +{ + assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "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("RRCInactiveTransitionReportRequest", type_.to_string(), "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("UERadioCapabilityForPaging", type_.to_string(), "Value"); + return c.get(); +} +const redirection_voice_fallback_e& init_context_setup_request_ies_o::value_c::redirection_voice_fallback() const +{ + assert_choice_type("RedirectionVoiceFallback", type_.to_string(), "Value"); + return c.get(); +} void init_context_setup_request_ies_o::value_c::destroy_() { switch (type_) { @@ -19712,7 +21189,7 @@ SRSASN_CODE init_context_setup_request_ies_o::value_c::pack(bit_ref& bref) const 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, false, true)); + 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))); @@ -19782,7 +21259,7 @@ SRSASN_CODE init_context_setup_request_ies_o::value_c::unpack(bit_ref& bref) 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, false, true)); + 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))); @@ -19834,30 +21311,9 @@ std::string init_context_setup_request_ies_o::value_c::types_opts::to_string() c return convert_enum_idx(options, 20, value, "init_context_setup_request_ies_o::value_c::types"); } -// InitialContextSetupRequest ::= SEQUENCE -SRSASN_CODE init_context_setup_request_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(protocol_ies.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE init_context_setup_request_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void init_context_setup_request_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -init_context_setup_request_s::protocol_ies_l_::protocol_ies_l_() : +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), old_amf(48, crit_e::reject), @@ -19880,7 +21336,7 @@ init_context_setup_request_s::protocol_ies_l_::protocol_ies_l_() : redirection_voice_fallback(146, crit_e::ignore) { } -SRSASN_CODE init_context_setup_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 6; nof_ies += old_amf_present ? 1 : 0; @@ -19950,7 +21406,7 @@ SRSASN_CODE init_context_setup_request_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE init_context_setup_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -20092,7 +21548,7 @@ SRSASN_CODE init_context_setup_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void init_context_setup_request_s::protocol_ies_l_::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(""); @@ -20166,6 +21622,29 @@ void init_context_setup_request_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } +// InitialContextSetupRequest ::= SEQUENCE +SRSASN_CODE init_context_setup_request_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE init_context_setup_request_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void init_context_setup_request_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 { @@ -20362,19 +21841,19 @@ init_context_setup_resp_ies_o::value_c init_context_setup_resp_ies_o::get_value( value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 72: - ret.set_pdu_session_res_setup_list_cxt_res(); + ret.set(value_c::types::pdu_session_res_setup_list_cxt_res); break; case 55: - ret.set_pdu_session_res_failed_to_setup_list_cxt_res(); + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_cxt_res); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -20400,7 +21879,60 @@ presence_e init_context_setup_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -20591,30 +22123,9 @@ std::string init_context_setup_resp_ies_o::value_c::types_opts::to_string() cons return convert_enum_idx(options, 5, value, "init_context_setup_resp_ies_o::value_c::types"); } -// 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_resp_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void init_context_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 protocol_ie_field_s; -init_context_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -20622,7 +22133,7 @@ init_context_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE init_context_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE init_context_setup_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += pdu_session_res_setup_list_cxt_res_present ? 1 : 0; @@ -20644,7 +22155,7 @@ SRSASN_CODE init_context_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) cons return SRSASN_SUCCESS; } -SRSASN_CODE init_context_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE init_context_setup_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -20696,7 +22207,7 @@ SRSASN_CODE init_context_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void init_context_setup_resp_s::protocol_ies_l_::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(""); @@ -20718,6 +22229,29 @@ void init_context_setup_resp_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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_resp_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void init_context_setup_resp_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // RRCEstablishmentCause ::= ENUMERATED std::string rrcestablishment_cause_opts::to_string() const { @@ -20787,28 +22321,28 @@ init_ue_msg_ies_o::value_c init_ue_msg_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 90: - ret.set_rrcestablishment_cause(); + ret.set(value_c::types::rrcestablishment_cause); break; case 26: - ret.set_five_g_s_tmsi(); + ret.set(value_c::types::five_g_s_tmsi); break; case 3: - ret.set_amf_set_id(); + ret.set(value_c::types::amf_set_id); break; case 112: - ret.set_ue_context_request(); + ret.set(value_c::types::ue_context_request); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -20840,7 +22374,87 @@ presence_e init_ue_msg_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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 +{ + assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + return c.get >(); +} +const user_location_info_c& init_ue_msg_ies_o::value_c::user_location_info() const +{ + assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); + return c.get(); +} +const rrcestablishment_cause_e& init_ue_msg_ies_o::value_c::rrcestablishment_cause() const +{ + assert_choice_type("RRCEstablishmentCause", type_.to_string(), "Value"); + return c.get(); +} +const five_g_s_tmsi_s& init_ue_msg_ies_o::value_c::five_g_s_tmsi() const +{ + assert_choice_type("FiveG-S-TMSI", type_.to_string(), "Value"); + return c.get(); +} +const fixed_bitstring<10, false, true>& init_ue_msg_ies_o::value_c::amf_set_id() const +{ + assert_choice_type("BIT STRING", type_.to_string(), "Value"); + return c.get >(); +} +const ue_context_request_e& init_ue_msg_ies_o::value_c::ue_context_request() const +{ + assert_choice_type("UEContextRequest", type_.to_string(), "Value"); + return c.get(); +} +const allowed_nssai_l& init_ue_msg_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); + return c.get(); +} void init_ue_msg_ies_o::value_c::destroy_() { switch (type_) { @@ -21094,38 +22708,9 @@ uint8_t init_ue_msg_ies_o::value_c::types_opts::to_number() const return convert_enum_idx(options, 1, value, "init_ue_msg_ies_o::value_c::types"); } -// 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_ue_msg_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - bref.align_bytes(); +template struct protocol_ie_field_s; - return SRSASN_SUCCESS; -} -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(); - j.end_obj(); - j.end_array(); -} - -init_ue_msg_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -21136,7 +22721,7 @@ init_ue_msg_s::protocol_ies_l_::protocol_ies_l_() : allowed_nssai(0, crit_e::reject) { } -SRSASN_CODE init_ue_msg_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE init_ue_msg_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; nof_ies += five_g_s_tmsi_present ? 1 : 0; @@ -21164,7 +22749,7 @@ SRSASN_CODE init_ue_msg_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE init_ue_msg_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE init_ue_msg_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -21234,7 +22819,7 @@ SRSASN_CODE init_ue_msg_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void init_ue_msg_s::protocol_ies_l_::to_json(json_writer& j) const +void init_ue_msg_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -21264,6 +22849,37 @@ void init_ue_msg_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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_ue_msg_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + bref.align_bytes(); + + return SRSASN_SUCCESS; +} +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(); + j.end_obj(); + j.end_array(); +} + // VolumeTimedReport-Item ::= SEQUENCE SRSASN_CODE volume_timed_report_item_s::pack(bit_ref& bref) const { @@ -21315,7 +22931,7 @@ SRSASN_CODE qo_sflows_usage_report_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, false, true)); + 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) { @@ -21329,7 +22945,7 @@ SRSASN_CODE qo_sflows_usage_report_item_s::unpack(bit_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, false, true)); + 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) { @@ -21425,12 +23041,12 @@ SRSASN_CODE qos_flow_add_or_modify_request_item_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(e_rab_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, false, true)); + 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 (e_rab_id_present) { - HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(pack_integer(bref, e_rab_id, (uint8_t)0u, (uint8_t)15u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.pack(bref)); @@ -21445,12 +23061,12 @@ SRSASN_CODE qos_flow_add_or_modify_request_item_s::unpack(bit_ref& bref) HANDLE_CODE(bref.unpack(e_rab_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, false, true)); + 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 (e_rab_id_present) { - HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, false, true)); + HANDLE_CODE(unpack_integer(e_rab_id, bref, (uint8_t)0u, (uint8_t)15u, true, true)); } if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); @@ -21667,7 +23283,7 @@ presence_e pdu_session_res_release_resp_transfer_ext_ies_o::get_presence(const u return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void pdu_session_res_release_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -21700,7 +23316,7 @@ SRSASN_CODE qos_flow_accepted_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, false, true)); + 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)); } @@ -21712,7 +23328,7 @@ SRSASN_CODE qos_flow_accepted_item_s::unpack(bit_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, false, true)); + 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)); } @@ -21736,7 +23352,7 @@ 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, false, true)); + 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)); } @@ -21748,7 +23364,7 @@ SRSASN_CODE qos_flow_add_or_modify_resp_item_s::unpack(bit_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, false, true)); + 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)); } @@ -21772,7 +23388,7 @@ SRSASN_CODE qos_flow_modify_confirm_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, false, true)); + 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)); } @@ -21784,7 +23400,7 @@ SRSASN_CODE qos_flow_modify_confirm_item_s::unpack(bit_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, false, true)); + 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)); } @@ -21808,7 +23424,7 @@ SRSASN_CODE qos_flow_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, false, true)); + 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)); @@ -21821,7 +23437,7 @@ SRSASN_CODE qos_flow_notify_item_s::unpack(bit_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, false, true)); + 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)); @@ -21892,10 +23508,10 @@ pdu_session_res_modify_ind_transfer_ext_ies_o::get_ext(const uint32_t& id) ext_c ret{}; switch (id) { case 144: - ret.set_secondary_ratusage_info(); + ret.set(ext_c::types::secondary_ratusage_info); break; case 156: - ret.set_security_result(); + ret.set(ext_c::types::security_result); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -21915,7 +23531,27 @@ presence_e pdu_session_res_modify_ind_transfer_ext_ies_o::get_presence(const uin return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// 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(); +} +const secondary_ratusage_info_s& pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::secondary_ratusage_info() const +{ + assert_choice_type("SecondaryRATUsageInformation", type_.to_string(), "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("SecurityResult", type_.to_string(), "Extension"); + return c.get(); +} void pdu_session_res_modify_ind_transfer_ext_ies_o::ext_c::destroy_() { switch (type_) { @@ -22083,22 +23719,22 @@ pdu_session_res_modify_request_transfer_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 130: - ret.set_pdu_session_aggregate_maximum_bit_rate(); + ret.set(value_c::types::pdu_session_aggregate_maximum_bit_rate); break; case 140: - ret.set_ul_ngu_up_tnl_modify_list(); + ret.set(value_c::types::ul_ngu_up_tnl_modify_list); break; case 129: - ret.set_network_instance(); + ret.set(value_c::types::network_instance); break; case 135: - ret.set_qos_flow_add_or_modify_request_list(); + ret.set(value_c::types::qos_flow_add_or_modify_request_list); break; case 137: - ret.set_qos_flow_to_release_list(); + ret.set(value_c::types::qos_flow_to_release_list); break; case 126: - ret.set_add_ul_ngu_up_tnl_info(); + ret.set(value_c::types::add_ul_ngu_up_tnl_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -22126,7 +23762,74 @@ presence_e pdu_session_res_modify_request_transfer_ies_o::get_presence(const uin return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("PDUSessionAggregateMaximumBitRate", type_.to_string(), "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("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); + return c.get(); +} +uint16_t& pdu_session_res_modify_request_transfer_ies_o::value_c::network_instance() +{ + assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "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("QosFlowAddOrModifyRequestList", type_.to_string(), "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("QosFlowListWithCause", type_.to_string(), "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("UPTransportLayerInformationList", type_.to_string(), "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("PDUSessionAggregateMaximumBitRate", type_.to_string(), "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("UL-NGU-UP-TNLModifyList", type_.to_string(), "Value"); + return c.get(); +} +const uint16_t& pdu_session_res_modify_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_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("QosFlowAddOrModifyRequestList", type_.to_string(), "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("QosFlowListWithCause", type_.to_string(), "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("UPTransportLayerInformationList", type_.to_string(), "Value"); + return c.get(); +} void pdu_session_res_modify_request_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -22295,7 +23998,7 @@ SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::pack(bit_ref 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, false, true)); + 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)); @@ -22323,7 +24026,7 @@ SRSASN_CODE pdu_session_res_modify_request_transfer_ies_o::value_c::unpack(bit_r HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 4, true)); break; case types::network_instance: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)1u, (uint16_t)256u, false, true)); + 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)); @@ -22411,7 +24114,7 @@ presence_e pdu_session_res_modify_resp_transfer_ext_ies_o::get_presence(const ui return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void pdu_session_res_modify_resp_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -22490,7 +24193,7 @@ presence_e pdu_session_res_notify_released_transfer_ext_ies_o::get_presence(cons return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void pdu_session_res_notify_released_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -22565,7 +24268,7 @@ presence_e pdu_session_res_notify_transfer_ext_ies_o::get_presence(const uint32_ return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void pdu_session_res_notify_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -22592,6 +24295,57 @@ std::string pdu_session_res_notify_transfer_ext_ies_o::ext_c::types_opts::to_str return convert_enum_idx(options, 1, value, "pdu_session_res_notify_transfer_ext_ies_o::ext_c::types"); } +template struct protocol_ext_field_s; + +pdu_session_res_release_resp_transfer_ext_ies_container::pdu_session_res_release_resp_transfer_ext_ies_container() : + secondary_ratusage_info(144, crit_e::ignore) +{ +} +SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += secondary_ratusage_info_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (secondary_ratusage_info_present) { + HANDLE_CODE(secondary_ratusage_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_release_resp_transfer_ext_ies_container::unpack(bit_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; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_release_resp_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); + } + j.end_obj(); +} + // PDUSessionResourceReleaseResponseTransfer ::= SEQUENCE SRSASN_CODE pdu_session_res_release_resp_transfer_s::pack(bit_ref& bref) const { @@ -22625,52 +24379,6 @@ void pdu_session_res_release_resp_transfer_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_release_resp_transfer_s::ie_exts_l_::ie_exts_l_() : secondary_ratusage_info(144, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_release_resp_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += secondary_ratusage_info_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (secondary_ratusage_info_present) { - HANDLE_CODE(secondary_ratusage_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_release_resp_transfer_s::ie_exts_l_::unpack(bit_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; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void pdu_session_res_release_resp_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (secondary_ratusage_info_present) { - j.write_fieldname(""); - secondary_ratusage_info.to_json(j); - } - j.end_obj(); -} - // PathSwitchRequestAcknowledgeTransfer-ExtIEs ::= OBJECT SET OF NGAP-PROTOCOL-EXTENSION uint32_t path_switch_request_ack_transfer_ext_ies_o::idx_to_id(uint32_t idx) { @@ -22720,7 +24428,7 @@ presence_e path_switch_request_ack_transfer_ext_ies_o::get_presence(const uint32 return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void path_switch_request_ack_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -22798,7 +24506,7 @@ presence_e path_switch_request_transfer_ext_ies_o::get_presence(const uint32_t& return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void path_switch_request_transfer_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -23076,7 +24784,7 @@ presence_e pdu_session_res_item_cxt_rel_cpl_ext_ies_o::get_presence(const uint32 return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// 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(); @@ -23176,64 +24884,14 @@ void pdu_session_res_modify_confirm_transfer_s::to_json(json_writer& j) const 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)); +template struct protocol_ext_field_s; - 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(bit_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 (uint32_t i1 = 0; i1 < add_dl_qos_flow_per_tnl_info.size(); ++i1) { - add_dl_qos_flow_per_tnl_info[i1].to_json(j); - } - j.end_array(); - } - if (ie_exts_present) { - j.write_fieldname("iE-Extensions"); - ie_exts.to_json(j); - } - j.end_obj(); -} - -pdu_session_res_modify_ind_transfer_s::ie_exts_l_::ie_exts_l_() : +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_s::ie_exts_l_::pack(bit_ref& bref) const +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; @@ -23249,7 +24907,7 @@ SRSASN_CODE pdu_session_res_modify_ind_transfer_s::ie_exts_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_transfer_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_ind_transfer_ext_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 1u, 65535u, true); @@ -23278,7 +24936,7 @@ SRSASN_CODE pdu_session_res_modify_ind_transfer_s::ie_exts_l_::unpack(bit_ref& b return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_transfer_s::ie_exts_l_::to_json(json_writer& j) const +void pdu_session_res_modify_ind_transfer_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (secondary_ratusage_info_present) { @@ -23292,6 +24950,58 @@ void pdu_session_res_modify_ind_transfer_s::ie_exts_l_::to_json(json_writer& 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(bit_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 (uint32_t i1 = 0; i1 < add_dl_qos_flow_per_tnl_info.size(); ++i1) { + add_dl_qos_flow_per_tnl_info[i1].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 { @@ -23378,7 +25088,7 @@ presence_e pdu_session_res_modify_item_mod_req_ext_ies_o::get_presence(const uin return presence_e(); } -// Extension ::= CLASS OPEN TYPE +// Extension ::= OPEN TYPE void pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::to_json(json_writer& j) const { j.start_obj(); @@ -23405,30 +25115,9 @@ std::string pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types_opts::to return convert_enum_idx(options, 1, value, "pdu_session_res_modify_item_mod_req_ext_ies_o::ext_c::types"); } -// 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(bit_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(); -} +template struct protocol_ie_field_s; -pdu_session_res_modify_request_transfer_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -23437,7 +25126,7 @@ pdu_session_res_modify_request_transfer_s::protocol_ies_l_::protocol_ies_l_() : add_ul_ngu_up_tnl_info(126, crit_e::reject) { } -SRSASN_CODE pdu_session_res_modify_request_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const +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; @@ -23469,7 +25158,7 @@ SRSASN_CODE pdu_session_res_modify_request_transfer_s::protocol_ies_l_::pack(bit return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_request_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -23522,7 +25211,7 @@ SRSASN_CODE pdu_session_res_modify_request_transfer_s::protocol_ies_l_::unpack(b return SRSASN_SUCCESS; } -void pdu_session_res_modify_request_transfer_s::protocol_ies_l_::to_json(json_writer& j) const +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) { @@ -23552,110 +25241,36 @@ void pdu_session_res_modify_request_transfer_s::protocol_ies_l_::to_json(json_wr j.end_obj(); } -// PDUSessionResourceModifyResponseTransfer ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyRequestTransfer ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_request_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(ie_exts.pack(bref)); - } + HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_request_transfer_s::unpack(bit_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(ie_exts.unpack(bref)); - } + HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_transfer_s::to_json(json_writer& j) const +void pdu_session_res_modify_request_transfer_s::to_json(json_writer& j) 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 (uint32_t i1 = 0; i1 < qos_flow_add_or_modify_resp_list.size(); ++i1) { - qos_flow_add_or_modify_resp_list[i1].to_json(j); - } - j.end_array(); - } - if (add_dl_qos_flow_per_tnl_info_present) { - j.start_array("additionalDLQosFlowPerTNLInformation"); - for (uint32_t i1 = 0; i1 < add_dl_qos_flow_per_tnl_info.size(); ++i1) { - add_dl_qos_flow_per_tnl_info[i1].to_json(j); - } - j.end_array(); - } - if (qos_flow_failed_to_add_or_modify_list_present) { - j.start_array("qosFlowFailedToAddOrModifyList"); - for (uint32_t i1 = 0; i1 < qos_flow_failed_to_add_or_modify_list.size(); ++i1) { - qos_flow_failed_to_add_or_modify_list[i1].to_json(j); - } - j.end_array(); - } - 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(); } -pdu_session_res_modify_resp_transfer_s::ie_exts_l_::ie_exts_l_() : add_ngu_up_tnl_info(154, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::ie_exts_l_::pack(bit_ref& bref) const +template struct protocol_ext_field_s; + +pdu_session_res_modify_resp_transfer_ext_ies_container::pdu_session_res_modify_resp_transfer_ext_ies_container() : + add_ngu_up_tnl_info(154, crit_e::ignore) +{ +} +SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += add_ngu_up_tnl_info_present ? 1 : 0; @@ -23667,7 +25282,7 @@ SRSASN_CODE pdu_session_res_modify_resp_transfer_s::ie_exts_l_::pack(bit_ref& br return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_transfer_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_resp_transfer_ext_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 1u, 65535u, true); @@ -23690,7 +25305,7 @@ SRSASN_CODE pdu_session_res_modify_resp_transfer_s::ie_exts_l_::unpack(bit_ref& return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_transfer_s::ie_exts_l_::to_json(json_writer& j) const +void pdu_session_res_modify_resp_transfer_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (add_ngu_up_tnl_info_present) { @@ -23700,6 +25315,108 @@ void pdu_session_res_modify_resp_transfer_s::ie_exts_l_::to_json(json_writer& j) j.end_obj(); } +// 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(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_resp_transfer_s::unpack(bit_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(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_resp_transfer_s::to_json(json_writer& j) 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 (uint32_t i1 = 0; i1 < qos_flow_add_or_modify_resp_list.size(); ++i1) { + qos_flow_add_or_modify_resp_list[i1].to_json(j); + } + j.end_array(); + } + if (add_dl_qos_flow_per_tnl_info_present) { + j.start_array("additionalDLQosFlowPerTNLInformation"); + for (uint32_t i1 = 0; i1 < add_dl_qos_flow_per_tnl_info.size(); ++i1) { + add_dl_qos_flow_per_tnl_info[i1].to_json(j); + } + j.end_array(); + } + if (qos_flow_failed_to_add_or_modify_list_present) { + j.start_array("qosFlowFailedToAddOrModifyList"); + for (uint32_t i1 = 0; i1 < qos_flow_failed_to_add_or_modify_list.size(); ++i1) { + qos_flow_failed_to_add_or_modify_list[i1].to_json(j); + } + j.end_array(); + } + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + // PDUSessionResourceModifyUnsuccessfulTransfer ::= SEQUENCE SRSASN_CODE pdu_session_res_modify_unsuccessful_transfer_s::pack(bit_ref& bref) const { @@ -23749,6 +25466,58 @@ void pdu_session_res_modify_unsuccessful_transfer_s::to_json(json_writer& j) con j.end_obj(); } +template struct protocol_ext_field_s; + +pdu_session_res_notify_released_transfer_ext_ies_container:: + pdu_session_res_notify_released_transfer_ext_ies_container() : + secondary_ratusage_info(144, crit_e::ignore) +{ +} +SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += secondary_ratusage_info_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (secondary_ratusage_info_present) { + HANDLE_CODE(secondary_ratusage_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_notify_released_transfer_ext_ies_container::unpack(bit_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; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_notify_released_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); + } + j.end_obj(); +} + // PDUSessionResourceNotifyReleasedTransfer ::= SEQUENCE SRSASN_CODE pdu_session_res_notify_released_transfer_s::pack(bit_ref& bref) const { @@ -23786,8 +25555,13 @@ void pdu_session_res_notify_released_transfer_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_notify_released_transfer_s::ie_exts_l_::ie_exts_l_() : secondary_ratusage_info(144, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_notify_released_transfer_s::ie_exts_l_::pack(bit_ref& bref) const +template struct protocol_ext_field_s; + +pdu_session_res_notify_transfer_ext_ies_container::pdu_session_res_notify_transfer_ext_ies_container() : + secondary_ratusage_info(144, crit_e::ignore) +{ +} +SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += secondary_ratusage_info_present ? 1 : 0; @@ -23799,13 +25573,13 @@ SRSASN_CODE pdu_session_res_notify_released_transfer_s::ie_exts_l_::pack(bit_ref return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_released_transfer_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_notify_transfer_ext_ies_container::unpack(bit_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; + protocol_ext_field_s c; HANDLE_CODE(c.unpack(bref)); switch (c.id) { case 144: @@ -23822,7 +25596,7 @@ SRSASN_CODE pdu_session_res_notify_released_transfer_s::ie_exts_l_::unpack(bit_r return SRSASN_SUCCESS; } -void pdu_session_res_notify_released_transfer_s::ie_exts_l_::to_json(json_writer& j) const +void pdu_session_res_notify_transfer_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (secondary_ratusage_info_present) { @@ -23895,52 +25669,6 @@ void pdu_session_res_notify_transfer_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_notify_transfer_s::ie_exts_l_::ie_exts_l_() : secondary_ratusage_info(144, crit_e::ignore) {} -SRSASN_CODE pdu_session_res_notify_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += secondary_ratusage_info_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (secondary_ratusage_info_present) { - HANDLE_CODE(secondary_ratusage_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_notify_transfer_s::ie_exts_l_::unpack(bit_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; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void pdu_session_res_notify_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (secondary_ratusage_info_present) { - j.write_fieldname(""); - secondary_ratusage_info.to_json(j); - } - j.end_obj(); -} - // PDUSessionResourceReleaseCommandTransfer ::= SEQUENCE SRSASN_CODE pdu_session_res_release_cmd_transfer_s::pack(bit_ref& bref) const { @@ -23978,6 +25706,57 @@ void pdu_session_res_release_cmd_transfer_s::to_json(json_writer& j) const j.end_obj(); } +template struct protocol_ext_field_s; + +path_switch_request_ack_transfer_ext_ies_container::path_switch_request_ack_transfer_ext_ies_container() : + add_ngu_up_tnl_info(154, crit_e::ignore) +{ +} +SRSASN_CODE path_switch_request_ack_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += add_ngu_up_tnl_info_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (add_ngu_up_tnl_info_present) { + HANDLE_CODE(add_ngu_up_tnl_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE path_switch_request_ack_transfer_ext_ies_container::unpack(bit_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 154: + add_ngu_up_tnl_info_present = true; + add_ngu_up_tnl_info.id = c.id; + add_ngu_up_tnl_info.crit = c.crit; + add_ngu_up_tnl_info.ext = c.ext_value.add_ngu_up_tnl_info(); + break; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void path_switch_request_ack_transfer_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (add_ngu_up_tnl_info_present) { + j.write_fieldname(""); + add_ngu_up_tnl_info.to_json(j); + } + j.end_obj(); +} + // PathSwitchRequestAcknowledgeTransfer ::= SEQUENCE SRSASN_CODE path_switch_request_ack_transfer_s::pack(bit_ref& bref) const { @@ -24035,52 +25814,6 @@ void path_switch_request_ack_transfer_s::to_json(json_writer& j) const j.end_obj(); } -path_switch_request_ack_transfer_s::ie_exts_l_::ie_exts_l_() : add_ngu_up_tnl_info(154, crit_e::ignore) {} -SRSASN_CODE path_switch_request_ack_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += add_ngu_up_tnl_info_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (add_ngu_up_tnl_info_present) { - HANDLE_CODE(add_ngu_up_tnl_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE path_switch_request_ack_transfer_s::ie_exts_l_::unpack(bit_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 154: - add_ngu_up_tnl_info_present = true; - add_ngu_up_tnl_info.id = c.id; - add_ngu_up_tnl_info.crit = c.crit; - add_ngu_up_tnl_info.ext = c.ext_value.add_ngu_up_tnl_info(); - break; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void path_switch_request_ack_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (add_ngu_up_tnl_info_present) { - j.write_fieldname(""); - add_ngu_up_tnl_info.to_json(j); - } - j.end_obj(); -} - // PathSwitchRequestSetupFailedTransfer ::= SEQUENCE SRSASN_CODE path_switch_request_setup_failed_transfer_s::pack(bit_ref& bref) const { @@ -24118,6 +25851,57 @@ void path_switch_request_setup_failed_transfer_s::to_json(json_writer& j) const j.end_obj(); } +template struct protocol_ext_field_s; + +path_switch_request_transfer_ext_ies_container::path_switch_request_transfer_ext_ies_container() : + add_dl_qos_flow_per_tnl_info(155, crit_e::ignore) +{ +} +SRSASN_CODE path_switch_request_transfer_ext_ies_container::pack(bit_ref& bref) const +{ + uint32_t nof_ies = 0; + nof_ies += add_dl_qos_flow_per_tnl_info_present ? 1 : 0; + pack_length(bref, nof_ies, 1u, 65535u, true); + + if (add_dl_qos_flow_per_tnl_info_present) { + HANDLE_CODE(add_dl_qos_flow_per_tnl_info.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE path_switch_request_transfer_ext_ies_container::unpack(bit_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 155: + add_dl_qos_flow_per_tnl_info_present = true; + add_dl_qos_flow_per_tnl_info.id = c.id; + add_dl_qos_flow_per_tnl_info.crit = c.crit; + add_dl_qos_flow_per_tnl_info.ext = c.ext_value.add_dl_qos_flow_per_tnl_info(); + break; + default: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + + return SRSASN_SUCCESS; +} +void path_switch_request_transfer_ext_ies_container::to_json(json_writer& j) const +{ + j.start_obj(); + if (add_dl_qos_flow_per_tnl_info_present) { + j.write_fieldname(""); + add_dl_qos_flow_per_tnl_info.to_json(j); + } + j.end_obj(); +} + // PathSwitchRequestTransfer ::= SEQUENCE SRSASN_CODE path_switch_request_transfer_s::pack(bit_ref& bref) const { @@ -24185,52 +25969,6 @@ void path_switch_request_transfer_s::to_json(json_writer& j) const j.end_obj(); } -path_switch_request_transfer_s::ie_exts_l_::ie_exts_l_() : add_dl_qos_flow_per_tnl_info(155, crit_e::ignore) {} -SRSASN_CODE path_switch_request_transfer_s::ie_exts_l_::pack(bit_ref& bref) const -{ - uint32_t nof_ies = 0; - nof_ies += add_dl_qos_flow_per_tnl_info_present ? 1 : 0; - pack_length(bref, nof_ies, 1u, 65535u, true); - - if (add_dl_qos_flow_per_tnl_info_present) { - HANDLE_CODE(add_dl_qos_flow_per_tnl_info.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE path_switch_request_transfer_s::ie_exts_l_::unpack(bit_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 155: - add_dl_qos_flow_per_tnl_info_present = true; - add_dl_qos_flow_per_tnl_info.id = c.id; - add_dl_qos_flow_per_tnl_info.crit = c.crit; - add_dl_qos_flow_per_tnl_info.ext = c.ext_value.add_dl_qos_flow_per_tnl_info(); - break; - default: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - - return SRSASN_SUCCESS; -} -void path_switch_request_transfer_s::ie_exts_l_::to_json(json_writer& j) const -{ - j.start_obj(); - if (add_dl_qos_flow_per_tnl_info_present) { - j.write_fieldname(""); - add_dl_qos_flow_per_tnl_info.to_json(j); - } - j.end_obj(); -} - // PathSwitchRequestUnsuccessfulTransfer ::= SEQUENCE SRSASN_CODE path_switch_request_unsuccessful_transfer_s::pack(bit_ref& bref) const { @@ -24690,47 +26428,13 @@ void pdu_session_res_failed_to_setup_item_su_res_s::to_json(json_writer& j) cons j.end_obj(); } -// 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(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)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ie_exts_present, 1)); +template struct protocol_ext_field_s; - 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 pdu_session_res_item_cxt_rel_cpl_s::to_json(json_writer& j) const -{ - 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(); -} - -pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::ie_exts_l_() : +pdu_session_res_item_cxt_rel_cpl_ext_ies_container::pdu_session_res_item_cxt_rel_cpl_ext_ies_container() : pdu_session_res_release_resp_transfer(145, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += pdu_session_res_release_resp_transfer_present ? 1 : 0; @@ -24742,7 +26446,7 @@ SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::pack(bit_ref& bref) return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_ext_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 1u, 65535u, true); @@ -24765,7 +26469,7 @@ SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::unpack(bit_ref& bref return SRSASN_SUCCESS; } -void pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::to_json(json_writer& j) const +void pdu_session_res_item_cxt_rel_cpl_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (pdu_session_res_release_resp_transfer_present) { @@ -24775,8 +26479,8 @@ void pdu_session_res_item_cxt_rel_cpl_s::ie_exts_l_::to_json(json_writer& j) con j.end_obj(); } -// PDUSessionResourceItemCxtRelReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_item_cxt_rel_req_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(ie_exts_present, 1)); @@ -24788,7 +26492,7 @@ SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_item_cxt_rel_cpl_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(bref.unpack(ie_exts_present, 1)); @@ -24800,7 +26504,7 @@ SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void pdu_session_res_item_cxt_rel_req_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("pDUSessionID", pdu_session_id); @@ -24811,38 +26515,35 @@ void pdu_session_res_item_cxt_rel_req_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceModifyItemModCfm ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_cfm_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(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; } -SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_item_cxt_rel_req_s::unpack(bit_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_confirm_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_modify_item_mod_cfm_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(); 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); @@ -24850,38 +26551,38 @@ void pdu_session_res_modify_item_mod_cfm_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceModifyItemModInd ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_ind_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(pack_integer(bref, pdu_session_id, (uint16_t)0u, (uint16_t)255u, false, true)); - HANDLE_CODE(pdu_session_res_modify_ind_transfer.pack(bref)); + 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 pdu_session_res_modify_item_mod_ind_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_cfm_s::unpack(bit_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)); + HANDLE_CODE(pdu_session_res_modify_confirm_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_modify_item_mod_ind_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_int("pDUSessionID", pdu_session_id); - j.write_str("pDUSessionResourceModifyIndicationTransfer", pdu_session_res_modify_ind_transfer.to_string()); + 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); @@ -24889,49 +26590,38 @@ void pdu_session_res_modify_item_mod_ind_s::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceModifyItemModReq ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_item_mod_req_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(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)); + 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 pdu_session_res_modify_item_mod_req_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_ind_s::unpack(bit_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(pdu_session_res_modify_request_transfer.unpack(bref)); + HANDLE_CODE(pdu_session_res_modify_ind_transfer.unpack(bref)); if (ie_exts_present) { HANDLE_CODE(ie_exts.unpack(bref)); } return SRSASN_SUCCESS; } -void pdu_session_res_modify_item_mod_req_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_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()); + 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); @@ -24939,8 +26629,13 @@ void pdu_session_res_modify_item_mod_req_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_modify_item_mod_req_s::ie_exts_l_::ie_exts_l_() : s_nssai(148, crit_e::reject) {} -SRSASN_CODE pdu_session_res_modify_item_mod_req_s::ie_exts_l_::pack(bit_ref& bref) const +template struct protocol_ext_field_s; + +pdu_session_res_modify_item_mod_req_ext_ies_container::pdu_session_res_modify_item_mod_req_ext_ies_container() : + s_nssai(148, crit_e::reject) +{ +} +SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += s_nssai_present ? 1 : 0; @@ -24952,7 +26647,7 @@ SRSASN_CODE pdu_session_res_modify_item_mod_req_s::ie_exts_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_item_mod_req_s::ie_exts_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_item_mod_req_ext_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 1u, 65535u, true); @@ -24975,7 +26670,7 @@ SRSASN_CODE pdu_session_res_modify_item_mod_req_s::ie_exts_l_::unpack(bit_ref& b return SRSASN_SUCCESS; } -void pdu_session_res_modify_item_mod_req_s::ie_exts_l_::to_json(json_writer& j) const +void pdu_session_res_modify_item_mod_req_ext_ies_container::to_json(json_writer& j) const { j.start_obj(); if (s_nssai_present) { @@ -24985,6 +26680,56 @@ void pdu_session_res_modify_item_mod_req_s::ie_exts_l_::to_json(json_writer& j) j.end_obj(); } +// PDUSessionResourceModifyItemModReq ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_item_mod_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(pdu_session_res_modify_request_transfer.pack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE pdu_session_res_modify_item_mod_req_s::unpack(bit_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(pdu_session_res_modify_request_transfer.unpack(bref)); + if (ie_exts_present) { + HANDLE_CODE(ie_exts.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void pdu_session_res_modify_item_mod_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_str("pDUSessionResourceModifyRequestTransfer", pdu_session_res_modify_request_transfer.to_string()); + if (ie_exts_present) { + j.write_fieldname("iE-Extensions"); + ie_exts.to_json(j); + } + j.end_obj(); +} + // PDUSessionResourceModifyItemModRes ::= SEQUENCE SRSASN_CODE pdu_session_res_modify_item_mod_res_s::pack(bit_ref& bref) const { @@ -25600,7 +27345,7 @@ 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, false, true)); + 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)); @@ -25613,7 +27358,7 @@ SRSASN_CODE ue_presence_in_area_of_interest_item_s::unpack(bit_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, false, true)); + 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)); @@ -25841,8 +27586,8 @@ uint8_t paging_prio_opts::to_number() const } // PrivateIE-Field{NGAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{NGAP-PRIVATE-IES}} -template -SRSASN_CODE private_ie_field_s::pack(bit_ref& bref) const +template +SRSASN_CODE private_ie_field_s::pack(bit_ref& bref) const { HANDLE_CODE(id.pack(bref)); HANDLE_CODE(crit.pack(bref)); @@ -25850,8 +27595,8 @@ SRSASN_CODE private_ie_field_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -template -SRSASN_CODE private_ie_field_s::unpack(bit_ref& bref) +template +SRSASN_CODE private_ie_field_s::unpack(bit_ref& bref) { HANDLE_CODE(id.unpack(bref)); HANDLE_CODE(crit.unpack(bref)); @@ -25859,14 +27604,13 @@ SRSASN_CODE private_ie_field_s::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -template -void private_ie_field_s::to_json(json_writer& j) const +template +void private_ie_field_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(); } @@ -26553,22 +28297,22 @@ location_report_ies_o::value_c location_report_ies_o::get_value(const uint32_t& value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 116: - ret.set_ue_presence_in_area_of_interest_list(); + ret.set(value_c::types::ue_presence_in_area_of_interest_list); break; case 33: - ret.set_location_report_request_type(); + ret.set(value_c::types::location_report_request_type); break; case 149: - ret.set_ps_cell_info(); + ret.set(value_c::types::ps_cell_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -26596,7 +28340,68 @@ presence_e location_report_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -26841,13 +28646,13 @@ location_report_ctrl_ies_o::value_c location_report_ctrl_ies_o::get_value(const value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 33: - ret.set_location_report_request_type(); + ret.set(value_c::types::location_report_request_type); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -26869,7 +28674,37 @@ presence_e location_report_ctrl_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -27042,13 +28877,13 @@ location_report_fail_ind_ies_o::value_c location_report_fail_ind_ies_o::get_valu value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -27070,7 +28905,37 @@ presence_e location_report_fail_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -27244,16 +29109,16 @@ nas_non_delivery_ind_ies_o::value_c nas_non_delivery_ind_ies_o::get_value(const value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -27277,7 +29142,47 @@ presence_e nas_non_delivery_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -27469,10 +29374,10 @@ ng_reset_ack_ies_o::value_c ng_reset_ack_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 111: - ret.set_ue_associated_lc_ng_conn_list(); + ret.set(value_c::types::ue_associated_lc_ng_conn_list); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -27492,7 +29397,27 @@ presence_e ng_reset_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -27652,10 +29577,10 @@ ng_reset_ies_o::value_c ng_reset_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 88: - ret.set_reset_type(); + ret.set(value_c::types::reset_type); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -27675,7 +29600,27 @@ presence_e ng_reset_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -27834,13 +29779,13 @@ ng_setup_fail_ies_o::value_c ng_setup_fail_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 107: - ret.set_time_to_wait(); + ret.set(value_c::types::time_to_wait); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -27862,7 +29807,37 @@ presence_e ng_setup_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -28042,19 +30017,19 @@ ng_setup_request_ies_o::value_c ng_setup_request_ies_o::get_value(const uint32_t value_c ret{}; switch (id) { case 27: - ret.set_global_ran_node_id(); + ret.set(value_c::types::global_ran_node_id); break; case 82: - ret.set_ran_node_name(); + ret.set(value_c::types::ran_node_name); break; case 102: - ret.set_supported_ta_list(); + ret.set(value_c::types::supported_ta_list); break; case 21: - ret.set_default_paging_drx(); + ret.set(value_c::types::default_paging_drx); break; case 147: - ret.set_ue_retention_info(); + ret.set(value_c::types::ue_retention_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -28080,7 +30055,57 @@ presence_e ng_setup_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -28305,22 +30330,22 @@ ng_setup_resp_ies_o::value_c ng_setup_resp_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 1: - ret.set_amf_name(); + ret.set(value_c::types::amf_name); break; case 96: - ret.set_served_guami_list(); + ret.set(value_c::types::served_guami_list); break; case 86: - ret.set_relative_amf_capacity(); + ret.set(value_c::types::relative_amf_capacity); break; case 80: - ret.set_plmn_support_list(); + ret.set(value_c::types::plmn_support_list); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; case 147: - ret.set_ue_retention_info(); + ret.set(value_c::types::ue_retention_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -28348,7 +30373,67 @@ presence_e ng_setup_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -28605,13 +30690,13 @@ overload_start_ies_o::value_c overload_start_ies_o::get_value(const uint32_t& id value_c ret{}; switch (id) { case 2: - ret.set_amf_overload_resp(); + ret.set(value_c::types::amf_overload_resp); break; case 9: - ret.set_amf_traffic_load_reduction_ind(); + ret.set(value_c::types::amf_traffic_load_reduction_ind); break; case 49: - ret.set_overload_start_nssai_list(); + ret.set(value_c::types::overload_start_nssai_list); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -28633,7 +30718,37 @@ presence_e overload_start_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -28826,19 +30941,19 @@ pdu_session_res_modify_confirm_ies_o::value_c pdu_session_res_modify_confirm_ies value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 62: - ret.set_pdu_session_res_modify_list_mod_cfm(); + ret.set(value_c::types::pdu_session_res_modify_list_mod_cfm); break; case 131: - ret.set_pdu_session_res_failed_to_modify_list_mod_cfm(); + ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_cfm); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -28864,7 +30979,61 @@ presence_e pdu_session_res_modify_confirm_ies_o::get_presence(const uint32_t& id return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -29090,13 +31259,13 @@ pdu_session_res_modify_ind_ies_o::value_c pdu_session_res_modify_ind_ies_o::get_ value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 63: - ret.set_pdu_session_res_modify_list_mod_ind(); + ret.set(value_c::types::pdu_session_res_modify_list_mod_ind); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -29118,7 +31287,38 @@ presence_e pdu_session_res_modify_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -29296,16 +31496,16 @@ pdu_session_res_modify_request_ies_o::value_c pdu_session_res_modify_request_ies value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 83: - ret.set_ran_paging_prio(); + ret.set(value_c::types::ran_paging_prio); break; case 64: - ret.set_pdu_session_res_modify_list_mod_req(); + ret.set(value_c::types::pdu_session_res_modify_list_mod_req); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -29329,7 +31529,49 @@ presence_e pdu_session_res_modify_request_ies_o::get_presence(const uint32_t& id return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + return c.get(); +} +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_) { @@ -29530,22 +31772,22 @@ pdu_session_res_modify_resp_ies_o::value_c pdu_session_res_modify_resp_ies_o::ge value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 65: - ret.set_pdu_session_res_modify_list_mod_res(); + ret.set(value_c::types::pdu_session_res_modify_list_mod_res); break; case 54: - ret.set_pdu_session_res_failed_to_modify_list_mod_res(); + ret.set(value_c::types::pdu_session_res_failed_to_modify_list_mod_res); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -29573,7 +31815,70 @@ presence_e pdu_session_res_modify_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -29826,19 +32131,19 @@ pdu_session_res_notify_ies_o::value_c pdu_session_res_notify_ies_o::get_value(co value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 66: - ret.set_pdu_session_res_notify_list(); + ret.set(value_c::types::pdu_session_res_notify_list); break; case 67: - ret.set_pdu_session_res_released_list_not(); + ret.set(value_c::types::pdu_session_res_released_list_not); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -29864,7 +32169,58 @@ presence_e pdu_session_res_notify_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -30094,19 +32450,19 @@ pdu_session_res_release_cmd_ies_o::value_c pdu_session_res_release_cmd_ies_o::ge value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 83: - ret.set_ran_paging_prio(); + ret.set(value_c::types::ran_paging_prio); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 79: - ret.set_pdu_session_res_to_release_list_rel_cmd(); + ret.set(value_c::types::pdu_session_res_to_release_list_rel_cmd); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -30132,7 +32488,59 @@ presence_e pdu_session_res_release_cmd_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + return c.get(); +} +uint16_t& pdu_session_res_release_cmd_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_release_cmd_ies_o::value_c::nas_pdu() +{ + assert_choice_type("OCTET STRING", type_.to_string(), "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("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& pdu_session_res_release_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& pdu_session_res_release_cmd_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_release_cmd_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_release_cmd_ies_o::value_c::nas_pdu() const +{ + assert_choice_type("OCTET STRING", type_.to_string(), "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("PDUSessionResourceToReleaseListRelCmd", type_.to_string(), "Value"); + return c.get(); +} void pdu_session_res_release_cmd_ies_o::value_c::destroy_() { switch (type_) { @@ -30353,19 +32761,19 @@ pdu_session_res_release_resp_ies_o::value_c pdu_session_res_release_resp_ies_o:: value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 70: - ret.set_pdu_session_res_released_list_rel_res(); + ret.set(value_c::types::pdu_session_res_released_list_rel_res); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -30391,7 +32799,59 @@ presence_e pdu_session_res_release_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -30620,22 +33080,22 @@ pdu_session_res_setup_request_ies_o::value_c pdu_session_res_setup_request_ies_o value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 83: - ret.set_ran_paging_prio(); + ret.set(value_c::types::ran_paging_prio); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 74: - ret.set_pdu_session_res_setup_list_su_req(); + ret.set(value_c::types::pdu_session_res_setup_list_su_req); break; case 110: - ret.set_ue_aggregate_maximum_bit_rate(); + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -30663,7 +33123,69 @@ presence_e pdu_session_res_setup_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -30907,19 +33429,19 @@ pdu_session_res_setup_resp_ies_o::value_c pdu_session_res_setup_resp_ies_o::get_ value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 75: - ret.set_pdu_session_res_setup_list_su_res(); + ret.set(value_c::types::pdu_session_res_setup_list_su_res); break; case 58: - ret.set_pdu_session_res_failed_to_setup_list_su_res(); + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_su_res); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -30945,7 +33467,60 @@ presence_e pdu_session_res_setup_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -31173,16 +33748,16 @@ pws_cancel_request_ies_o::value_c pws_cancel_request_ies_o::get_value(const uint value_c ret{}; switch (id) { case 35: - ret.set_msg_id(); + ret.set(value_c::types::msg_id); break; case 95: - ret.set_serial_num(); + ret.set(value_c::types::serial_num); break; case 122: - ret.set_warning_area_list(); + ret.set(value_c::types::warning_area_list); break; case 14: - ret.set_cancel_all_warning_msgs(); + ret.set(value_c::types::cancel_all_warning_msgs); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -31206,7 +33781,47 @@ presence_e pws_cancel_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -31405,16 +34020,16 @@ pws_cancel_resp_ies_o::value_c pws_cancel_resp_ies_o::get_value(const uint32_t& value_c ret{}; switch (id) { case 35: - ret.set_msg_id(); + ret.set(value_c::types::msg_id); break; case 95: - ret.set_serial_num(); + ret.set(value_c::types::serial_num); break; case 12: - ret.set_broadcast_cancelled_area_list(); + ret.set(value_c::types::broadcast_cancelled_area_list); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -31438,7 +34053,47 @@ presence_e pws_cancel_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -31638,10 +34293,10 @@ pws_fail_ind_ies_o::value_c pws_fail_ind_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 81: - ret.set_pws_failed_cell_id_list(); + ret.set(value_c::types::pws_failed_cell_id_list); break; case 27: - ret.set_global_ran_node_id(); + ret.set(value_c::types::global_ran_node_id); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -31661,7 +34316,27 @@ presence_e pws_fail_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -31822,16 +34497,16 @@ pws_restart_ind_ies_o::value_c pws_restart_ind_ies_o::get_value(const uint32_t& value_c ret{}; switch (id) { case 16: - ret.set_cell_id_list_for_restart(); + ret.set(value_c::types::cell_id_list_for_restart); break; case 27: - ret.set_global_ran_node_id(); + ret.set(value_c::types::global_ran_node_id); break; case 104: - ret.set_tai_list_for_restart(); + ret.set(value_c::types::tai_list_for_restart); break; case 23: - ret.set_emergency_area_id_list_for_restart(); + ret.set(value_c::types::emergency_area_id_list_for_restart); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -31855,7 +34530,47 @@ presence_e pws_restart_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -32073,25 +34788,25 @@ paging_ies_o::value_c paging_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 115: - ret.set_ue_paging_id(); + ret.set(value_c::types::ue_paging_id); break; case 50: - ret.set_paging_drx(); + ret.set(value_c::types::paging_drx); break; case 103: - ret.set_tai_list_for_paging(); + ret.set(value_c::types::tai_list_for_paging); break; case 52: - ret.set_paging_prio(); + ret.set(value_c::types::paging_prio); break; case 118: - ret.set_ue_radio_cap_for_paging(); + ret.set(value_c::types::ue_radio_cap_for_paging); break; case 51: - ret.set_paging_origin(); + ret.set(value_c::types::paging_origin); break; case 11: - ret.set_assist_data_for_paging(); + ret.set(value_c::types::assist_data_for_paging); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -32121,7 +34836,77 @@ presence_e paging_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -32402,40 +35187,40 @@ path_switch_request_ack_ies_o::value_c path_switch_request_ack_ies_o::get_value( value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 119: - ret.set_ue_security_cap(); + ret.set(value_c::types::ue_security_cap); break; case 93: - ret.set_security_context(); + ret.set(value_c::types::security_context); break; case 41: - ret.set_new_security_context_ind(); + ret.set(value_c::types::new_security_context_ind); break; case 77: - ret.set_pdu_session_res_switched_list(); + ret.set(value_c::types::pdu_session_res_switched_list); break; case 68: - ret.set_pdu_session_res_released_list_ps_ack(); + ret.set(value_c::types::pdu_session_res_released_list_ps_ack); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; case 18: - ret.set_core_network_assist_info(); + ret.set(value_c::types::core_network_assist_info); break; case 91: - ret.set_rrc_inactive_transition_report_request(); + ret.set(value_c::types::rrc_inactive_transition_report_request); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; case 146: - ret.set_redirection_voice_fallback(); + ret.set(value_c::types::redirection_voice_fallback); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -32475,7 +35260,130 @@ presence_e path_switch_request_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& path_switch_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& path_switch_request_ack_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "Value"); + return c.get(); +} +ue_security_cap_s& path_switch_request_ack_ies_o::value_c::ue_security_cap() +{ + assert_choice_type("UESecurityCapabilities", 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(); +} +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() +{ + assert_choice_type("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); + return c.get(); +} +allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() +{ + assert_choice_type("AllowedNSSAI", type_.to_string(), "Value"); + return c.get(); +} +core_network_assist_info_s& path_switch_request_ack_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "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("RRCInactiveTransitionReportRequest", 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(); +} +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 +{ + assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& path_switch_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 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 +{ + assert_choice_type("SecurityContext", type_.to_string(), "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("NewSecurityContextInd", type_.to_string(), "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("PDUSessionResourceSwitchedList", type_.to_string(), "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("PDUSessionResourceReleasedListPSAck", type_.to_string(), "Value"); + return c.get(); +} +const allowed_nssai_l& path_switch_request_ack_ies_o::value_c::allowed_nssai() const +{ + assert_choice_type("AllowedNSSAI", type_.to_string(), "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("CoreNetworkAssistanceInformation", type_.to_string(), "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_) { @@ -32852,16 +35760,16 @@ path_switch_request_fail_ies_o::value_c path_switch_request_fail_ies_o::get_valu value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 69: - ret.set_pdu_session_res_released_list_ps_fail(); + ret.set(value_c::types::pdu_session_res_released_list_ps_fail); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -32885,7 +35793,49 @@ presence_e path_switch_request_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -33091,22 +36041,22 @@ path_switch_request_ies_o::value_c path_switch_request_ies_o::get_value(const ui value_c ret{}; switch (id) { case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 100: - ret.set_source_amf_ue_ngap_id(); + ret.set(value_c::types::source_amf_ue_ngap_id); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 119: - ret.set_ue_security_cap(); + ret.set(value_c::types::ue_security_cap); break; case 76: - ret.set_pdu_session_res_to_be_switched_dl_list(); + ret.set(value_c::types::pdu_session_res_to_be_switched_dl_list); break; case 57: - ret.set_pdu_session_res_failed_to_setup_list_ps_req(); + ret.set(value_c::types::pdu_session_res_failed_to_setup_list_ps_req); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -33134,7 +36084,70 @@ presence_e path_switch_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -33348,7 +36361,12 @@ std::string path_switch_request_ies_o::value_c::types_opts::to_string() const return convert_enum_idx(options, 6, value, "path_switch_request_ies_o::value_c::types"); } -// Value ::= CLASS OPEN TYPE +// 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); @@ -33414,7 +36432,7 @@ presence_e ran_cfg_upd_ack_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE void ran_cfg_upd_ack_ies_o::value_c::to_json(json_writer& j) const { j.start_obj(); @@ -33476,13 +36494,13 @@ ran_cfg_upd_fail_ies_o::value_c ran_cfg_upd_fail_ies_o::get_value(const uint32_t value_c ret{}; switch (id) { case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 107: - ret.set_time_to_wait(); + ret.set(value_c::types::time_to_wait); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -33504,7 +36522,37 @@ presence_e ran_cfg_upd_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -33683,16 +36731,16 @@ ran_cfg_upd_ies_o::value_c ran_cfg_upd_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 82: - ret.set_ran_node_name(); + ret.set(value_c::types::ran_node_name); break; case 102: - ret.set_supported_ta_list(); + ret.set(value_c::types::supported_ta_list); break; case 21: - ret.set_default_paging_drx(); + ret.set(value_c::types::default_paging_drx); break; case 27: - ret.set_global_ran_node_id(); + ret.set(value_c::types::global_ran_node_id); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -33716,7 +36764,47 @@ presence_e ran_cfg_upd_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -33918,16 +37006,16 @@ rrc_inactive_transition_report_ies_o::value_c rrc_inactive_transition_report_ies value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 92: - ret.set_rrc_state(); + ret.set(value_c::types::rrc_state); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -33951,7 +37039,47 @@ presence_e rrc_inactive_transition_report_ies_o::get_presence(const uint32_t& id return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -34145,19 +37273,19 @@ reroute_nas_request_ies_o::value_c reroute_nas_request_ies_o::get_value(const ui value_c ret{}; switch (id) { case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 42: - ret.set_ngap_msg(); + ret.set(value_c::types::ngap_msg); break; case 3: - ret.set_amf_set_id(); + ret.set(value_c::types::amf_set_id); break; case 0: - ret.set_allowed_nssai(); + ret.set(value_c::types::allowed_nssai); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -34183,7 +37311,57 @@ presence_e reroute_nas_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -34403,16 +37581,16 @@ secondary_rat_data_usage_report_ies_o::value_c secondary_rat_data_usage_report_i value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 142: - ret.set_pdu_session_res_secondary_ratusage_list(); + ret.set(value_c::types::pdu_session_res_secondary_ratusage_list); break; case 143: - ret.set_ho_flag(); + ret.set(value_c::types::ho_flag); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -34436,7 +37614,49 @@ presence_e secondary_rat_data_usage_report_ies_o::get_presence(const uint32_t& i return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -34633,16 +37853,16 @@ trace_fail_ind_ies_o::value_c trace_fail_ind_ies_o::get_value(const uint32_t& id value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 44: - ret.set_ngran_trace_id(); + ret.set(value_c::types::ngran_trace_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -34666,7 +37886,47 @@ presence_e trace_fail_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -34859,13 +38119,13 @@ trace_start_ies_o::value_c trace_start_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 108: - ret.set_trace_activation(); + ret.set(value_c::types::trace_activation); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -34887,7 +38147,37 @@ presence_e trace_start_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -35060,16 +38350,16 @@ ue_context_mod_fail_ies_o::value_c ue_context_mod_fail_ies_o::get_value(const ui value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -35093,7 +38383,47 @@ presence_e ue_context_mod_fail_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -35304,37 +38634,37 @@ ue_context_mod_request_ies_o::value_c ue_context_mod_request_ies_o::get_value(co value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 83: - ret.set_ran_paging_prio(); + ret.set(value_c::types::ran_paging_prio); break; case 94: - ret.set_security_key(); + ret.set(value_c::types::security_key); break; case 31: - ret.set_idx_to_rfsp(); + ret.set(value_c::types::idx_to_rfsp); break; case 110: - ret.set_ue_aggregate_maximum_bit_rate(); + ret.set(value_c::types::ue_aggregate_maximum_bit_rate); break; case 119: - ret.set_ue_security_cap(); + ret.set(value_c::types::ue_security_cap); break; case 18: - ret.set_core_network_assist_info(); + ret.set(value_c::types::core_network_assist_info); break; case 24: - ret.set_emergency_fallback_ind(); + ret.set(value_c::types::emergency_fallback_ind); break; case 40: - ret.set_new_amf_ue_ngap_id(); + ret.set(value_c::types::new_amf_ue_ngap_id); break; case 91: - ret.set_rrc_inactive_transition_report_request(); + ret.set(value_c::types::rrc_inactive_transition_report_request); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -35372,7 +38702,119 @@ presence_e ue_context_mod_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + assert_choice_type("INTEGER (1..256)", 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::idx_to_rfsp() +{ + assert_choice_type("INTEGER (1..256,...)", type_.to_string(), "Value"); + return c.get(); +} +ue_aggregate_maximum_bit_rate_s& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() +{ + assert_choice_type("UEAggregateMaximumBitRate", 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(); +} +core_network_assist_info_s& ue_context_mod_request_ies_o::value_c::core_network_assist_info() +{ + assert_choice_type("CoreNetworkAssistanceInformation", type_.to_string(), "Value"); + return c.get(); +} +emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() +{ + assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); + return c.get(); +} +uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() +{ + assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + return c.get(); +} +rrc_inactive_transition_report_request_e& +ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() +{ + assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); + return c.get(); +} +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"); + 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 >(); +} +const uint16_t& ue_context_mod_request_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& ue_context_mod_request_ies_o::value_c::ue_aggregate_maximum_bit_rate() const +{ + assert_choice_type("UEAggregateMaximumBitRate", 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 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"); + return c.get(); +} +const emergency_fallback_ind_s& ue_context_mod_request_ies_o::value_c::emergency_fallback_ind() const +{ + assert_choice_type("EmergencyFallbackIndicator", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& ue_context_mod_request_ies_o::value_c::new_amf_ue_ngap_id() const +{ + assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + return c.get(); +} +const rrc_inactive_transition_report_request_e& +ue_context_mod_request_ies_o::value_c::rrc_inactive_transition_report_request() const +{ + assert_choice_type("RRCInactiveTransitionReportRequest", type_.to_string(), "Value"); + return c.get(); +} void ue_context_mod_request_ies_o::value_c::destroy_() { switch (type_) { @@ -35588,7 +39030,7 @@ SRSASN_CODE ue_context_mod_request_ies_o::value_c::pack(bit_ref& bref) const 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, false, true)); + 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)); @@ -35631,7 +39073,7 @@ SRSASN_CODE ue_context_mod_request_ies_o::value_c::unpack(bit_ref& bref) 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, false, true)); + 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)); @@ -35713,19 +39155,19 @@ ue_context_mod_resp_ies_o::value_c ue_context_mod_resp_ies_o::get_value(const ui value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 92: - ret.set_rrc_state(); + ret.set(value_c::types::rrc_state); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -35751,7 +39193,57 @@ presence_e ue_context_mod_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -35964,10 +39456,10 @@ ue_context_release_cmd_ies_o::value_c ue_context_release_cmd_ies_o::get_value(co value_c ret{}; switch (id) { case 114: - ret.set_ue_ngap_ids(); + ret.set(value_c::types::ue_ngap_ids); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -35987,7 +39479,27 @@ presence_e ue_context_release_cmd_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -36153,22 +39665,22 @@ ue_context_release_complete_ies_o::value_c ue_context_release_complete_ies_o::ge value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; case 32: - ret.set_info_on_recommended_cells_and_ran_nodes_for_paging(); + ret.set(value_c::types::info_on_recommended_cells_and_ran_nodes_for_paging); break; case 60: - ret.set_pdu_session_res_list_cxt_rel_cpl(); + ret.set(value_c::types::pdu_session_res_list_cxt_rel_cpl); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -36196,7 +39708,70 @@ presence_e ue_context_release_complete_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ue_context_release_complete_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_complete_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& 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_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("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "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("PDUSessionResourceListCxtRelCpl", 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(); +} +const uint64_t& ue_context_release_complete_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_complete_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& 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_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("InfoOnRecommendedCellsAndRANNodesForPaging", type_.to_string(), "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("PDUSessionResourceListCxtRelCpl", 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(); +} void ue_context_release_complete_ies_o::value_c::destroy_() { switch (type_) { @@ -36444,16 +40019,16 @@ ue_context_release_request_ies_o::value_c ue_context_release_request_ies_o::get_ value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 133: - ret.set_pdu_session_res_list_cxt_rel_req(); + ret.set(value_c::types::pdu_session_res_list_cxt_rel_req); break; case 15: - ret.set_cause(); + ret.set(value_c::types::cause); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -36477,7 +40052,48 @@ presence_e ue_context_release_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_() { switch (type_) { @@ -36675,13 +40291,13 @@ ue_radio_cap_check_request_ies_o::value_c ue_radio_cap_check_request_ies_o::get_ value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 117: - ret.set_ue_radio_cap(); + ret.set(value_c::types::ue_radio_cap); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -36703,7 +40319,37 @@ presence_e ue_radio_cap_check_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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(); +} +const uint64_t& ue_radio_cap_check_request_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& ue_radio_cap_check_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_check_request_ies_o::value_c::destroy_() { switch (type_) { @@ -36876,16 +40522,16 @@ ue_radio_cap_check_resp_ies_o::value_c ue_radio_cap_check_resp_ies_o::get_value( value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 30: - ret.set_ims_voice_support_ind(); + ret.set(value_c::types::ims_voice_support_ind); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -36909,7 +40555,47 @@ presence_e ue_radio_cap_check_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ue_radio_cap_check_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_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "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("IMSVoiceSupportIndicator", type_.to_string(), "Value"); + return c.get(); +} +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 +{ + assert_choice_type("INTEGER (0..1099511627775)", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_check_resp_ies_o::value_c::ran_ue_ngap_id() const +{ + assert_choice_type("INTEGER (0..4294967295)", type_.to_string(), "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("IMSVoiceSupportIndicator", type_.to_string(), "Value"); + return c.get(); +} +const crit_diagnostics_s& ue_radio_cap_check_resp_ies_o::value_c::crit_diagnostics() const +{ + assert_choice_type("CriticalityDiagnostics", type_.to_string(), "Value"); + return c.get(); +} void ue_radio_cap_check_resp_ies_o::value_c::destroy_() { switch (type_) { @@ -37101,16 +40787,16 @@ ue_radio_cap_info_ind_ies_o::value_c ue_radio_cap_info_ind_ies_o::get_value(cons value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 117: - ret.set_ue_radio_cap(); + ret.set(value_c::types::ue_radio_cap); break; case 118: - ret.set_ue_radio_cap_for_paging(); + ret.set(value_c::types::ue_radio_cap_for_paging); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -37134,7 +40820,47 @@ presence_e ue_radio_cap_info_ind_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ue_radio_cap_info_ind_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_info_ind_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_info_ind_ies_o::value_c::ue_radio_cap() +{ + assert_choice_type("OCTET STRING", type_.to_string(), "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("UERadioCapabilityForPaging", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& ue_radio_cap_info_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& ue_radio_cap_info_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& ue_radio_cap_info_ind_ies_o::value_c::ue_radio_cap() 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(); +} void ue_radio_cap_info_ind_ies_o::value_c::destroy_() { switch (type_) { @@ -37326,10 +41052,10 @@ uetnla_binding_release_request_ies_o::value_c uetnla_binding_release_request_ies value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -37349,7 +41075,27 @@ presence_e uetnla_binding_release_request_ies_o::get_presence(const uint32_t& id return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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) { @@ -37485,16 +41231,16 @@ ul_nas_transport_ies_o::value_c ul_nas_transport_ies_o::get_value(const uint32_t value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 38: - ret.set_nas_pdu(); + ret.set(value_c::types::nas_pdu); break; case 121: - ret.set_user_location_info(); + ret.set(value_c::types::user_location_info); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -37518,7 +41264,47 @@ presence_e ul_nas_transport_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ul_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& ul_nas_transport_ies_o::value_c::ran_ue_ngap_id() +{ + assert_choice_type("INTEGER (0..4294967295)", 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 >(); +} +user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() +{ + assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); + return c.get(); +} +const uint64_t& ul_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& ul_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 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 user_location_info_c& ul_nas_transport_ies_o::value_c::user_location_info() const +{ + assert_choice_type("UserLocationInformation", type_.to_string(), "Value"); + return c.get(); +} void ul_nas_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -37711,10 +41497,10 @@ ul_non_ueassociated_nrp_pa_transport_ies_o::get_value(const uint32_t& id) value_c ret{}; switch (id) { case 89: - ret.set_routing_id(); + ret.set(value_c::types::routing_id); break; case 46: - ret.set_nrp_pa_pdu(); + ret.set(value_c::types::nrp_pa_pdu); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -37734,7 +41520,27 @@ presence_e ul_non_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32 return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +unbounded_octstring& ul_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& ul_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& ul_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& ul_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 ul_non_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -37891,10 +41697,10 @@ ul_ran_cfg_transfer_ies_o::value_c ul_ran_cfg_transfer_ies_o::get_value(const ui value_c ret{}; switch (id) { case 99: - ret.set_son_cfg_transfer_ul(); + ret.set(value_c::types::son_cfg_transfer_ul); break; case 158: - ret.set_endc_son_cfg_transfer_ul(); + ret.set(value_c::types::endc_son_cfg_transfer_ul); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -37914,7 +41720,27 @@ presence_e ul_ran_cfg_transfer_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() +{ + assert_choice_type("SONConfigurationTransfer", type_.to_string(), "Value"); + return c.get(); +} +unbounded_octstring& ul_ran_cfg_transfer_ies_o::value_c::endc_son_cfg_transfer_ul() +{ + assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + return c.get >(); +} +const son_cfg_transfer_s& ul_ran_cfg_transfer_ies_o::value_c::son_cfg_transfer_ul() 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_) { @@ -38073,13 +41899,13 @@ ul_ran_status_transfer_ies_o::value_c ul_ran_status_transfer_ies_o::get_value(co value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 84: - ret.set_ran_status_transfer_transparent_container(); + ret.set(value_c::types::ran_status_transfer_transparent_container); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -38101,7 +41927,39 @@ presence_e ul_ran_status_transfer_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ul_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& ul_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& +ul_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& ul_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& ul_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& +ul_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 ul_ran_status_transfer_ies_o::value_c::destroy_() { switch (type_) { @@ -38276,16 +42134,16 @@ ul_ueassociated_nrp_pa_transport_ies_o::value_c ul_ueassociated_nrp_pa_transport value_c ret{}; switch (id) { case 10: - ret.set_amf_ue_ngap_id(); + ret.set(value_c::types::amf_ue_ngap_id); break; case 85: - ret.set_ran_ue_ngap_id(); + ret.set(value_c::types::ran_ue_ngap_id); break; case 89: - ret.set_routing_id(); + ret.set(value_c::types::routing_id); break; case 46: - ret.set_nrp_pa_pdu(); + ret.set(value_c::types::nrp_pa_pdu); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -38309,7 +42167,47 @@ presence_e ul_ueassociated_nrp_pa_transport_ies_o::get_presence(const uint32_t& return presence_e(); } -// Value ::= CLASS OPEN TYPE +// Value ::= OPEN TYPE +uint64_t& ul_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& ul_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& ul_ueassociated_nrp_pa_transport_ies_o::value_c::routing_id() +{ + assert_choice_type("OCTET STRING", type_.to_string(), "Value"); + return c.get >(); +} +unbounded_octstring& ul_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& ul_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& ul_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& ul_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& ul_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 ul_ueassociated_nrp_pa_transport_ies_o::value_c::destroy_() { switch (type_) { @@ -38518,37 +42416,37 @@ write_replace_warning_request_ies_o::value_c write_replace_warning_request_ies_o value_c ret{}; switch (id) { case 35: - ret.set_msg_id(); + ret.set(value_c::types::msg_id); break; case 95: - ret.set_serial_num(); + ret.set(value_c::types::serial_num); break; case 122: - ret.set_warning_area_list(); + ret.set(value_c::types::warning_area_list); break; case 87: - ret.set_repeat_period(); + ret.set(value_c::types::repeat_period); break; case 47: - ret.set_nof_broadcasts_requested(); + ret.set(value_c::types::nof_broadcasts_requested); break; case 125: - ret.set_warning_type(); + ret.set(value_c::types::warning_type); break; case 124: - ret.set_warning_security_info(); + ret.set(value_c::types::warning_security_info); break; case 20: - ret.set_data_coding_scheme(); + ret.set(value_c::types::data_coding_scheme); break; case 123: - ret.set_warning_msg_contents(); + ret.set(value_c::types::warning_msg_contents); break; case 17: - ret.set_concurrent_warning_msg_ind(); + ret.set(value_c::types::concurrent_warning_msg_ind); break; case 141: - ret.set_warning_area_coordinates(); + ret.set(value_c::types::warning_area_coordinates); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -38586,7 +42484,117 @@ presence_e write_replace_warning_request_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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() +{ + 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 >(); +} +unbounded_octstring& 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("ConcurrentWarningMessageInd", type_.to_string(), "Value"); + return c.get(); +} +unbounded_octstring& 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 uint32_t& write_replace_warning_request_ies_o::value_c::repeat_period() const +{ + assert_choice_type("INTEGER (0..131071)", type_.to_string(), "Value"); + return c.get(); +} +const uint32_t& write_replace_warning_request_ies_o::value_c::nof_broadcasts_requested() 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 unbounded_octstring& 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("ConcurrentWarningMessageInd", type_.to_string(), "Value"); + return c.get(); +} +const unbounded_octstring& 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_) { @@ -38934,16 +42942,16 @@ write_replace_warning_resp_ies_o::value_c write_replace_warning_resp_ies_o::get_ value_c ret{}; switch (id) { case 35: - ret.set_msg_id(); + ret.set(value_c::types::msg_id); break; case 95: - ret.set_serial_num(); + ret.set(value_c::types::serial_num); break; case 13: - ret.set_broadcast_completed_area_list(); + ret.set(value_c::types::broadcast_completed_area_list); break; case 19: - ret.set_crit_diagnostics(); + ret.set(value_c::types::crit_diagnostics); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The id=%d is not recognized", id); @@ -38967,7 +42975,47 @@ presence_e write_replace_warning_resp_ies_o::get_presence(const uint32_t& id) return presence_e(); } -// Value ::= CLASS OPEN TYPE +// 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_) { @@ -39135,30 +43183,9 @@ std::string write_replace_warning_resp_ies_o::value_c::types_opts::to_string() c return convert_enum_idx(options, 4, value, "write_replace_warning_resp_ies_o::value_c::types"); } -// LocationReport ::= SEQUENCE -SRSASN_CODE location_report_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(bit_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 -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} +template struct protocol_ie_field_s; -location_report_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -39167,7 +43194,7 @@ location_report_s::protocol_ies_l_::protocol_ies_l_() : ps_cell_info(149, crit_e::ignore) { } -SRSASN_CODE location_report_s::protocol_ies_l_::pack(bit_ref& bref) const +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; @@ -39187,7 +43214,7 @@ SRSASN_CODE location_report_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE location_report_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE location_report_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39245,7 +43272,7 @@ SRSASN_CODE location_report_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void location_report_s::protocol_ies_l_::to_json(json_writer& j) const +void location_report_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39267,22 +43294,22 @@ void location_report_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// LocationReportingControl ::= SEQUENCE -SRSASN_CODE location_report_ctrl_s::pack(bit_ref& bref) const +// LocationReport ::= SEQUENCE +SRSASN_CODE location_report_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(bit_ref& bref) +SRSASN_CODE location_report_s::unpack(bit_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 location_report_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39290,13 +43317,15 @@ void location_report_ctrl_s::to_json(json_writer& j) const j.end_obj(); } -location_report_ctrl_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE location_report_ctrl_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -39307,7 +43336,7 @@ SRSASN_CODE location_report_ctrl_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE location_report_ctrl_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE location_report_ctrl_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39347,7 +43376,7 @@ SRSASN_CODE location_report_ctrl_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void location_report_ctrl_s::protocol_ies_l_::to_json(json_writer& j) const +void location_report_ctrl_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39359,22 +43388,22 @@ void location_report_ctrl_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// LocationReportingFailureIndication ::= SEQUENCE -SRSASN_CODE location_report_fail_ind_s::pack(bit_ref& bref) const +// LocationReportingControl ::= SEQUENCE +SRSASN_CODE location_report_ctrl_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(bit_ref& bref) +SRSASN_CODE location_report_ctrl_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void location_report_fail_ind_s::to_json(json_writer& j) const +void location_report_ctrl_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39382,13 +43411,15 @@ void location_report_fail_ind_s::to_json(json_writer& j) const j.end_obj(); } -location_report_fail_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE location_report_fail_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -39399,7 +43430,7 @@ SRSASN_CODE location_report_fail_ind_s::protocol_ies_l_::pack(bit_ref& bref) con return SRSASN_SUCCESS; } -SRSASN_CODE location_report_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE location_report_fail_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39439,7 +43470,7 @@ SRSASN_CODE location_report_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void location_report_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void location_report_fail_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39451,22 +43482,22 @@ void location_report_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// NASNonDeliveryIndication ::= SEQUENCE -SRSASN_CODE nas_non_delivery_ind_s::pack(bit_ref& bref) const +// 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 nas_non_delivery_ind_s::unpack(bit_ref& bref) +SRSASN_CODE location_report_fail_ind_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void nas_non_delivery_ind_s::to_json(json_writer& j) const +void location_report_fail_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39474,14 +43505,16 @@ void nas_non_delivery_ind_s::to_json(json_writer& j) const j.end_obj(); } -nas_non_delivery_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE nas_non_delivery_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -39493,7 +43526,7 @@ SRSASN_CODE nas_non_delivery_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE nas_non_delivery_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE nas_non_delivery_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39539,7 +43572,7 @@ SRSASN_CODE nas_non_delivery_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void nas_non_delivery_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void nas_non_delivery_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39553,22 +43586,22 @@ void nas_non_delivery_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// NGReset ::= SEQUENCE -SRSASN_CODE ng_reset_s::pack(bit_ref& bref) const +// NASNonDeliveryIndication ::= SEQUENCE +SRSASN_CODE nas_non_delivery_ind_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(bit_ref& bref) +SRSASN_CODE nas_non_delivery_ind_s::unpack(bit_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 nas_non_delivery_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39576,8 +43609,10 @@ void ng_reset_s::to_json(json_writer& j) const j.end_obj(); } -ng_reset_s::protocol_ies_l_::protocol_ies_l_() : cause(15, crit_e::ignore), reset_type(88, crit_e::reject) {} -SRSASN_CODE ng_reset_s::protocol_ies_l_::pack(bit_ref& bref) const +template struct 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 { uint32_t nof_ies = 2; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -39587,7 +43622,7 @@ SRSASN_CODE ng_reset_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ng_reset_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39621,7 +43656,7 @@ SRSASN_CODE ng_reset_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ng_reset_s::protocol_ies_l_::to_json(json_writer& j) const +void ng_reset_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39631,22 +43666,22 @@ void ng_reset_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// NGResetAcknowledge ::= SEQUENCE -SRSASN_CODE ng_reset_ack_s::pack(bit_ref& bref) const +// NGReset ::= SEQUENCE +SRSASN_CODE ng_reset_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ack_s::unpack(bit_ref& bref) +SRSASN_CODE ng_reset_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ng_reset_ack_s::to_json(json_writer& j) const +void ng_reset_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39654,12 +43689,14 @@ void ng_reset_ack_s::to_json(json_writer& j) const j.end_obj(); } -ng_reset_ack_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +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; @@ -39675,7 +43712,7 @@ SRSASN_CODE ng_reset_ack_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ng_reset_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ng_reset_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39704,7 +43741,7 @@ SRSASN_CODE ng_reset_ack_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void ng_reset_ack_s::protocol_ies_l_::to_json(json_writer& j) const +void ng_reset_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); if (ue_associated_lc_ng_conn_list_present) { @@ -39718,6 +43755,110 @@ void ng_reset_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// NGResetAcknowledge ::= SEQUENCE +SRSASN_CODE ng_reset_ack_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(protocol_ies.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ng_reset_ack_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ng_reset_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 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 +{ + 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; +} +SRSASN_CODE ng_setup_fail_ies_container::unpack(bit_ref& bref) +{ + 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: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + ngap_nr_log_print(LOG_LEVEL_ERROR, "Mandatory fields are missing\n"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} +void ng_setup_fail_ies_container::to_json(json_writer& j) const +{ + 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(); +} + // NGSetupFailure ::= SEQUENCE SRSASN_CODE ng_setup_fail_s::pack(bit_ref& bref) const { @@ -39741,109 +43882,9 @@ void ng_setup_fail_s::to_json(json_writer& j) const j.end_obj(); } -ng_setup_fail_s::protocol_ies_l_::protocol_ies_l_() : - cause(15, crit_e::ignore), - time_to_wait(107, crit_e::ignore), - crit_diagnostics(19, crit_e::ignore) -{ -} -SRSASN_CODE ng_setup_fail_s::protocol_ies_l_::pack(bit_ref& bref) const -{ - 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); +template struct protocol_ie_field_s; - 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; -} -SRSASN_CODE ng_setup_fail_s::protocol_ies_l_::unpack(bit_ref& bref) -{ - 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: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - ngap_nr_log_print(LOG_LEVEL_ERROR, "Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} -void ng_setup_fail_s::protocol_ies_l_::to_json(json_writer& j) const -{ - 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(); -} - -// NGSetupRequest ::= SEQUENCE -SRSASN_CODE ng_setup_request_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(bit_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 -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ng_setup_request_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -39851,7 +43892,7 @@ ng_setup_request_s::protocol_ies_l_::protocol_ies_l_() : ue_retention_info(147, crit_e::ignore) { } -SRSASN_CODE ng_setup_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ng_setup_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += ran_node_name_present ? 1 : 0; @@ -39870,7 +43911,7 @@ SRSASN_CODE ng_setup_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ng_setup_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -39922,7 +43963,7 @@ SRSASN_CODE ng_setup_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ng_setup_request_s::protocol_ies_l_::to_json(json_writer& j) const +void ng_setup_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -39942,22 +43983,22 @@ void ng_setup_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// NGSetupResponse ::= SEQUENCE -SRSASN_CODE ng_setup_resp_s::pack(bit_ref& bref) const +// NGSetupRequest ::= SEQUENCE +SRSASN_CODE ng_setup_request_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(bit_ref& bref) +SRSASN_CODE ng_setup_request_s::unpack(bit_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 +void ng_setup_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -39965,7 +44006,9 @@ void ng_setup_resp_s::to_json(json_writer& j) const j.end_obj(); } -ng_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -39974,7 +44017,7 @@ ng_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : ue_retention_info(147, crit_e::ignore) { } -SRSASN_CODE ng_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ng_setup_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -39994,7 +44037,7 @@ SRSASN_CODE ng_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ng_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ng_setup_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40052,7 +44095,7 @@ SRSASN_CODE ng_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ng_setup_resp_s::protocol_ies_l_::to_json(json_writer& j) const +void ng_setup_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40074,22 +44117,22 @@ void ng_setup_resp_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// OverloadStart ::= SEQUENCE -SRSASN_CODE overload_start_s::pack(bit_ref& bref) const +// 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 overload_start_s::unpack(bit_ref& bref) +SRSASN_CODE ng_setup_resp_s::unpack(bit_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 +void ng_setup_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40097,13 +44140,15 @@ void overload_start_s::to_json(json_writer& j) const j.end_obj(); } -overload_start_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE overload_start_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += amf_overload_resp_present ? 1 : 0; @@ -40123,7 +44168,7 @@ SRSASN_CODE overload_start_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE overload_start_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE overload_start_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40158,7 +44203,7 @@ SRSASN_CODE overload_start_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void overload_start_s::protocol_ies_l_::to_json(json_writer& j) const +void overload_start_ies_container::to_json(json_writer& j) const { j.start_obj(); if (amf_overload_resp_present) { @@ -40176,22 +44221,22 @@ void overload_start_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// OverloadStop ::= SEQUENCE -SRSASN_CODE overload_stop_s::pack(bit_ref& bref) const +// 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_stop_s::unpack(bit_ref& bref) +SRSASN_CODE overload_start_s::unpack(bit_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 overload_start_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40221,22 +44266,22 @@ void protocol_ie_container_empty_l::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceModifyConfirm ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_confirm_s::pack(bit_ref& bref) const +// OverloadStop ::= SEQUENCE +SRSASN_CODE overload_stop_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(bit_ref& bref) +SRSASN_CODE overload_stop_s::unpack(bit_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 overload_stop_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40244,7 +44289,9 @@ void pdu_session_res_modify_confirm_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_modify_confirm_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -40252,7 +44299,7 @@ pdu_session_res_modify_confirm_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_modify_confirm_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_confirm_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; @@ -40271,7 +44318,7 @@ SRSASN_CODE pdu_session_res_modify_confirm_s::protocol_ies_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_confirm_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_confirm_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40323,7 +44370,7 @@ SRSASN_CODE pdu_session_res_modify_confirm_s::protocol_ies_l_::unpack(bit_ref& b } return SRSASN_SUCCESS; } -void pdu_session_res_modify_confirm_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_modify_confirm_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40343,22 +44390,22 @@ void pdu_session_res_modify_confirm_s::protocol_ies_l_::to_json(json_writer& j) j.end_obj(); } -// PDUSessionResourceModifyIndication ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_ind_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyConfirm ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_confirm_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_confirm_s::unpack(bit_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 pdu_session_res_modify_confirm_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40366,13 +44413,15 @@ void pdu_session_res_modify_ind_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_modify_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -40383,7 +44432,7 @@ SRSASN_CODE pdu_session_res_modify_ind_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40423,7 +44472,7 @@ SRSASN_CODE pdu_session_res_modify_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_modify_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_modify_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40435,22 +44484,22 @@ void pdu_session_res_modify_ind_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } -// PDUSessionResourceModifyRequest ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_request_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyIndication ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_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_request_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_ind_s::unpack(bit_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 pdu_session_res_modify_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40458,14 +44507,16 @@ void pdu_session_res_modify_request_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_modify_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += ran_paging_prio_present ? 1 : 0; @@ -40480,7 +44531,7 @@ SRSASN_CODE pdu_session_res_modify_request_s::protocol_ies_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40526,7 +44577,7 @@ SRSASN_CODE pdu_session_res_modify_request_s::protocol_ies_l_::unpack(bit_ref& b } return SRSASN_SUCCESS; } -void pdu_session_res_modify_request_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_modify_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40542,22 +44593,22 @@ void pdu_session_res_modify_request_s::protocol_ies_l_::to_json(json_writer& j) j.end_obj(); } -// PDUSessionResourceModifyResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_modify_resp_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyRequest ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_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_modify_resp_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_request_s::unpack(bit_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 pdu_session_res_modify_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40565,7 +44616,9 @@ void pdu_session_res_modify_resp_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_modify_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -40574,7 +44627,7 @@ pdu_session_res_modify_resp_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_modify_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_modify_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += pdu_session_res_modify_list_mod_res_present ? 1 : 0; @@ -40600,7 +44653,7 @@ SRSASN_CODE pdu_session_res_modify_resp_s::protocol_ies_l_::pack(bit_ref& bref) return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_modify_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40658,7 +44711,7 @@ SRSASN_CODE pdu_session_res_modify_resp_s::protocol_ies_l_::unpack(bit_ref& bref } return SRSASN_SUCCESS; } -void pdu_session_res_modify_resp_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_modify_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40684,22 +44737,22 @@ void pdu_session_res_modify_resp_s::protocol_ies_l_::to_json(json_writer& j) con j.end_obj(); } -// PDUSessionResourceNotify ::= SEQUENCE -SRSASN_CODE pdu_session_res_notify_s::pack(bit_ref& bref) const +// PDUSessionResourceModifyResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_modify_resp_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_modify_resp_s::unpack(bit_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 pdu_session_res_modify_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40707,7 +44760,9 @@ void pdu_session_res_notify_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_notify_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -40715,7 +44770,7 @@ pdu_session_res_notify_s::protocol_ies_l_::protocol_ies_l_() : user_location_info(121, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_notify_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_notify_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += pdu_session_res_notify_list_present ? 1 : 0; @@ -40737,7 +44792,7 @@ SRSASN_CODE pdu_session_res_notify_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_notify_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_notify_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40789,7 +44844,7 @@ SRSASN_CODE pdu_session_res_notify_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_notify_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_notify_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40811,22 +44866,22 @@ void pdu_session_res_notify_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PDUSessionResourceReleaseCommand ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_cmd_s::pack(bit_ref& bref) const +// PDUSessionResourceNotify ::= SEQUENCE +SRSASN_CODE pdu_session_res_notify_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_notify_s::unpack(bit_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 pdu_session_res_notify_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40834,7 +44889,9 @@ void pdu_session_res_release_cmd_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_release_cmd_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -40842,7 +44899,7 @@ pdu_session_res_release_cmd_s::protocol_ies_l_::protocol_ies_l_() : pdu_session_res_to_release_list_rel_cmd(79, crit_e::reject) { } -SRSASN_CODE pdu_session_res_release_cmd_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_release_cmd_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += ran_paging_prio_present ? 1 : 0; @@ -40861,7 +44918,7 @@ SRSASN_CODE pdu_session_res_release_cmd_s::protocol_ies_l_::pack(bit_ref& bref) return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_release_cmd_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -40913,7 +44970,7 @@ SRSASN_CODE pdu_session_res_release_cmd_s::protocol_ies_l_::unpack(bit_ref& bref } return SRSASN_SUCCESS; } -void pdu_session_res_release_cmd_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_release_cmd_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -40933,22 +44990,22 @@ void pdu_session_res_release_cmd_s::protocol_ies_l_::to_json(json_writer& j) con j.end_obj(); } -// PDUSessionResourceReleaseResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_release_resp_s::pack(bit_ref& bref) const +// PDUSessionResourceReleaseCommand ::= SEQUENCE +SRSASN_CODE pdu_session_res_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_resp_s::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_release_cmd_s::unpack(bit_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 pdu_session_res_release_cmd_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -40956,7 +45013,9 @@ void pdu_session_res_release_resp_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_release_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -40964,7 +45023,7 @@ pdu_session_res_release_resp_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_release_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_release_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += user_location_info_present ? 1 : 0; @@ -40983,7 +45042,7 @@ SRSASN_CODE pdu_session_res_release_resp_s::protocol_ies_l_::pack(bit_ref& bref) return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_release_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_release_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41035,7 +45094,7 @@ SRSASN_CODE pdu_session_res_release_resp_s::protocol_ies_l_::unpack(bit_ref& bre } return SRSASN_SUCCESS; } -void pdu_session_res_release_resp_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_release_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41055,22 +45114,22 @@ void pdu_session_res_release_resp_s::protocol_ies_l_::to_json(json_writer& j) co j.end_obj(); } -// PDUSessionResourceSetupRequest ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_request_s::pack(bit_ref& bref) const +// PDUSessionResourceReleaseResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_release_resp_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_release_resp_s::unpack(bit_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 pdu_session_res_release_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41078,7 +45137,9 @@ void pdu_session_res_setup_request_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_setup_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -41087,7 +45148,7 @@ pdu_session_res_setup_request_s::protocol_ies_l_::protocol_ies_l_() : ue_aggregate_maximum_bit_rate(110, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_setup_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += ran_paging_prio_present ? 1 : 0; @@ -41110,7 +45171,7 @@ SRSASN_CODE pdu_session_res_setup_request_s::protocol_ies_l_::pack(bit_ref& bref return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41168,7 +45229,7 @@ SRSASN_CODE pdu_session_res_setup_request_s::protocol_ies_l_::unpack(bit_ref& br } return SRSASN_SUCCESS; } -void pdu_session_res_setup_request_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_setup_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41192,22 +45253,22 @@ void pdu_session_res_setup_request_s::protocol_ies_l_::to_json(json_writer& j) c j.end_obj(); } -// PDUSessionResourceSetupResponse ::= SEQUENCE -SRSASN_CODE pdu_session_res_setup_resp_s::pack(bit_ref& bref) const +// PDUSessionResourceSetupRequest ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_setup_request_s::unpack(bit_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 pdu_session_res_setup_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41215,7 +45276,9 @@ void pdu_session_res_setup_resp_s::to_json(json_writer& j) const j.end_obj(); } -pdu_session_res_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -41223,7 +45286,7 @@ pdu_session_res_setup_resp_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE pdu_session_res_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pdu_session_res_setup_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += pdu_session_res_setup_list_su_res_present ? 1 : 0; @@ -41245,7 +45308,7 @@ SRSASN_CODE pdu_session_res_setup_resp_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE pdu_session_res_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pdu_session_res_setup_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41297,7 +45360,7 @@ SRSASN_CODE pdu_session_res_setup_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pdu_session_res_setup_resp_s::protocol_ies_l_::to_json(json_writer& j) const +void pdu_session_res_setup_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41319,22 +45382,22 @@ void pdu_session_res_setup_resp_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } -// PWSCancelRequest ::= SEQUENCE -SRSASN_CODE pws_cancel_request_s::pack(bit_ref& bref) const +// PDUSessionResourceSetupResponse ::= SEQUENCE +SRSASN_CODE pdu_session_res_setup_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(bit_ref& bref) +SRSASN_CODE pdu_session_res_setup_resp_s::unpack(bit_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 pdu_session_res_setup_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41342,14 +45405,16 @@ void pws_cancel_request_s::to_json(json_writer& j) const j.end_obj(); } -pws_cancel_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pws_cancel_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += warning_area_list_present ? 1 : 0; @@ -41367,7 +45432,7 @@ SRSASN_CODE pws_cancel_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pws_cancel_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41413,7 +45478,7 @@ SRSASN_CODE pws_cancel_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pws_cancel_request_s::protocol_ies_l_::to_json(json_writer& j) const +void pws_cancel_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41431,22 +45496,22 @@ void pws_cancel_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PWSCancelResponse ::= SEQUENCE -SRSASN_CODE pws_cancel_resp_s::pack(bit_ref& bref) const +// PWSCancelRequest ::= SEQUENCE +SRSASN_CODE pws_cancel_request_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(bit_ref& bref) +SRSASN_CODE pws_cancel_request_s::unpack(bit_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 pws_cancel_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41454,14 +45519,16 @@ void pws_cancel_resp_s::to_json(json_writer& j) const j.end_obj(); } -pws_cancel_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pws_cancel_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += broadcast_cancelled_area_list_present ? 1 : 0; @@ -41479,7 +45546,7 @@ SRSASN_CODE pws_cancel_resp_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pws_cancel_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pws_cancel_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41525,7 +45592,7 @@ SRSASN_CODE pws_cancel_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pws_cancel_resp_s::protocol_ies_l_::to_json(json_writer& j) const +void pws_cancel_resp_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41543,22 +45610,22 @@ void pws_cancel_resp_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PWSFailureIndication ::= SEQUENCE -SRSASN_CODE pws_fail_ind_s::pack(bit_ref& bref) const +// PWSCancelResponse ::= SEQUENCE +SRSASN_CODE pws_cancel_resp_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(bit_ref& bref) +SRSASN_CODE pws_cancel_resp_s::unpack(bit_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 pws_cancel_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41566,12 +45633,14 @@ void pws_fail_ind_s::to_json(json_writer& j) const j.end_obj(); } -pws_fail_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pws_fail_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -41581,7 +45650,7 @@ SRSASN_CODE pws_fail_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pws_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pws_fail_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41615,7 +45684,7 @@ SRSASN_CODE pws_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pws_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void pws_fail_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41625,22 +45694,22 @@ void pws_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PWSRestartIndication ::= SEQUENCE -SRSASN_CODE pws_restart_ind_s::pack(bit_ref& bref) const +// PWSFailureIndication ::= SEQUENCE +SRSASN_CODE pws_fail_ind_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(bit_ref& bref) +SRSASN_CODE pws_fail_ind_s::unpack(bit_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 pws_fail_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41648,14 +45717,16 @@ void pws_restart_ind_s::to_json(json_writer& j) const j.end_obj(); } -pws_restart_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE pws_restart_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += emergency_area_id_list_for_restart_present ? 1 : 0; @@ -41670,7 +45741,7 @@ SRSASN_CODE pws_restart_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE pws_restart_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE pws_restart_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41716,7 +45787,7 @@ SRSASN_CODE pws_restart_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void pws_restart_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void pws_restart_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41732,22 +45803,22 @@ void pws_restart_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// Paging ::= SEQUENCE -SRSASN_CODE paging_s::pack(bit_ref& bref) const +// PWSRestartIndication ::= SEQUENCE +SRSASN_CODE pws_restart_ind_s::pack(bit_ref& bref) const { bref.pack(ext, 1); HANDLE_CODE(protocol_ies.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE paging_s::unpack(bit_ref& bref) +SRSASN_CODE pws_restart_ind_s::unpack(bit_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 pws_restart_ind_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41755,7 +45826,9 @@ void paging_s::to_json(json_writer& j) const j.end_obj(); } -paging_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -41765,7 +45838,7 @@ paging_s::protocol_ies_l_::protocol_ies_l_() : assist_data_for_paging(11, crit_e::ignore) { } -SRSASN_CODE paging_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE paging_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += paging_drx_present ? 1 : 0; @@ -41795,7 +45868,7 @@ SRSASN_CODE paging_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE paging_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE paging_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41859,7 +45932,7 @@ SRSASN_CODE paging_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void paging_s::protocol_ies_l_::to_json(json_writer& j) const +void paging_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -41889,22 +45962,22 @@ void paging_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PathSwitchRequest ::= SEQUENCE -SRSASN_CODE path_switch_request_s::pack(bit_ref& bref) const +// Paging ::= SEQUENCE +SRSASN_CODE paging_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(bit_ref& bref) +SRSASN_CODE paging_s::unpack(bit_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 paging_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -41912,7 +45985,9 @@ void path_switch_request_s::to_json(json_writer& j) const j.end_obj(); } -path_switch_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -41921,7 +45996,7 @@ path_switch_request_s::protocol_ies_l_::protocol_ies_l_() : pdu_session_res_failed_to_setup_list_ps_req(57, crit_e::ignore) { } -SRSASN_CODE path_switch_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_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; @@ -41938,7 +46013,7 @@ SRSASN_CODE path_switch_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE path_switch_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -41996,7 +46071,7 @@ SRSASN_CODE path_switch_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void path_switch_request_s::protocol_ies_l_::to_json(json_writer& j) const +void path_switch_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -42016,22 +46091,22 @@ void path_switch_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PathSwitchRequestAcknowledge ::= SEQUENCE -SRSASN_CODE path_switch_request_ack_s::pack(bit_ref& bref) const +// PathSwitchRequest ::= SEQUENCE +SRSASN_CODE path_switch_request_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(bit_ref& bref) +SRSASN_CODE path_switch_request_s::unpack(bit_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 path_switch_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42039,7 +46114,9 @@ void path_switch_request_ack_s::to_json(json_writer& j) const j.end_obj(); } -path_switch_request_ack_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -42054,7 +46131,7 @@ path_switch_request_ack_s::protocol_ies_l_::protocol_ies_l_() : redirection_voice_fallback(146, crit_e::ignore) { } -SRSASN_CODE path_switch_request_ack_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE path_switch_request_ack_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 5; nof_ies += ue_security_cap_present ? 1 : 0; @@ -42095,7 +46172,7 @@ SRSASN_CODE path_switch_request_ack_s::protocol_ies_l_::pack(bit_ref& bref) cons return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE path_switch_request_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42189,7 +46266,7 @@ SRSASN_CODE path_switch_request_ack_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void path_switch_request_ack_s::protocol_ies_l_::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(""); @@ -42233,22 +46310,22 @@ void path_switch_request_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// PathSwitchRequestFailure ::= SEQUENCE -SRSASN_CODE path_switch_request_fail_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 path_switch_request_fail_s::unpack(bit_ref& bref) +SRSASN_CODE path_switch_request_ack_s::unpack(bit_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 path_switch_request_ack_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42256,14 +46333,16 @@ void path_switch_request_fail_s::to_json(json_writer& j) const j.end_obj(); } -path_switch_request_fail_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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) { } -SRSASN_CODE path_switch_request_fail_s::protocol_ies_l_::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; @@ -42278,7 +46357,7 @@ SRSASN_CODE path_switch_request_fail_s::protocol_ies_l_::pack(bit_ref& bref) con return SRSASN_SUCCESS; } -SRSASN_CODE path_switch_request_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE path_switch_request_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42324,7 +46403,7 @@ SRSASN_CODE path_switch_request_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void path_switch_request_fail_s::protocol_ies_l_::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(""); @@ -42340,6 +46419,29 @@ void path_switch_request_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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 path_switch_request_fail_s::unpack(bit_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 +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + template private_ie_container_item_s::private_ie_container_item_s(private_ie_id_c id_, crit_e crit_) : id(id_), @@ -42376,39 +46478,7 @@ void private_ie_container_item_s::to_json(json_writer& j) const j.write_fieldname("id"); id.to_json(j); j.write_str("criticality", crit.to_string()); - ; - 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(bit_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(); } SRSASN_CODE private_ie_container_empty_l::pack(bit_ref& bref) const @@ -42433,37 +46503,47 @@ void private_ie_container_empty_l::to_json(json_writer& j) const j.end_obj(); } -// RANConfigurationUpdate ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_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 ran_cfg_upd_s::unpack(bit_ref& bref) +SRSASN_CODE private_msg_s::unpack(bit_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 ran_cfg_upd_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(); } -ran_cfg_upd_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +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; @@ -42487,7 +46567,7 @@ SRSASN_CODE ran_cfg_upd_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42528,7 +46608,7 @@ SRSASN_CODE ran_cfg_upd_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void ran_cfg_upd_s::protocol_ies_l_::to_json(json_writer& j) const +void ran_cfg_upd_ies_container::to_json(json_writer& j) const { j.start_obj(); if (ran_node_name_present) { @@ -42550,22 +46630,22 @@ void ran_cfg_upd_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// RANConfigurationUpdateAcknowledge ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_ack_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 ran_cfg_upd_ack_s::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ran_cfg_upd_ack_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"); @@ -42573,8 +46653,10 @@ void ran_cfg_upd_ack_s::to_json(json_writer& j) const j.end_obj(); } -ran_cfg_upd_ack_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) {} -SRSASN_CODE ran_cfg_upd_ack_s::protocol_ies_l_::pack(bit_ref& bref) const +template struct protocol_ie_field_s; + +ran_cfg_upd_ack_ies_container::ran_cfg_upd_ack_ies_container() : crit_diagnostics(19, crit_e::ignore) {} +SRSASN_CODE ran_cfg_upd_ack_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -42586,7 +46668,7 @@ SRSASN_CODE ran_cfg_upd_ack_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_ack_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_ack_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42609,7 +46691,7 @@ SRSASN_CODE ran_cfg_upd_ack_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void ran_cfg_upd_ack_s::protocol_ies_l_::to_json(json_writer& j) const +void ran_cfg_upd_ack_ies_container::to_json(json_writer& j) const { j.start_obj(); if (crit_diagnostics_present) { @@ -42619,22 +46701,22 @@ void ran_cfg_upd_ack_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// RANConfigurationUpdateFailure ::= SEQUENCE -SRSASN_CODE ran_cfg_upd_fail_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)); return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_fail_s::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_ack_s::unpack(bit_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 ran_cfg_upd_ack_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -42642,13 +46724,15 @@ void ran_cfg_upd_fail_s::to_json(json_writer& j) const j.end_obj(); } -ran_cfg_upd_fail_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE ran_cfg_upd_fail_s::protocol_ies_l_::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; @@ -42665,7 +46749,7 @@ SRSASN_CODE ran_cfg_upd_fail_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ran_cfg_upd_fail_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_fail_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42705,7 +46789,7 @@ SRSASN_CODE ran_cfg_upd_fail_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ran_cfg_upd_fail_s::protocol_ies_l_::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(""); @@ -42721,22 +46805,22 @@ void ran_cfg_upd_fail_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// RRCInactiveTransitionReport ::= SEQUENCE -SRSASN_CODE rrc_inactive_transition_report_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 rrc_inactive_transition_report_s::unpack(bit_ref& bref) +SRSASN_CODE ran_cfg_upd_fail_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void rrc_inactive_transition_report_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"); @@ -42744,14 +46828,16 @@ void rrc_inactive_transition_report_s::to_json(json_writer& j) const j.end_obj(); } -rrc_inactive_transition_report_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE rrc_inactive_transition_report_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -42763,7 +46849,7 @@ SRSASN_CODE rrc_inactive_transition_report_s::protocol_ies_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE rrc_inactive_transition_report_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE rrc_inactive_transition_report_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42809,7 +46895,7 @@ SRSASN_CODE rrc_inactive_transition_report_s::protocol_ies_l_::unpack(bit_ref& b } return SRSASN_SUCCESS; } -void rrc_inactive_transition_report_s::protocol_ies_l_::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(""); @@ -42823,22 +46909,22 @@ void rrc_inactive_transition_report_s::protocol_ies_l_::to_json(json_writer& j) j.end_obj(); } -// RerouteNASRequest ::= SEQUENCE -SRSASN_CODE reroute_nas_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 reroute_nas_request_s::unpack(bit_ref& bref) +SRSASN_CODE rrc_inactive_transition_report_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void reroute_nas_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"); @@ -42846,7 +46932,9 @@ void reroute_nas_request_s::to_json(json_writer& j) const j.end_obj(); } -reroute_nas_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -42854,7 +46942,7 @@ reroute_nas_request_s::protocol_ies_l_::protocol_ies_l_() : allowed_nssai(0, crit_e::reject) { } -SRSASN_CODE reroute_nas_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE reroute_nas_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += amf_ue_ngap_id_present ? 1 : 0; @@ -42873,7 +46961,7 @@ SRSASN_CODE reroute_nas_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE reroute_nas_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE reroute_nas_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -42925,7 +47013,7 @@ SRSASN_CODE reroute_nas_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void reroute_nas_request_s::protocol_ies_l_::to_json(json_writer& j) const +void reroute_nas_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -42945,22 +47033,22 @@ void reroute_nas_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// SecondaryRATDataUsageReport ::= SEQUENCE -SRSASN_CODE secondary_rat_data_usage_report_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 secondary_rat_data_usage_report_s::unpack(bit_ref& bref) +SRSASN_CODE reroute_nas_request_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void secondary_rat_data_usage_report_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"); @@ -42968,14 +47056,16 @@ void secondary_rat_data_usage_report_s::to_json(json_writer& j) const j.end_obj(); } -secondary_rat_data_usage_report_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::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 += ho_flag_present ? 1 : 0; @@ -42990,7 +47080,7 @@ SRSASN_CODE secondary_rat_data_usage_report_s::protocol_ies_l_::pack(bit_ref& br return SRSASN_SUCCESS; } -SRSASN_CODE secondary_rat_data_usage_report_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE secondary_rat_data_usage_report_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43036,7 +47126,7 @@ SRSASN_CODE secondary_rat_data_usage_report_s::protocol_ies_l_::unpack(bit_ref& } return SRSASN_SUCCESS; } -void secondary_rat_data_usage_report_s::protocol_ies_l_::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(""); @@ -43052,22 +47142,22 @@ void secondary_rat_data_usage_report_s::protocol_ies_l_::to_json(json_writer& j) j.end_obj(); } -// TraceFailureIndication ::= SEQUENCE -SRSASN_CODE trace_fail_ind_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 trace_fail_ind_s::unpack(bit_ref& bref) +SRSASN_CODE secondary_rat_data_usage_report_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void trace_fail_ind_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"); @@ -43075,14 +47165,16 @@ void trace_fail_ind_s::to_json(json_writer& j) const j.end_obj(); } -trace_fail_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE trace_fail_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -43094,7 +47186,7 @@ SRSASN_CODE trace_fail_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE trace_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE trace_fail_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43140,7 +47232,7 @@ SRSASN_CODE trace_fail_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void trace_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const +void trace_fail_ind_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -43154,22 +47246,22 @@ void trace_fail_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// TraceStart ::= SEQUENCE -SRSASN_CODE trace_start_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 trace_start_s::unpack(bit_ref& bref) +SRSASN_CODE trace_fail_ind_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void trace_start_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"); @@ -43177,13 +47269,15 @@ void trace_start_s::to_json(json_writer& j) const j.end_obj(); } -trace_start_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE trace_start_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -43194,7 +47288,7 @@ SRSASN_CODE trace_start_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE trace_start_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE trace_start_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43234,7 +47328,7 @@ SRSASN_CODE trace_start_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void trace_start_s::protocol_ies_l_::to_json(json_writer& j) const +void trace_start_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -43246,6 +47340,115 @@ void trace_start_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } +// 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 trace_start_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void trace_start_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + +template struct 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 +{ + 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; +} +SRSASN_CODE ue_context_mod_fail_ies_container::unpack(bit_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; + 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: + ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); + return SRSASN_ERROR_DECODE_FAIL; + } + } + if (nof_mandatory_ies > 0) { + ngap_nr_log_print(LOG_LEVEL_ERROR, "Mandatory fields are missing\n"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} +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); + j.write_fieldname(""); + cause.to_json(j); + if (crit_diagnostics_present) { + j.write_fieldname(""); + crit_diagnostics.to_json(j); + } + j.end_obj(); +} + // UEContextModificationFailure ::= SEQUENCE SRSASN_CODE ue_context_mod_fail_s::pack(bit_ref& bref) const { @@ -43269,114 +47472,9 @@ void ue_context_mod_fail_s::to_json(json_writer& j) const j.end_obj(); } -ue_context_mod_fail_s::protocol_ies_l_::protocol_ies_l_() : - 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_s::protocol_ies_l_::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(cause.pack(bref)); - if (crit_diagnostics_present) { - HANDLE_CODE(crit_diagnostics.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_context_mod_fail_s::protocol_ies_l_::unpack(bit_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; - 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: - ngap_nr_log_print(LOG_LEVEL_ERROR, "Unpacked object ID=%d is not recognized\n", c.id); - return SRSASN_ERROR_DECODE_FAIL; - } - } - if (nof_mandatory_ies > 0) { - ngap_nr_log_print(LOG_LEVEL_ERROR, "Mandatory fields are missing\n"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} -void ue_context_mod_fail_s::protocol_ies_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(""); - cause.to_json(j); - if (crit_diagnostics_present) { - j.write_fieldname(""); - crit_diagnostics.to_json(j); - } - j.end_obj(); -} +template struct protocol_ie_field_s; -// 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 ue_context_mod_request_s::unpack(bit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(protocol_ies.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ue_context_mod_request_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("protocolIEs"); - protocol_ies.to_json(j); - j.end_obj(); -} - -ue_context_mod_request_s::protocol_ies_l_::protocol_ies_l_() : +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), @@ -43390,7 +47488,7 @@ ue_context_mod_request_s::protocol_ies_l_::protocol_ies_l_() : rrc_inactive_transition_report_request(91, crit_e::ignore) { } -SRSASN_CODE ue_context_mod_request_s::protocol_ies_l_::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 += ran_paging_prio_present ? 1 : 0; @@ -43436,7 +47534,7 @@ SRSASN_CODE ue_context_mod_request_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_mod_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_context_mod_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43524,7 +47622,7 @@ SRSASN_CODE ue_context_mod_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_context_mod_request_s::protocol_ies_l_::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(""); @@ -43570,22 +47668,22 @@ void ue_context_mod_request_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UEContextModificationResponse ::= SEQUENCE -SRSASN_CODE ue_context_mod_resp_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 ue_context_mod_resp_s::unpack(bit_ref& bref) +SRSASN_CODE ue_context_mod_request_s::unpack(bit_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 +void ue_context_mod_request_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43593,7 +47691,9 @@ void ue_context_mod_resp_s::to_json(json_writer& j) const j.end_obj(); } -ue_context_mod_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -43601,7 +47701,7 @@ ue_context_mod_resp_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE ue_context_mod_resp_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ue_context_mod_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += rrc_state_present ? 1 : 0; @@ -43623,7 +47723,7 @@ SRSASN_CODE ue_context_mod_resp_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_mod_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_context_mod_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43675,7 +47775,7 @@ SRSASN_CODE ue_context_mod_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_context_mod_resp_s::protocol_ies_l_::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(""); @@ -43697,22 +47797,22 @@ void ue_context_mod_resp_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UEContextReleaseCommand ::= SEQUENCE -SRSASN_CODE ue_context_release_cmd_s::pack(bit_ref& bref) const +// 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_release_cmd_s::unpack(bit_ref& bref) +SRSASN_CODE ue_context_mod_resp_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_context_release_cmd_s::to_json(json_writer& j) const +void ue_context_mod_resp_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -43720,12 +47820,14 @@ void ue_context_release_cmd_s::to_json(json_writer& j) const j.end_obj(); } -ue_context_release_cmd_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +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); @@ -43735,7 +47837,7 @@ SRSASN_CODE ue_context_release_cmd_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_release_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_cmd_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43769,7 +47871,7 @@ SRSASN_CODE ue_context_release_cmd_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_context_release_cmd_s::protocol_ies_l_::to_json(json_writer& j) const +void ue_context_release_cmd_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -43779,22 +47881,22 @@ void ue_context_release_cmd_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UEContextReleaseComplete ::= SEQUENCE -SRSASN_CODE ue_context_release_complete_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 ue_context_release_complete_s::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_cmd_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_context_release_complete_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"); @@ -43802,7 +47904,9 @@ void ue_context_release_complete_s::to_json(json_writer& j) const j.end_obj(); } -ue_context_release_complete_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -43811,7 +47915,7 @@ ue_context_release_complete_s::protocol_ies_l_::protocol_ies_l_() : crit_diagnostics(19, crit_e::ignore) { } -SRSASN_CODE ue_context_release_complete_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ue_context_release_complete_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += user_location_info_present ? 1 : 0; @@ -43837,7 +47941,7 @@ SRSASN_CODE ue_context_release_complete_s::protocol_ies_l_::pack(bit_ref& bref) return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_release_complete_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_complete_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -43896,7 +48000,7 @@ SRSASN_CODE ue_context_release_complete_s::protocol_ies_l_::unpack(bit_ref& bref } return SRSASN_SUCCESS; } -void ue_context_release_complete_s::protocol_ies_l_::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(""); @@ -43922,22 +48026,22 @@ void ue_context_release_complete_s::protocol_ies_l_::to_json(json_writer& j) con j.end_obj(); } -// UEContextReleaseRequest ::= SEQUENCE -SRSASN_CODE ue_context_release_request_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 ue_context_release_request_s::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_complete_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_context_release_request_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"); @@ -43945,14 +48049,16 @@ void ue_context_release_request_s::to_json(json_writer& j) const j.end_obj(); } -ue_context_release_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::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 += pdu_session_res_list_cxt_rel_req_present ? 1 : 0; @@ -43967,7 +48073,7 @@ SRSASN_CODE ue_context_release_request_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE ue_context_release_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44013,7 +48119,7 @@ SRSASN_CODE ue_context_release_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_context_release_request_s::protocol_ies_l_::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(""); @@ -44029,22 +48135,22 @@ void ue_context_release_request_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } -// UERadioCapabilityCheckRequest ::= SEQUENCE -SRSASN_CODE ue_radio_cap_check_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 ue_radio_cap_check_request_s::unpack(bit_ref& bref) +SRSASN_CODE ue_context_release_request_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_radio_cap_check_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"); @@ -44052,13 +48158,15 @@ void ue_radio_cap_check_request_s::to_json(json_writer& j) const j.end_obj(); } -ue_radio_cap_check_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::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 += ue_radio_cap_present ? 1 : 0; @@ -44072,7 +48180,7 @@ SRSASN_CODE ue_radio_cap_check_request_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_check_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_check_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44112,7 +48220,7 @@ SRSASN_CODE ue_radio_cap_check_request_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_radio_cap_check_request_s::protocol_ies_l_::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(""); @@ -44126,22 +48234,22 @@ void ue_radio_cap_check_request_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } -// UERadioCapabilityCheckResponse ::= SEQUENCE -SRSASN_CODE ue_radio_cap_check_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 ue_radio_cap_check_resp_s::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_check_request_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_radio_cap_check_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"); @@ -44149,14 +48257,16 @@ void ue_radio_cap_check_resp_s::to_json(json_writer& j) const j.end_obj(); } -ue_radio_cap_check_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_check_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += crit_diagnostics_present ? 1 : 0; @@ -44171,7 +48281,7 @@ SRSASN_CODE ue_radio_cap_check_resp_s::protocol_ies_l_::pack(bit_ref& bref) cons return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_check_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_check_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44217,7 +48327,7 @@ SRSASN_CODE ue_radio_cap_check_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_radio_cap_check_resp_s::protocol_ies_l_::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(""); @@ -44233,22 +48343,22 @@ void ue_radio_cap_check_resp_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UERadioCapabilityInfoIndication ::= SEQUENCE -SRSASN_CODE ue_radio_cap_info_ind_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 ue_radio_cap_info_ind_s::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_check_resp_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ue_radio_cap_info_ind_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"); @@ -44256,14 +48366,16 @@ void ue_radio_cap_info_ind_s::to_json(json_writer& j) const j.end_obj(); } -ue_radio_cap_info_ind_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ue_radio_cap_info_ind_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 3; nof_ies += ue_radio_cap_for_paging_present ? 1 : 0; @@ -44278,7 +48390,7 @@ SRSASN_CODE ue_radio_cap_info_ind_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_cap_info_ind_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_info_ind_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44324,7 +48436,7 @@ SRSASN_CODE ue_radio_cap_info_ind_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ue_radio_cap_info_ind_s::protocol_ies_l_::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(""); @@ -44340,22 +48452,22 @@ void ue_radio_cap_info_ind_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UETNLABindingReleaseRequest ::= SEQUENCE -SRSASN_CODE uetnla_binding_release_request_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 uetnla_binding_release_request_s::unpack(bit_ref& bref) +SRSASN_CODE ue_radio_cap_info_ind_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void uetnla_binding_release_request_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"); @@ -44363,12 +48475,14 @@ void uetnla_binding_release_request_s::to_json(json_writer& j) const j.end_obj(); } -uetnla_binding_release_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::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); @@ -44378,7 +48492,7 @@ SRSASN_CODE uetnla_binding_release_request_s::protocol_ies_l_::pack(bit_ref& bre return SRSASN_SUCCESS; } -SRSASN_CODE uetnla_binding_release_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE uetnla_binding_release_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44412,7 +48526,7 @@ SRSASN_CODE uetnla_binding_release_request_s::protocol_ies_l_::unpack(bit_ref& b } return SRSASN_SUCCESS; } -void uetnla_binding_release_request_s::protocol_ies_l_::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(""); @@ -44422,22 +48536,22 @@ void uetnla_binding_release_request_s::protocol_ies_l_::to_json(json_writer& j) j.end_obj(); } -// UplinkNASTransport ::= SEQUENCE -SRSASN_CODE ul_nas_transport_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 ul_nas_transport_s::unpack(bit_ref& bref) +SRSASN_CODE uetnla_binding_release_request_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ul_nas_transport_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"); @@ -44445,14 +48559,16 @@ void ul_nas_transport_s::to_json(json_writer& j) const j.end_obj(); } -ul_nas_transport_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ul_nas_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -44464,7 +48580,7 @@ SRSASN_CODE ul_nas_transport_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ul_nas_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ul_nas_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44510,7 +48626,7 @@ SRSASN_CODE ul_nas_transport_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ul_nas_transport_s::protocol_ies_l_::to_json(json_writer& j) const +void ul_nas_transport_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -44524,22 +48640,22 @@ void ul_nas_transport_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UplinkNonUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_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 ul_non_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) +SRSASN_CODE ul_nas_transport_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ul_non_ueassociated_nrp_pa_transport_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"); @@ -44547,12 +48663,14 @@ void ul_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const j.end_obj(); } -ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::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; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -44562,7 +48680,7 @@ SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_re return SRSASN_SUCCESS; } -SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44596,7 +48714,7 @@ SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ } return SRSASN_SUCCESS; } -void ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::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(""); @@ -44606,22 +48724,22 @@ void ul_non_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_write j.end_obj(); } -// UplinkRANConfigurationTransfer ::= SEQUENCE -SRSASN_CODE ul_ran_cfg_transfer_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 ul_ran_cfg_transfer_s::unpack(bit_ref& bref) +SRSASN_CODE ul_non_ueassociated_nrp_pa_transport_s::unpack(bit_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 +void ul_non_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("protocolIEs"); @@ -44629,12 +48747,14 @@ void ul_ran_cfg_transfer_s::to_json(json_writer& j) const j.end_obj(); } -ul_ran_cfg_transfer_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ul_ran_cfg_transfer_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 0; nof_ies += son_cfg_transfer_ul_present ? 1 : 0; @@ -44650,7 +48770,7 @@ SRSASN_CODE ul_ran_cfg_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ul_ran_cfg_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ul_ran_cfg_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44679,7 +48799,7 @@ SRSASN_CODE ul_ran_cfg_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) return SRSASN_SUCCESS; } -void ul_ran_cfg_transfer_s::protocol_ies_l_::to_json(json_writer& j) const +void ul_ran_cfg_transfer_ies_container::to_json(json_writer& j) const { j.start_obj(); if (son_cfg_transfer_ul_present) { @@ -44693,22 +48813,22 @@ void ul_ran_cfg_transfer_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UplinkRANStatusTransfer ::= SEQUENCE -SRSASN_CODE ul_ran_status_transfer_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 ul_ran_status_transfer_s::unpack(bit_ref& bref) +SRSASN_CODE ul_ran_cfg_transfer_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ul_ran_status_transfer_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"); @@ -44716,13 +48836,15 @@ void ul_ran_status_transfer_s::to_json(json_writer& j) const j.end_obj(); } -ul_ran_status_transfer_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +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); @@ -44733,7 +48855,7 @@ SRSASN_CODE ul_ran_status_transfer_s::protocol_ies_l_::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ul_ran_status_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ul_ran_status_transfer_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44773,7 +48895,7 @@ SRSASN_CODE ul_ran_status_transfer_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void ul_ran_status_transfer_s::protocol_ies_l_::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(""); @@ -44785,22 +48907,22 @@ void ul_ran_status_transfer_s::protocol_ies_l_::to_json(json_writer& j) const j.end_obj(); } -// UplinkUEAssociatedNRPPaTransport ::= SEQUENCE -SRSASN_CODE ul_ueassociated_nrp_pa_transport_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 ul_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) +SRSASN_CODE ul_ran_status_transfer_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void ul_ueassociated_nrp_pa_transport_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"); @@ -44808,14 +48930,16 @@ void ul_ueassociated_nrp_pa_transport_s::to_json(json_writer& j) const j.end_obj(); } -ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; pack_length(bref, nof_ies, 0u, 65535u, true); @@ -44827,7 +48951,7 @@ SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::pack(bit_ref& b return SRSASN_SUCCESS; } -SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE ul_ueassociated_nrp_pa_transport_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -44873,7 +48997,7 @@ SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::unpack(bit_ref& } return SRSASN_SUCCESS; } -void ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::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(""); @@ -44887,22 +49011,22 @@ void ul_ueassociated_nrp_pa_transport_s::protocol_ies_l_::to_json(json_writer& j j.end_obj(); } -// WriteReplaceWarningRequest ::= SEQUENCE -SRSASN_CODE write_replace_warning_request_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 write_replace_warning_request_s::unpack(bit_ref& bref) +SRSASN_CODE ul_ueassociated_nrp_pa_transport_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void write_replace_warning_request_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"); @@ -44910,7 +49034,9 @@ void write_replace_warning_request_s::to_json(json_writer& j) const j.end_obj(); } -write_replace_warning_request_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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), @@ -44924,7 +49050,7 @@ write_replace_warning_request_s::protocol_ies_l_::protocol_ies_l_() : warning_area_coordinates(141, crit_e::ignore) { } -SRSASN_CODE write_replace_warning_request_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_request_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 4; nof_ies += warning_area_list_present ? 1 : 0; @@ -44964,7 +49090,7 @@ SRSASN_CODE write_replace_warning_request_s::protocol_ies_l_::pack(bit_ref& bref return SRSASN_SUCCESS; } -SRSASN_CODE write_replace_warning_request_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE write_replace_warning_request_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -45052,7 +49178,7 @@ SRSASN_CODE write_replace_warning_request_s::protocol_ies_l_::unpack(bit_ref& br } return SRSASN_SUCCESS; } -void write_replace_warning_request_s::protocol_ies_l_::to_json(json_writer& j) const +void write_replace_warning_request_ies_container::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname(""); @@ -45094,22 +49220,22 @@ void write_replace_warning_request_s::protocol_ies_l_::to_json(json_writer& j) c j.end_obj(); } -// WriteReplaceWarningResponse ::= SEQUENCE -SRSASN_CODE write_replace_warning_resp_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 write_replace_warning_resp_s::unpack(bit_ref& bref) +SRSASN_CODE write_replace_warning_request_s::unpack(bit_ref& bref) { bref.unpack(ext, 1); HANDLE_CODE(protocol_ies.unpack(bref)); return SRSASN_SUCCESS; } -void write_replace_warning_resp_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"); @@ -45117,14 +49243,16 @@ void write_replace_warning_resp_s::to_json(json_writer& j) const j.end_obj(); } -write_replace_warning_resp_s::protocol_ies_l_::protocol_ies_l_() : +template struct 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_s::protocol_ies_l_::pack(bit_ref& bref) const +SRSASN_CODE write_replace_warning_resp_ies_container::pack(bit_ref& bref) const { uint32_t nof_ies = 2; nof_ies += broadcast_completed_area_list_present ? 1 : 0; @@ -45142,7 +49270,7 @@ SRSASN_CODE write_replace_warning_resp_s::protocol_ies_l_::pack(bit_ref& bref) c return SRSASN_SUCCESS; } -SRSASN_CODE write_replace_warning_resp_s::protocol_ies_l_::unpack(bit_ref& bref) +SRSASN_CODE write_replace_warning_resp_ies_container::unpack(bit_ref& bref) { uint32_t nof_ies = 0; unpack_length(nof_ies, bref, 0u, 65535u, true); @@ -45188,7 +49316,7 @@ SRSASN_CODE write_replace_warning_resp_s::protocol_ies_l_::unpack(bit_ref& bref) } return SRSASN_SUCCESS; } -void write_replace_warning_resp_s::protocol_ies_l_::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(""); @@ -45206,6 +49334,29 @@ void write_replace_warning_resp_s::protocol_ies_l_::to_json(json_writer& j) cons j.end_obj(); } +// 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 write_replace_warning_resp_s::unpack(bit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(protocol_ies.unpack(bref)); + + return SRSASN_SUCCESS; +} +void write_replace_warning_resp_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("protocolIEs"); + protocol_ies.to_json(j); + j.end_obj(); +} + // NGAP-ELEMENTARY-PROCEDURES-CLASS-1 ::= OBJECT SET OF NGAP-ELEMENTARY-PROCEDURE uint16_t ngap_elem_procs_class_minus1_o::idx_to_proc_code(uint32_t idx) { @@ -45227,58 +49378,58 @@ ngap_elem_procs_class_minus1_o::init_msg_c ngap_elem_procs_class_minus1_o::get_i init_msg_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(init_msg_c::types::amf_cfg_upd); break; case 10: - ret.set_ho_cancel(); + ret.set(init_msg_c::types::ho_cancel); break; case 12: - ret.set_ho_required(); + ret.set(init_msg_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(init_msg_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(init_msg_c::types::init_context_setup_request); break; case 20: - ret.set_ng_reset(); + ret.set(init_msg_c::types::ng_reset); break; case 21: - ret.set_ng_setup_request(); + ret.set(init_msg_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(init_msg_c::types::path_switch_request); break; case 26: - ret.set_pdu_session_res_modify_request(); + ret.set(init_msg_c::types::pdu_session_res_modify_request); break; case 27: - ret.set_pdu_session_res_modify_ind(); + ret.set(init_msg_c::types::pdu_session_res_modify_ind); break; case 28: - ret.set_pdu_session_res_release_cmd(); + ret.set(init_msg_c::types::pdu_session_res_release_cmd); break; case 29: - ret.set_pdu_session_res_setup_request(); + ret.set(init_msg_c::types::pdu_session_res_setup_request); break; case 32: - ret.set_pws_cancel_request(); + ret.set(init_msg_c::types::pws_cancel_request); break; case 35: - ret.set_ran_cfg_upd(); + ret.set(init_msg_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(init_msg_c::types::ue_context_mod_request); break; case 41: - ret.set_ue_context_release_cmd(); + ret.set(init_msg_c::types::ue_context_release_cmd); break; case 43: - ret.set_ue_radio_cap_check_request(); + ret.set(init_msg_c::types::ue_radio_cap_check_request); break; case 51: - ret.set_write_replace_warning_request(); + ret.set(init_msg_c::types::write_replace_warning_request); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The proc_code=%d is not recognized", proc_code); @@ -45291,58 +49442,58 @@ ngap_elem_procs_class_minus1_o::get_successful_outcome(const uint16_t& proc_code successful_outcome_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(successful_outcome_c::types::amf_cfg_upd); break; case 10: - ret.set_ho_cancel(); + ret.set(successful_outcome_c::types::ho_cancel); break; case 12: - ret.set_ho_required(); + ret.set(successful_outcome_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(successful_outcome_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(successful_outcome_c::types::init_context_setup_request); break; case 20: - ret.set_ng_reset(); + ret.set(successful_outcome_c::types::ng_reset); break; case 21: - ret.set_ng_setup_request(); + ret.set(successful_outcome_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(successful_outcome_c::types::path_switch_request); break; case 26: - ret.set_pdu_session_res_modify_request(); + ret.set(successful_outcome_c::types::pdu_session_res_modify_request); break; case 27: - ret.set_pdu_session_res_modify_ind(); + ret.set(successful_outcome_c::types::pdu_session_res_modify_ind); break; case 28: - ret.set_pdu_session_res_release_cmd(); + ret.set(successful_outcome_c::types::pdu_session_res_release_cmd); break; case 29: - ret.set_pdu_session_res_setup_request(); + ret.set(successful_outcome_c::types::pdu_session_res_setup_request); break; case 32: - ret.set_pws_cancel_request(); + ret.set(successful_outcome_c::types::pws_cancel_request); break; case 35: - ret.set_ran_cfg_upd(); + ret.set(successful_outcome_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(successful_outcome_c::types::ue_context_mod_request); break; case 41: - ret.set_ue_context_release_cmd(); + ret.set(successful_outcome_c::types::ue_context_release_cmd); break; case 43: - ret.set_ue_radio_cap_check_request(); + ret.set(successful_outcome_c::types::ue_radio_cap_check_request); break; case 51: - ret.set_write_replace_warning_request(); + ret.set(successful_outcome_c::types::write_replace_warning_request); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The proc_code=%d is not recognized", proc_code); @@ -45355,26 +49506,26 @@ ngap_elem_procs_class_minus1_o::get_unsuccessful_outcome(const uint16_t& proc_co unsuccessful_outcome_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(unsuccessful_outcome_c::types::amf_cfg_upd); break; case 10: break; case 12: - ret.set_ho_required(); + ret.set(unsuccessful_outcome_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(unsuccessful_outcome_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(unsuccessful_outcome_c::types::init_context_setup_request); break; case 20: break; case 21: - ret.set_ng_setup_request(); + ret.set(unsuccessful_outcome_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(unsuccessful_outcome_c::types::path_switch_request); break; case 26: break; @@ -45387,10 +49538,10 @@ ngap_elem_procs_class_minus1_o::get_unsuccessful_outcome(const uint16_t& proc_co case 32: break; case 35: - ret.set_ran_cfg_upd(); + ret.set(unsuccessful_outcome_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(unsuccessful_outcome_c::types::ue_context_mod_request); break; case 41: break; @@ -45448,7 +49599,188 @@ crit_e ngap_elem_procs_class_minus1_o::get_crit(const uint16_t& proc_code) return crit_e(); } -// InitiatingMessage ::= CLASS OPEN TYPE +// InitiatingMessage ::= OPEN TYPE +amf_cfg_upd_s& ngap_elem_procs_class_minus1_o::init_msg_c::amf_cfg_upd() +{ + assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ho_cancel_s& ngap_elem_procs_class_minus1_o::init_msg_c::ho_cancel() +{ + assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ho_required_s& ngap_elem_procs_class_minus1_o::init_msg_c::ho_required() +{ + assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ho_request_s& ngap_elem_procs_class_minus1_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_class_minus1_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_class_minus1_o::init_msg_c::ng_reset() +{ + assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ng_setup_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ng_setup_request() +{ + assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +path_switch_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_modify_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_modify_request() +{ + assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_modify_ind_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_modify_ind() +{ + assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_release_cmd_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_release_cmd() +{ + assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_setup_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_setup_request() +{ + assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_cancel_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::pws_cancel_request() +{ + assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ran_cfg_upd_s& ngap_elem_procs_class_minus1_o::init_msg_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_context_mod_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ue_context_mod_request() +{ + assert_choice_type("UEContextModificationRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_context_release_cmd_s& ngap_elem_procs_class_minus1_o::init_msg_c::ue_context_release_cmd() +{ + assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_radio_cap_check_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ue_radio_cap_check_request() +{ + assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +write_replace_warning_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::write_replace_warning_request() +{ + assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const amf_cfg_upd_s& ngap_elem_procs_class_minus1_o::init_msg_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_cancel_s& ngap_elem_procs_class_minus1_o::init_msg_c::ho_cancel() const +{ + assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_required_s& ngap_elem_procs_class_minus1_o::init_msg_c::ho_required() const +{ + assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ho_request() const +{ + assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const init_context_setup_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ng_reset_s& ngap_elem_procs_class_minus1_o::init_msg_c::ng_reset() const +{ + assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ng_setup_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ng_setup_request() const +{ + assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const path_switch_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_modify_request_s& +ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_modify_request() const +{ + assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_modify_ind_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_modify_ind() const +{ + assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_release_cmd_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_release_cmd() const +{ + assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_setup_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::pdu_session_res_setup_request() const +{ + assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_cancel_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::pws_cancel_request() const +{ + assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ran_cfg_upd_s& ngap_elem_procs_class_minus1_o::init_msg_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_context_mod_request_s& ngap_elem_procs_class_minus1_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& ngap_elem_procs_class_minus1_o::init_msg_c::ue_context_release_cmd() const +{ + assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_radio_cap_check_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::ue_radio_cap_check_request() const +{ + assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const write_replace_warning_request_s& ngap_elem_procs_class_minus1_o::init_msg_c::write_replace_warning_request() const +{ + assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} void ngap_elem_procs_class_minus1_o::init_msg_c::destroy_() { switch (type_) { @@ -45942,7 +50274,195 @@ std::string ngap_elem_procs_class_minus1_o::init_msg_c::types_opts::to_string() return convert_enum_idx(options, 18, value, "ngap_elem_procs_class_minus1_o::init_msg_c::types"); } -// SuccessfulOutcome ::= CLASS OPEN TYPE +// SuccessfulOutcome ::= OPEN TYPE +amf_cfg_upd_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::amf_cfg_upd() +{ + assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_cancel_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_cancel() +{ + assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_cmd_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_required() +{ + assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_request_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_request() +{ + assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +init_context_setup_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::init_context_setup_request() +{ + assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ng_reset_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ng_reset() +{ + assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ng_setup_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ng_setup_request() +{ + assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +path_switch_request_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_modify_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_modify_request() +{ + assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_modify_confirm_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_modify_ind() +{ + assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_release_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_release_cmd() +{ + assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_setup_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_setup_request() +{ + assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pws_cancel_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pws_cancel_request() +{ + assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ran_cfg_upd_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_context_mod_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_context_mod_request() +{ + assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_context_release_complete_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_context_release_cmd() +{ + assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_radio_cap_check_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_radio_cap_check_request() +{ + assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +write_replace_warning_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::write_replace_warning_request() +{ + assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const amf_cfg_upd_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_cancel_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_cancel() const +{ + assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_cmd_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_required() const +{ + assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_request_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ho_request() const +{ + assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const init_context_setup_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ng_reset_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ng_reset() const +{ + assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ng_setup_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ng_setup_request() const +{ + assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const path_switch_request_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_modify_request() const +{ + assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_confirm_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_modify_ind() const +{ + assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_release_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_release_cmd() const +{ + assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_setup_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::pdu_session_res_setup_request() const +{ + assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pws_cancel_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::pws_cancel_request() const +{ + assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ran_cfg_upd_ack_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_resp_s& ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_context_mod_request() const +{ + assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_context_release_complete_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_context_release_cmd() const +{ + assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_radio_cap_check_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::ue_radio_cap_check_request() const +{ + assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const write_replace_warning_resp_s& +ngap_elem_procs_class_minus1_o::successful_outcome_c::write_replace_warning_request() const +{ + assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} void ngap_elem_procs_class_minus1_o::successful_outcome_c::destroy_() { switch (type_) { @@ -46437,7 +50957,88 @@ std::string ngap_elem_procs_class_minus1_o::successful_outcome_c::types_opts::to return convert_enum_idx(options, 18, value, "ngap_elem_procs_class_minus1_o::successful_outcome_c::types"); } -// UnsuccessfulOutcome ::= CLASS OPEN TYPE +// UnsuccessfulOutcome ::= OPEN TYPE +amf_cfg_upd_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::amf_cfg_upd() +{ + assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ho_prep_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ho_required() +{ + assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ho_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ho_request() +{ + assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +init_context_setup_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::init_context_setup_request() +{ + assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ng_setup_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ng_setup_request() +{ + assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +path_switch_request_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ran_cfg_upd_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ue_context_mod_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ue_context_mod_request() +{ + assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const amf_cfg_upd_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ho_prep_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ho_required() const +{ + assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ho_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ho_request() const +{ + assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const init_context_setup_fail_s& +ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ng_setup_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ng_setup_request() const +{ + assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const path_switch_request_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ran_cfg_upd_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_fail_s& ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::ue_context_mod_request() const +{ + assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} void ngap_elem_procs_class_minus1_o::unsuccessful_outcome_c::destroy_() { switch (type_) { @@ -46855,109 +51456,109 @@ ngap_elem_procs_class_minus2_o::init_msg_c ngap_elem_procs_class_minus2_o::get_i init_msg_c ret{}; switch (proc_code) { case 1: - ret.set_amf_status_ind(); + ret.set(init_msg_c::types::amf_status_ind); break; case 2: - ret.set_cell_traffic_trace(); + ret.set(init_msg_c::types::cell_traffic_trace); break; case 3: - ret.set_deactiv_trace(); + ret.set(init_msg_c::types::deactiv_trace); break; case 4: - ret.set_dl_nas_transport(); + ret.set(init_msg_c::types::dl_nas_transport); break; case 5: - ret.set_dl_non_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::dl_non_ueassociated_nrp_pa_transport); break; case 6: - ret.set_dl_ran_cfg_transfer(); + ret.set(init_msg_c::types::dl_ran_cfg_transfer); break; case 7: - ret.set_dl_ran_status_transfer(); + ret.set(init_msg_c::types::dl_ran_status_transfer); break; case 8: - ret.set_dl_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::dl_ueassociated_nrp_pa_transport); break; case 9: - ret.set_error_ind(); + ret.set(init_msg_c::types::error_ind); break; case 11: - ret.set_ho_notify(); + ret.set(init_msg_c::types::ho_notify); break; case 15: - ret.set_init_ue_msg(); + ret.set(init_msg_c::types::init_ue_msg); break; case 18: - ret.set_location_report(); + ret.set(init_msg_c::types::location_report); break; case 16: - ret.set_location_report_ctrl(); + ret.set(init_msg_c::types::location_report_ctrl); break; case 17: - ret.set_location_report_fail_ind(); + ret.set(init_msg_c::types::location_report_fail_ind); break; case 19: - ret.set_nas_non_delivery_ind(); + ret.set(init_msg_c::types::nas_non_delivery_ind); break; case 22: - ret.set_overload_start(); + ret.set(init_msg_c::types::overload_start); break; case 23: - ret.set_overload_stop(); + ret.set(init_msg_c::types::overload_stop); break; case 24: - ret.set_paging(); + ret.set(init_msg_c::types::paging); break; case 30: - ret.set_pdu_session_res_notify(); + ret.set(init_msg_c::types::pdu_session_res_notify); break; case 31: - ret.set_private_msg(); + ret.set(init_msg_c::types::private_msg); break; case 33: - ret.set_pws_fail_ind(); + ret.set(init_msg_c::types::pws_fail_ind); break; case 34: - ret.set_pws_restart_ind(); + ret.set(init_msg_c::types::pws_restart_ind); break; case 36: - ret.set_reroute_nas_request(); + ret.set(init_msg_c::types::reroute_nas_request); break; case 37: - ret.set_rrc_inactive_transition_report(); + ret.set(init_msg_c::types::rrc_inactive_transition_report); break; case 52: - ret.set_secondary_rat_data_usage_report(); + ret.set(init_msg_c::types::secondary_rat_data_usage_report); break; case 38: - ret.set_trace_fail_ind(); + ret.set(init_msg_c::types::trace_fail_ind); break; case 39: - ret.set_trace_start(); + ret.set(init_msg_c::types::trace_start); break; case 42: - ret.set_ue_context_release_request(); + ret.set(init_msg_c::types::ue_context_release_request); break; case 44: - ret.set_ue_radio_cap_info_ind(); + ret.set(init_msg_c::types::ue_radio_cap_info_ind); break; case 45: - ret.set_uetnla_binding_release_request(); + ret.set(init_msg_c::types::uetnla_binding_release_request); break; case 46: - ret.set_ul_nas_transport(); + ret.set(init_msg_c::types::ul_nas_transport); break; case 47: - ret.set_ul_non_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::ul_non_ueassociated_nrp_pa_transport); break; case 48: - ret.set_ul_ran_cfg_transfer(); + ret.set(init_msg_c::types::ul_ran_cfg_transfer); break; case 49: - ret.set_ul_ran_status_transfer(); + ret.set(init_msg_c::types::ul_ran_status_transfer); break; case 50: - ret.set_ul_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::ul_ueassociated_nrp_pa_transport); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The proc_code=%d is not recognized", proc_code); @@ -47203,7 +51804,366 @@ crit_e ngap_elem_procs_class_minus2_o::get_crit(const uint16_t& proc_code) return crit_e(); } -// InitiatingMessage ::= CLASS OPEN TYPE +// InitiatingMessage ::= OPEN TYPE +amf_status_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::amf_status_ind() +{ + assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +cell_traffic_trace_s& ngap_elem_procs_class_minus2_o::init_msg_c::cell_traffic_trace() +{ + assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +deactiv_trace_s& ngap_elem_procs_class_minus2_o::init_msg_c::deactiv_trace() +{ + assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_nas_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_nas_transport() +{ + assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() +{ + assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ran_cfg_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_ran_cfg_transfer() +{ + assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ran_status_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_ran_status_transfer() +{ + assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_ueassociated_nrp_pa_transport() +{ + assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +error_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::error_ind() +{ + assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ho_notify_s& ngap_elem_procs_class_minus2_o::init_msg_c::ho_notify() +{ + assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +init_ue_msg_s& ngap_elem_procs_class_minus2_o::init_msg_c::init_ue_msg() +{ + assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +location_report_s& ngap_elem_procs_class_minus2_o::init_msg_c::location_report() +{ + assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +location_report_ctrl_s& ngap_elem_procs_class_minus2_o::init_msg_c::location_report_ctrl() +{ + assert_choice_type("LocationReportingControl", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +location_report_fail_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::location_report_fail_ind() +{ + assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +nas_non_delivery_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::nas_non_delivery_ind() +{ + assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +overload_start_s& ngap_elem_procs_class_minus2_o::init_msg_c::overload_start() +{ + assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +overload_stop_s& ngap_elem_procs_class_minus2_o::init_msg_c::overload_stop() +{ + assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +paging_s& ngap_elem_procs_class_minus2_o::init_msg_c::paging() +{ + assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_notify_s& ngap_elem_procs_class_minus2_o::init_msg_c::pdu_session_res_notify() +{ + assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +private_msg_s& ngap_elem_procs_class_minus2_o::init_msg_c::private_msg() +{ + assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_fail_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::pws_fail_ind() +{ + assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_restart_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::pws_restart_ind() +{ + assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +reroute_nas_request_s& ngap_elem_procs_class_minus2_o::init_msg_c::reroute_nas_request() +{ + assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +rrc_inactive_transition_report_s& ngap_elem_procs_class_minus2_o::init_msg_c::rrc_inactive_transition_report() +{ + assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +secondary_rat_data_usage_report_s& ngap_elem_procs_class_minus2_o::init_msg_c::secondary_rat_data_usage_report() +{ + assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +trace_fail_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::trace_fail_ind() +{ + assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +trace_start_s& ngap_elem_procs_class_minus2_o::init_msg_c::trace_start() +{ + assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_context_release_request_s& ngap_elem_procs_class_minus2_o::init_msg_c::ue_context_release_request() +{ + assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_radio_cap_info_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::ue_radio_cap_info_ind() +{ + assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +uetnla_binding_release_request_s& ngap_elem_procs_class_minus2_o::init_msg_c::uetnla_binding_release_request() +{ + assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_nas_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_nas_transport() +{ + assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() +{ + assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ran_cfg_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_ran_cfg_transfer() +{ + assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ran_status_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_ran_status_transfer() +{ + assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_ueassociated_nrp_pa_transport() +{ + assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const amf_status_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::amf_status_ind() const +{ + assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const cell_traffic_trace_s& ngap_elem_procs_class_minus2_o::init_msg_c::cell_traffic_trace() const +{ + assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const deactiv_trace_s& ngap_elem_procs_class_minus2_o::init_msg_c::deactiv_trace() const +{ + assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_nas_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_nas_transport() const +{ + assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_ran_cfg_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_ran_cfg_transfer() const +{ + assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_ran_status_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::dl_ran_status_transfer() const +{ + assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::dl_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const error_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::error_ind() const +{ + assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_notify_s& ngap_elem_procs_class_minus2_o::init_msg_c::ho_notify() const +{ + assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const init_ue_msg_s& ngap_elem_procs_class_minus2_o::init_msg_c::init_ue_msg() const +{ + assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const location_report_s& ngap_elem_procs_class_minus2_o::init_msg_c::location_report() const +{ + assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const location_report_ctrl_s& ngap_elem_procs_class_minus2_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& ngap_elem_procs_class_minus2_o::init_msg_c::location_report_fail_ind() const +{ + assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const nas_non_delivery_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::nas_non_delivery_ind() const +{ + assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const overload_start_s& ngap_elem_procs_class_minus2_o::init_msg_c::overload_start() const +{ + assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const overload_stop_s& ngap_elem_procs_class_minus2_o::init_msg_c::overload_stop() const +{ + assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const paging_s& ngap_elem_procs_class_minus2_o::init_msg_c::paging() const +{ + assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_notify_s& ngap_elem_procs_class_minus2_o::init_msg_c::pdu_session_res_notify() const +{ + assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const private_msg_s& ngap_elem_procs_class_minus2_o::init_msg_c::private_msg() const +{ + assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_fail_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::pws_fail_ind() const +{ + assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_restart_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::pws_restart_ind() const +{ + assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const reroute_nas_request_s& ngap_elem_procs_class_minus2_o::init_msg_c::reroute_nas_request() const +{ + assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const rrc_inactive_transition_report_s& +ngap_elem_procs_class_minus2_o::init_msg_c::rrc_inactive_transition_report() const +{ + assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const secondary_rat_data_usage_report_s& +ngap_elem_procs_class_minus2_o::init_msg_c::secondary_rat_data_usage_report() const +{ + assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const trace_fail_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::trace_fail_ind() const +{ + assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const trace_start_s& ngap_elem_procs_class_minus2_o::init_msg_c::trace_start() const +{ + assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_context_release_request_s& ngap_elem_procs_class_minus2_o::init_msg_c::ue_context_release_request() const +{ + assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_radio_cap_info_ind_s& ngap_elem_procs_class_minus2_o::init_msg_c::ue_radio_cap_info_ind() const +{ + assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const uetnla_binding_release_request_s& +ngap_elem_procs_class_minus2_o::init_msg_c::uetnla_binding_release_request() const +{ + assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_nas_transport_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_nas_transport() const +{ + assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ran_cfg_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_ran_cfg_transfer() const +{ + assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ran_status_transfer_s& ngap_elem_procs_class_minus2_o::init_msg_c::ul_ran_status_transfer() const +{ + assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_class_minus2_o::init_msg_c::ul_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} void ngap_elem_procs_class_minus2_o::init_msg_c::destroy_() { switch (type_) { @@ -48088,7 +53048,7 @@ std::string ngap_elem_procs_class_minus2_o::init_msg_c::types_opts::to_string() return convert_enum_idx(options, 35, value, "ngap_elem_procs_class_minus2_o::init_msg_c::types"); } -// SuccessfulOutcome ::= CLASS OPEN TYPE +// SuccessfulOutcome ::= OPEN TYPE void ngap_elem_procs_class_minus2_o::successful_outcome_c::set(types::options e) { type_ = e; @@ -48118,7 +53078,7 @@ std::string ngap_elem_procs_class_minus2_o::successful_outcome_c::types_opts::to return convert_enum_idx(options, 35, value, "ngap_elem_procs_class_minus2_o::successful_outcome_c::types"); } -// UnsuccessfulOutcome ::= CLASS OPEN TYPE +// UnsuccessfulOutcome ::= OPEN TYPE void ngap_elem_procs_class_minus2_o::unsuccessful_outcome_c::set(types::options e) { type_ = e; @@ -48173,163 +53133,163 @@ ngap_elem_procs_o::init_msg_c ngap_elem_procs_o::get_init_msg(const uint16_t& pr init_msg_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(init_msg_c::types::amf_cfg_upd); break; case 10: - ret.set_ho_cancel(); + ret.set(init_msg_c::types::ho_cancel); break; case 12: - ret.set_ho_required(); + ret.set(init_msg_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(init_msg_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(init_msg_c::types::init_context_setup_request); break; case 20: - ret.set_ng_reset(); + ret.set(init_msg_c::types::ng_reset); break; case 21: - ret.set_ng_setup_request(); + ret.set(init_msg_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(init_msg_c::types::path_switch_request); break; case 26: - ret.set_pdu_session_res_modify_request(); + ret.set(init_msg_c::types::pdu_session_res_modify_request); break; case 27: - ret.set_pdu_session_res_modify_ind(); + ret.set(init_msg_c::types::pdu_session_res_modify_ind); break; case 28: - ret.set_pdu_session_res_release_cmd(); + ret.set(init_msg_c::types::pdu_session_res_release_cmd); break; case 29: - ret.set_pdu_session_res_setup_request(); + ret.set(init_msg_c::types::pdu_session_res_setup_request); break; case 32: - ret.set_pws_cancel_request(); + ret.set(init_msg_c::types::pws_cancel_request); break; case 35: - ret.set_ran_cfg_upd(); + ret.set(init_msg_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(init_msg_c::types::ue_context_mod_request); break; case 41: - ret.set_ue_context_release_cmd(); + ret.set(init_msg_c::types::ue_context_release_cmd); break; case 43: - ret.set_ue_radio_cap_check_request(); + ret.set(init_msg_c::types::ue_radio_cap_check_request); break; case 51: - ret.set_write_replace_warning_request(); + ret.set(init_msg_c::types::write_replace_warning_request); break; case 1: - ret.set_amf_status_ind(); + ret.set(init_msg_c::types::amf_status_ind); break; case 2: - ret.set_cell_traffic_trace(); + ret.set(init_msg_c::types::cell_traffic_trace); break; case 3: - ret.set_deactiv_trace(); + ret.set(init_msg_c::types::deactiv_trace); break; case 4: - ret.set_dl_nas_transport(); + ret.set(init_msg_c::types::dl_nas_transport); break; case 5: - ret.set_dl_non_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::dl_non_ueassociated_nrp_pa_transport); break; case 6: - ret.set_dl_ran_cfg_transfer(); + ret.set(init_msg_c::types::dl_ran_cfg_transfer); break; case 7: - ret.set_dl_ran_status_transfer(); + ret.set(init_msg_c::types::dl_ran_status_transfer); break; case 8: - ret.set_dl_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::dl_ueassociated_nrp_pa_transport); break; case 9: - ret.set_error_ind(); + ret.set(init_msg_c::types::error_ind); break; case 11: - ret.set_ho_notify(); + ret.set(init_msg_c::types::ho_notify); break; case 15: - ret.set_init_ue_msg(); + ret.set(init_msg_c::types::init_ue_msg); break; case 18: - ret.set_location_report(); + ret.set(init_msg_c::types::location_report); break; case 16: - ret.set_location_report_ctrl(); + ret.set(init_msg_c::types::location_report_ctrl); break; case 17: - ret.set_location_report_fail_ind(); + ret.set(init_msg_c::types::location_report_fail_ind); break; case 19: - ret.set_nas_non_delivery_ind(); + ret.set(init_msg_c::types::nas_non_delivery_ind); break; case 22: - ret.set_overload_start(); + ret.set(init_msg_c::types::overload_start); break; case 23: - ret.set_overload_stop(); + ret.set(init_msg_c::types::overload_stop); break; case 24: - ret.set_paging(); + ret.set(init_msg_c::types::paging); break; case 30: - ret.set_pdu_session_res_notify(); + ret.set(init_msg_c::types::pdu_session_res_notify); break; case 31: - ret.set_private_msg(); + ret.set(init_msg_c::types::private_msg); break; case 33: - ret.set_pws_fail_ind(); + ret.set(init_msg_c::types::pws_fail_ind); break; case 34: - ret.set_pws_restart_ind(); + ret.set(init_msg_c::types::pws_restart_ind); break; case 36: - ret.set_reroute_nas_request(); + ret.set(init_msg_c::types::reroute_nas_request); break; case 37: - ret.set_rrc_inactive_transition_report(); + ret.set(init_msg_c::types::rrc_inactive_transition_report); break; case 52: - ret.set_secondary_rat_data_usage_report(); + ret.set(init_msg_c::types::secondary_rat_data_usage_report); break; case 38: - ret.set_trace_fail_ind(); + ret.set(init_msg_c::types::trace_fail_ind); break; case 39: - ret.set_trace_start(); + ret.set(init_msg_c::types::trace_start); break; case 42: - ret.set_ue_context_release_request(); + ret.set(init_msg_c::types::ue_context_release_request); break; case 44: - ret.set_ue_radio_cap_info_ind(); + ret.set(init_msg_c::types::ue_radio_cap_info_ind); break; case 45: - ret.set_uetnla_binding_release_request(); + ret.set(init_msg_c::types::uetnla_binding_release_request); break; case 46: - ret.set_ul_nas_transport(); + ret.set(init_msg_c::types::ul_nas_transport); break; case 47: - ret.set_ul_non_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::ul_non_ueassociated_nrp_pa_transport); break; case 48: - ret.set_ul_ran_cfg_transfer(); + ret.set(init_msg_c::types::ul_ran_cfg_transfer); break; case 49: - ret.set_ul_ran_status_transfer(); + ret.set(init_msg_c::types::ul_ran_status_transfer); break; case 50: - ret.set_ul_ueassociated_nrp_pa_transport(); + ret.set(init_msg_c::types::ul_ueassociated_nrp_pa_transport); break; default: ngap_nr_log_print(LOG_LEVEL_ERROR, "The proc_code=%d is not recognized", proc_code); @@ -48341,58 +53301,58 @@ ngap_elem_procs_o::successful_outcome_c ngap_elem_procs_o::get_successful_outcom successful_outcome_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(successful_outcome_c::types::amf_cfg_upd); break; case 10: - ret.set_ho_cancel(); + ret.set(successful_outcome_c::types::ho_cancel); break; case 12: - ret.set_ho_required(); + ret.set(successful_outcome_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(successful_outcome_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(successful_outcome_c::types::init_context_setup_request); break; case 20: - ret.set_ng_reset(); + ret.set(successful_outcome_c::types::ng_reset); break; case 21: - ret.set_ng_setup_request(); + ret.set(successful_outcome_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(successful_outcome_c::types::path_switch_request); break; case 26: - ret.set_pdu_session_res_modify_request(); + ret.set(successful_outcome_c::types::pdu_session_res_modify_request); break; case 27: - ret.set_pdu_session_res_modify_ind(); + ret.set(successful_outcome_c::types::pdu_session_res_modify_ind); break; case 28: - ret.set_pdu_session_res_release_cmd(); + ret.set(successful_outcome_c::types::pdu_session_res_release_cmd); break; case 29: - ret.set_pdu_session_res_setup_request(); + ret.set(successful_outcome_c::types::pdu_session_res_setup_request); break; case 32: - ret.set_pws_cancel_request(); + ret.set(successful_outcome_c::types::pws_cancel_request); break; case 35: - ret.set_ran_cfg_upd(); + ret.set(successful_outcome_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(successful_outcome_c::types::ue_context_mod_request); break; case 41: - ret.set_ue_context_release_cmd(); + ret.set(successful_outcome_c::types::ue_context_release_cmd); break; case 43: - ret.set_ue_radio_cap_check_request(); + ret.set(successful_outcome_c::types::ue_radio_cap_check_request); break; case 51: - ret.set_write_replace_warning_request(); + ret.set(successful_outcome_c::types::write_replace_warning_request); break; case 1: break; @@ -48474,26 +53434,26 @@ ngap_elem_procs_o::unsuccessful_outcome_c ngap_elem_procs_o::get_unsuccessful_ou unsuccessful_outcome_c ret{}; switch (proc_code) { case 0: - ret.set_amf_cfg_upd(); + ret.set(unsuccessful_outcome_c::types::amf_cfg_upd); break; case 10: break; case 12: - ret.set_ho_required(); + ret.set(unsuccessful_outcome_c::types::ho_required); break; case 13: - ret.set_ho_request(); + ret.set(unsuccessful_outcome_c::types::ho_request); break; case 14: - ret.set_init_context_setup_request(); + ret.set(unsuccessful_outcome_c::types::init_context_setup_request); break; case 20: break; case 21: - ret.set_ng_setup_request(); + ret.set(unsuccessful_outcome_c::types::ng_setup_request); break; case 25: - ret.set_path_switch_request(); + ret.set(unsuccessful_outcome_c::types::path_switch_request); break; case 26: break; @@ -48506,10 +53466,10 @@ ngap_elem_procs_o::unsuccessful_outcome_c ngap_elem_procs_o::get_unsuccessful_ou case 32: break; case 35: - ret.set_ran_cfg_upd(); + ret.set(unsuccessful_outcome_c::types::ran_cfg_upd); break; case 40: - ret.set_ue_context_mod_request(); + ret.set(unsuccessful_outcome_c::types::ue_context_mod_request); break; case 41: break; @@ -48707,7 +53667,539 @@ crit_e ngap_elem_procs_o::get_crit(const uint16_t& proc_code) return crit_e(); } -// InitiatingMessage ::= CLASS OPEN TYPE +// 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(); +} +ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() +{ + assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() +{ + assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() +{ + assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() +{ + assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() +{ + assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() +{ + assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_context_mod_request_s& ngap_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& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() +{ + assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() +{ + assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() +{ + assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() +{ + assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() +{ + assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() +{ + assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() +{ + assert_choice_type("DownlinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_non_ueassociated_nrp_pa_transport() +{ + assert_choice_type("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_cfg_transfer() +{ + assert_choice_type("DownlinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::dl_ran_status_transfer() +{ + assert_choice_type("DownlinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +dl_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::dl_ueassociated_nrp_pa_transport() +{ + assert_choice_type("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() +{ + assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() +{ + assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() +{ + assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +location_report_s& ngap_elem_procs_o::init_msg_c::location_report() +{ + assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +location_report_ctrl_s& ngap_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& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() +{ + assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +nas_non_delivery_ind_s& ngap_elem_procs_o::init_msg_c::nas_non_delivery_ind() +{ + assert_choice_type("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() +{ + assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() +{ + assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +paging_s& ngap_elem_procs_o::init_msg_c::paging() +{ + assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() +{ + assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() +{ + assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() +{ + assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() +{ + assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() +{ + assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() +{ + assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() +{ + assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() +{ + assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() +{ + assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() +{ + assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() +{ + assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() +{ + assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() +{ + assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_non_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() +{ + assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() +{ + assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() +{ + assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() +{ + assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const amf_cfg_upd_s& ngap_elem_procs_o::init_msg_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_cancel_s& ngap_elem_procs_o::init_msg_c::ho_cancel() const +{ + assert_choice_type("HandoverCancel", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_required_s& ngap_elem_procs_o::init_msg_c::ho_required() const +{ + assert_choice_type("HandoverRequired", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_request_s& ngap_elem_procs_o::init_msg_c::ho_request() const +{ + assert_choice_type("HandoverRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const init_context_setup_request_s& ngap_elem_procs_o::init_msg_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ng_reset_s& ngap_elem_procs_o::init_msg_c::ng_reset() const +{ + assert_choice_type("NGReset", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ng_setup_request_s& ngap_elem_procs_o::init_msg_c::ng_setup_request() const +{ + assert_choice_type("NGSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const path_switch_request_s& ngap_elem_procs_o::init_msg_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_modify_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_request() const +{ + assert_choice_type("PDUSessionResourceModifyRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_modify_ind_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_modify_ind() const +{ + assert_choice_type("PDUSessionResourceModifyIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_release_cmd_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_release_cmd() const +{ + assert_choice_type("PDUSessionResourceReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_setup_request_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_setup_request() const +{ + assert_choice_type("PDUSessionResourceSetupRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_cancel_request_s& ngap_elem_procs_o::init_msg_c::pws_cancel_request() const +{ + assert_choice_type("PWSCancelRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ran_cfg_upd_s& ngap_elem_procs_o::init_msg_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdate", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_context_mod_request_s& ngap_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& ngap_elem_procs_o::init_msg_c::ue_context_release_cmd() const +{ + assert_choice_type("UEContextReleaseCommand", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_radio_cap_check_request_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_check_request() const +{ + assert_choice_type("UERadioCapabilityCheckRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const write_replace_warning_request_s& ngap_elem_procs_o::init_msg_c::write_replace_warning_request() const +{ + assert_choice_type("WriteReplaceWarningRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const amf_status_ind_s& ngap_elem_procs_o::init_msg_c::amf_status_ind() const +{ + assert_choice_type("AMFStatusIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const cell_traffic_trace_s& ngap_elem_procs_o::init_msg_c::cell_traffic_trace() const +{ + assert_choice_type("CellTrafficTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const deactiv_trace_s& ngap_elem_procs_o::init_msg_c::deactiv_trace() const +{ + assert_choice_type("DeactivateTrace", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const dl_nas_transport_s& ngap_elem_procs_o::init_msg_c::dl_nas_transport() const +{ + assert_choice_type("DownlinkNASTransport", type_.to_string(), "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("DownlinkNonUEAssociatedNRPPaTransport", type_.to_string(), "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("DownlinkRANConfigurationTransfer", type_.to_string(), "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("DownlinkRANStatusTransfer", type_.to_string(), "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("DownlinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const error_ind_s& ngap_elem_procs_o::init_msg_c::error_ind() const +{ + assert_choice_type("ErrorIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ho_notify_s& ngap_elem_procs_o::init_msg_c::ho_notify() const +{ + assert_choice_type("HandoverNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const init_ue_msg_s& ngap_elem_procs_o::init_msg_c::init_ue_msg() const +{ + assert_choice_type("InitialUEMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const location_report_s& ngap_elem_procs_o::init_msg_c::location_report() const +{ + assert_choice_type("LocationReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const location_report_ctrl_s& ngap_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& ngap_elem_procs_o::init_msg_c::location_report_fail_ind() const +{ + assert_choice_type("LocationReportingFailureIndication", type_.to_string(), "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("NASNonDeliveryIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const overload_start_s& ngap_elem_procs_o::init_msg_c::overload_start() const +{ + assert_choice_type("OverloadStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const overload_stop_s& ngap_elem_procs_o::init_msg_c::overload_stop() const +{ + assert_choice_type("OverloadStop", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const paging_s& ngap_elem_procs_o::init_msg_c::paging() const +{ + assert_choice_type("Paging", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pdu_session_res_notify_s& ngap_elem_procs_o::init_msg_c::pdu_session_res_notify() const +{ + assert_choice_type("PDUSessionResourceNotify", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const private_msg_s& ngap_elem_procs_o::init_msg_c::private_msg() const +{ + assert_choice_type("PrivateMessage", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_fail_ind_s& ngap_elem_procs_o::init_msg_c::pws_fail_ind() const +{ + assert_choice_type("PWSFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const pws_restart_ind_s& ngap_elem_procs_o::init_msg_c::pws_restart_ind() const +{ + assert_choice_type("PWSRestartIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const reroute_nas_request_s& ngap_elem_procs_o::init_msg_c::reroute_nas_request() const +{ + assert_choice_type("RerouteNASRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const rrc_inactive_transition_report_s& ngap_elem_procs_o::init_msg_c::rrc_inactive_transition_report() const +{ + assert_choice_type("RRCInactiveTransitionReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const secondary_rat_data_usage_report_s& ngap_elem_procs_o::init_msg_c::secondary_rat_data_usage_report() const +{ + assert_choice_type("SecondaryRATDataUsageReport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const trace_fail_ind_s& ngap_elem_procs_o::init_msg_c::trace_fail_ind() const +{ + assert_choice_type("TraceFailureIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const trace_start_s& ngap_elem_procs_o::init_msg_c::trace_start() const +{ + assert_choice_type("TraceStart", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_context_release_request_s& ngap_elem_procs_o::init_msg_c::ue_context_release_request() const +{ + assert_choice_type("UEContextReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ue_radio_cap_info_ind_s& ngap_elem_procs_o::init_msg_c::ue_radio_cap_info_ind() const +{ + assert_choice_type("UERadioCapabilityInfoIndication", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const uetnla_binding_release_request_s& ngap_elem_procs_o::init_msg_c::uetnla_binding_release_request() const +{ + assert_choice_type("UETNLABindingReleaseRequest", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_nas_transport_s& ngap_elem_procs_o::init_msg_c::ul_nas_transport() const +{ + assert_choice_type("UplinkNASTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_non_ueassociated_nrp_pa_transport_s& +ngap_elem_procs_o::init_msg_c::ul_non_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("UplinkNonUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ran_cfg_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_cfg_transfer() const +{ + assert_choice_type("UplinkRANConfigurationTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ran_status_transfer_s& ngap_elem_procs_o::init_msg_c::ul_ran_status_transfer() const +{ + assert_choice_type("UplinkRANStatusTransfer", type_.to_string(), "InitiatingMessage"); + return c.get(); +} +const ul_ueassociated_nrp_pa_transport_s& ngap_elem_procs_o::init_msg_c::ul_ueassociated_nrp_pa_transport() const +{ + assert_choice_type("UplinkUEAssociatedNRPPaTransport", type_.to_string(), "InitiatingMessage"); + return c.get(); +} void ngap_elem_procs_o::init_msg_c::destroy_() { switch (type_) { @@ -50005,7 +55497,187 @@ std::string ngap_elem_procs_o::init_msg_c::types_opts::to_string() const return convert_enum_idx(options, 53, value, "ngap_elem_procs_o::init_msg_c::types"); } -// SuccessfulOutcome ::= CLASS OPEN TYPE +// SuccessfulOutcome ::= OPEN TYPE +amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd() +{ + assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel() +{ + assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_required() +{ + assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request() +{ + assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_request() +{ + assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset() +{ + assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_request() +{ + assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_request() +{ + assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_ind() +{ + assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_cmd() +{ + assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_request() +{ + assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_request() +{ + assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_request() +{ + assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_cmd() +{ + assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_request() +{ + assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_request() +{ + assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const amf_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_cancel_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_cancel() const +{ + assert_choice_type("HandoverCancelAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_cmd_s& ngap_elem_procs_o::successful_outcome_c::ho_required() const +{ + assert_choice_type("HandoverCommand", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ho_request_ack_s& ngap_elem_procs_o::successful_outcome_c::ho_request() const +{ + assert_choice_type("HandoverRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const init_context_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ng_reset_ack_s& ngap_elem_procs_o::successful_outcome_c::ng_reset() const +{ + assert_choice_type("NGResetAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ng_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::ng_setup_request() const +{ + assert_choice_type("NGSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const path_switch_request_ack_s& ngap_elem_procs_o::successful_outcome_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequestAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_request() const +{ + assert_choice_type("PDUSessionResourceModifyResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_modify_confirm_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_modify_ind() const +{ + assert_choice_type("PDUSessionResourceModifyConfirm", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_release_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_release_cmd() const +{ + assert_choice_type("PDUSessionResourceReleaseResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pdu_session_res_setup_resp_s& ngap_elem_procs_o::successful_outcome_c::pdu_session_res_setup_request() const +{ + assert_choice_type("PDUSessionResourceSetupResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const pws_cancel_resp_s& ngap_elem_procs_o::successful_outcome_c::pws_cancel_request() const +{ + assert_choice_type("PWSCancelResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ran_cfg_upd_ack_s& ngap_elem_procs_o::successful_outcome_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdateAcknowledge", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_context_mod_request() const +{ + assert_choice_type("UEContextModificationResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_context_release_complete_s& ngap_elem_procs_o::successful_outcome_c::ue_context_release_cmd() const +{ + assert_choice_type("UEContextReleaseComplete", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const ue_radio_cap_check_resp_s& ngap_elem_procs_o::successful_outcome_c::ue_radio_cap_check_request() const +{ + assert_choice_type("UERadioCapabilityCheckResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} +const write_replace_warning_resp_s& ngap_elem_procs_o::successful_outcome_c::write_replace_warning_request() const +{ + assert_choice_type("WriteReplaceWarningResponse", type_.to_string(), "SuccessfulOutcome"); + return c.get(); +} void ngap_elem_procs_o::successful_outcome_c::destroy_() { switch (type_) { @@ -50954,7 +56626,87 @@ std::string ngap_elem_procs_o::successful_outcome_c::types_opts::to_string() con return convert_enum_idx(options, 53, value, "ngap_elem_procs_o::successful_outcome_c::types"); } -// UnsuccessfulOutcome ::= CLASS OPEN TYPE +// UnsuccessfulOutcome ::= OPEN TYPE +amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd() +{ + assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_required() +{ + assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_request() +{ + assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_request() +{ + assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_request() +{ + assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request() +{ + assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd() +{ + assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_request() +{ + assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const amf_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::amf_cfg_upd() const +{ + assert_choice_type("AMFConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ho_prep_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_required() const +{ + assert_choice_type("HandoverPreparationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ho_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ho_request() const +{ + assert_choice_type("HandoverFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const init_context_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::init_context_setup_request() const +{ + assert_choice_type("InitialContextSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ng_setup_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ng_setup_request() const +{ + assert_choice_type("NGSetupFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const path_switch_request_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::path_switch_request() const +{ + assert_choice_type("PathSwitchRequestFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ran_cfg_upd_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ran_cfg_upd() const +{ + assert_choice_type("RANConfigurationUpdateFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} +const ue_context_mod_fail_s& ngap_elem_procs_o::unsuccessful_outcome_c::ue_context_mod_request() const +{ + assert_choice_type("UEContextModificationFailure", type_.to_string(), "UnsuccessfulOutcome"); + return c.get(); +} void ngap_elem_procs_o::unsuccessful_outcome_c::destroy_() { switch (type_) { @@ -52371,7 +58123,7 @@ SRSASN_CODE qos_flow_info_item_s::pack(bit_ref& bref) const 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, false, true)); + HANDLE_CODE(pack_integer(bref, qos_flow_id, (uint8_t)0u, (uint8_t)63u, true, true)); if (dlforwarding_present) { HANDLE_CODE(dlforwarding.pack(bref)); } @@ -52387,7 +58139,7 @@ SRSASN_CODE qos_flow_info_item_s::unpack(bit_ref& bref) 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, false, true)); + HANDLE_CODE(unpack_integer(qos_flow_id, bref, (uint8_t)0u, (uint8_t)63u, true, true)); if (dlforwarding_present) { HANDLE_CODE(dlforwarding.unpack(bref)); } @@ -52470,54 +58222,52 @@ void pdu_session_res_info_item_s::to_json(json_writer& j) const } // ProtocolIE-FieldPair{NGAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE{{NGAP-PROTOCOL-IES-PAIR}} -template -SRSASN_CODE protocol_ie_field_pair_s::pack(bit_ref& bref) const +template +SRSASN_CODE protocol_ie_field_pair_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_integer(bref, id, (uint32_t)0u, (uint32_t)65535u, false, true)); - ngap_nr_asn1_warn_assert(first_crit != ies_set_param::get_first_crit(id), __func__, __LINE__); + ngap_nr_asn1_warn_assert(first_crit != ies_set_paramT_::get_first_crit(id), __func__, __LINE__); HANDLE_CODE(first_crit.pack(bref)); HANDLE_CODE(first_value.pack(bref)); - ngap_nr_asn1_warn_assert(second_crit != ies_set_param::get_second_crit(id), __func__, __LINE__); + ngap_nr_asn1_warn_assert(second_crit != ies_set_paramT_::get_second_crit(id), __func__, __LINE__); HANDLE_CODE(second_crit.pack(bref)); HANDLE_CODE(second_value.pack(bref)); return SRSASN_SUCCESS; } -template -SRSASN_CODE protocol_ie_field_pair_s::unpack(bit_ref& bref) +template +SRSASN_CODE protocol_ie_field_pair_s::unpack(bit_ref& bref) { HANDLE_CODE(unpack_integer(id, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); HANDLE_CODE(first_crit.unpack(bref)); - first_value = ies_set_param::get_first_value(id); + first_value = ies_set_paramT_::get_first_value(id); HANDLE_CODE(first_value.unpack(bref)); HANDLE_CODE(second_crit.unpack(bref)); - second_value = ies_set_param::get_second_value(id); + second_value = ies_set_paramT_::get_second_value(id); HANDLE_CODE(second_value.unpack(bref)); return SRSASN_SUCCESS; } -template -void protocol_ie_field_pair_s::to_json(json_writer& j) const +template +void protocol_ie_field_pair_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("id", id); j.write_str("firstCriticality", first_crit.to_string()); - ; j.write_str("secondCriticality", second_crit.to_string()); - ; j.end_obj(); } -template -bool protocol_ie_field_pair_s::load_info_obj(const uint32_t& id_) +template +bool protocol_ie_field_pair_s::load_info_obj(const uint32_t& id_) { - if (not ies_set_param::is_id_valid(id_)) { + if (not ies_set_paramT_::is_id_valid(id_)) { return false; } id = id_; - first_crit = ies_set_param::get_first_crit(id); - first_value = ies_set_param::get_first_value(id); - second_crit = ies_set_param::get_second_crit(id); - second_value = ies_set_param::get_second_value(id); + first_crit = ies_set_paramT_::get_first_crit(id); + first_value = ies_set_paramT_::get_first_value(id); + second_crit = ies_set_paramT_::get_second_crit(id); + second_value = ies_set_paramT_::get_second_value(id); return true; } @@ -52527,7 +58277,7 @@ SRSASN_CODE qos_flow_setup_resp_item_su_res_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, false, true)); + 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)); } @@ -52539,7 +58289,7 @@ SRSASN_CODE qos_flow_setup_resp_item_su_res_s::unpack(bit_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, false, true)); + 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)); } @@ -52575,7 +58325,7 @@ SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::pack } HANDLE_CODE(target_cell_id.pack(bref)); if (idx_to_rfsp_present) { - HANDLE_CODE(pack_integer(bref, idx_to_rfsp, (uint16_t)1u, (uint16_t)256u, false, true)); + HANDLE_CODE(pack_integer(bref, idx_to_rfsp, (uint16_t)1u, (uint16_t)256u, true, true)); } HANDLE_CODE(pack_dyn_seq_of(bref, uehistory_info, 1, 16, true)); if (ie_exts_present) { @@ -52601,7 +58351,7 @@ SRSASN_CODE source_ngran_node_to_target_ngran_node_transparent_container_s::unpa } HANDLE_CODE(target_cell_id.unpack(bref)); if (idx_to_rfsp_present) { - HANDLE_CODE(unpack_integer(idx_to_rfsp, bref, (uint16_t)1u, (uint16_t)256u, false, true)); + HANDLE_CODE(unpack_integer(idx_to_rfsp, bref, (uint16_t)1u, (uint16_t)256u, true, true)); } HANDLE_CODE(unpack_dyn_seq_of(uehistory_info, bref, 1, 16, true)); if (ie_exts_present) { diff --git a/lib/src/asn1/rrc_nr_asn1.cc b/lib/src/asn1/rrc_nr_asn1.cc index bf36a5b99..6402959e8 100644 --- a/lib/src/asn1/rrc_nr_asn1.cc +++ b/lib/src/asn1/rrc_nr_asn1.cc @@ -69,7 +69,8 @@ void asn1::rrc_nr::assert_choice_type(const std::string& access_type, } } -const char* convert_enum_idx(const char* array[], uint32_t nof_types, uint32_t enum_val, const char* enum_type) +const char* +asn1::rrc_nr::convert_enum_idx(const char* array[], uint32_t nof_types, uint32_t enum_val, const char* enum_type) { if (enum_val >= nof_types) { if (enum_val == nof_types) { @@ -4389,7 +4390,7 @@ void setup_release_c::to_json(json_writer& j) const switch (type_) { case types::release: break; - case types::setup:; + case types::setup: break; default: log_invalid_choice_id(type_, "setup_release_c"); @@ -9750,7 +9751,7 @@ void cg_uci_on_pusch_c::to_json(json_writer& j) const j.start_obj(); switch (type_) { case types::dynamic_type: - j.start_array("dynamic_type"); + j.start_array("dynamic"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } @@ -9802,7 +9803,7 @@ SRSASN_CODE cg_uci_on_pusch_c::unpack(bit_ref& bref) std::string cg_uci_on_pusch_c::types_opts::to_string() const { - static constexpr const char* options[] = {"dynamic_type", "semiStatic"}; + static constexpr const char* options[] = {"dynamic", "semiStatic"}; return convert_enum_idx(options, 2, value, "cg_uci_on_pusch_c::types"); } @@ -13158,7 +13159,7 @@ void uci_on_pusch_s::beta_offsets_c_::to_json(json_writer& j) const j.start_obj(); switch (type_) { case types::dynamic_type: - j.start_array("dynamic_type"); + j.start_array("dynamic"); for (uint32_t i1 = 0; i1 < c.get().size(); ++i1) { c.get()[i1].to_json(j); } @@ -13210,7 +13211,7 @@ SRSASN_CODE uci_on_pusch_s::beta_offsets_c_::unpack(bit_ref& bref) std::string uci_on_pusch_s::beta_offsets_c_::types_opts::to_string() const { - static constexpr const char* options[] = {"dynamic_type", "semiStatic"}; + static constexpr const char* options[] = {"dynamic", "semiStatic"}; return convert_enum_idx(options, 2, value, "uci_on_pusch_s::beta_offsets_c_::types"); } @@ -22624,7 +22625,7 @@ void tdd_ul_dl_slot_cfg_s::symbols_c_::to_json(json_writer& j) const case types::all_ul: break; case types::explicit_type: - j.write_fieldname("explicit_type"); + j.write_fieldname("explicit"); j.start_obj(); if (c.nrof_dl_symbols_present) { j.write_int("nrofDownlinkSymbols", c.nrof_dl_symbols); @@ -22692,7 +22693,7 @@ SRSASN_CODE tdd_ul_dl_slot_cfg_s::symbols_c_::unpack(bit_ref& bref) std::string tdd_ul_dl_slot_cfg_s::symbols_c_::types_opts::to_string() const { - static constexpr const char* options[] = {"allDownlink", "allUplink", "explicit_type"}; + static constexpr const char* options[] = {"allDownlink", "allUplink", "explicit"}; return convert_enum_idx(options, 3, value, "tdd_ul_dl_slot_cfg_s::symbols_c_::types"); } diff --git a/lib/test/asn1/ngap_asn1_test.cc b/lib/test/asn1/ngap_asn1_test.cc index ef4a5fab2..f2a59eb7e 100644 --- a/lib/test/asn1/ngap_asn1_test.cc +++ b/lib/test/asn1/ngap_asn1_test.cc @@ -81,8 +81,8 @@ int test_ngsetup_request() ng_setup_request_s& ngsetup = pdu.init_msg().value.ng_setup_request(); TESTASSERT(not ngsetup.ext); // Field 0 - TESTASSERT(ngsetup.protocol_ies.global_ran_node_id.id == 27); // TODO: Is this really needed? - TESTASSERT(ngsetup.protocol_ies.global_ran_node_id.crit.value == crit_opts::reject); // TODO: Is this really needed? + TESTASSERT(ngsetup.protocol_ies.global_ran_node_id.id == 27); // FIXME: Is this really needed? + TESTASSERT(ngsetup.protocol_ies.global_ran_node_id.crit.value == crit_opts::reject); // FIXME: Is this really needed? TESTASSERT(ngsetup.protocol_ies.global_ran_node_id.value.type().value == global_ran_node_id_c::types_opts::global_gnb_id); global_gnb_id_s& global_gnb = ngsetup.protocol_ies.global_ran_node_id.value.global_gnb_id(); @@ -136,7 +136,7 @@ int test_ngsetup_response() TESTASSERT(pdu.successful_outcome().proc_code == 21); TESTASSERT(pdu.successful_outcome().crit.value == crit_opts::reject); TESTASSERT(pdu.successful_outcome().value.type().value == - ngap_elem_procs_o::successful_outcome_c::types_opts::ng_setup_request); // TODO: Change name + ngap_elem_procs_o::successful_outcome_c::types_opts::ng_setup_request); // FIXME: Change name ng_setup_resp_s& resp = pdu.successful_outcome().value.ng_setup_request(); // field 0 TESTASSERT(resp.protocol_ies.amf_name.id == 1);