diff --git a/lib/include/srslte/asn1/rrc.h b/lib/include/srslte/asn1/rrc.h index b523157c9..d31155ea6 100644 --- a/lib/include/srslte/asn1/rrc.h +++ b/lib/include/srslte/asn1/rrc.h @@ -142,9 +142,6 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { // choice methods bcch_dl_sch_msg_type_mbms_r14_c() = default; - bcch_dl_sch_msg_type_mbms_r14_c(const bcch_dl_sch_msg_type_mbms_r14_c& other); - bcch_dl_sch_msg_type_mbms_r14_c& operator=(const bcch_dl_sch_msg_type_mbms_r14_c& other); - ~bcch_dl_sch_msg_type_mbms_r14_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -154,24 +151,23 @@ struct bcch_dl_sch_msg_type_mbms_r14_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // BCCH-DL-SCH-Message-MBMS ::= SEQUENCE @@ -184,6 +180,9 @@ struct bcch_dl_sch_msg_mbms_s { void to_json(json_writer& j) const; }; +// ThresholdEUTRA-v1250 ::= INTEGER (0..97) +typedef uint8_t thres_eutra_v1250; + // MBMS-SessionInfo-r9 ::= SEQUENCE struct mbms_session_info_r9_s { bool ext = false; @@ -498,9 +497,6 @@ struct mcch_msg_type_c { // choice methods later_c_() = default; - later_c_(const later_c_& other); - later_c_& operator=(const later_c_& other); - ~later_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -510,24 +506,23 @@ struct mcch_msg_type_c { c2_c_& c2() { assert_choice_type("c2", type_.to_string(), "later"); - return c.get(); + return c; } const c2_c_& c2() const { assert_choice_type("c2", type_.to_string(), "later"); - return c.get(); + return c; } c2_c_& set_c2() { set(types::c2); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c2_c_ c; }; struct types_opts { enum options { c1, later, nulltype } value; @@ -1609,6 +1604,7 @@ struct sc_mcch_msg_type_r13_c { set(types::scptm_cfg_br_r14); return c; } + void set_spare() { set(types::spare); } private: types type_; @@ -1625,9 +1621,6 @@ struct sc_mcch_msg_type_r13_c { // choice methods msg_class_ext_c_() = default; - msg_class_ext_c_(const msg_class_ext_c_& other); - msg_class_ext_c_& operator=(const msg_class_ext_c_& other); - ~msg_class_ext_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -1637,24 +1630,23 @@ struct sc_mcch_msg_type_r13_c { c2_c_& c2() { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } const c2_c_& c2() const { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } c2_c_& set_c2() { set(types::c2); - return c.get(); + return c; } + void set_msg_class_ext_future_r14() { set(types::msg_class_ext_future_r14); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c2_c_ c; }; struct types_opts { enum options { c1, msg_class_ext, nulltype } value; @@ -1735,18 +1727,6 @@ struct fail_report_scg_v12d0_s { void to_json(json_writer& j) const; }; -// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE -struct scg_fail_info_v12d0b_ies_s { - bool fail_report_scg_v12d0_present = false; - bool non_crit_ext_present = false; - fail_report_scg_v12d0_s fail_report_scg_v12d0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // MIMO-WeightedLayersCapabilities-r13 ::= SEQUENCE struct mimo_weighted_layers_cap_r13_s { struct rel_weight_two_layers_r13_opts { @@ -1843,10 +1823,11 @@ struct phy_layer_params_v13e0_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE -struct ue_eutra_cap_v13e0b_ies_s { - bool non_crit_ext_present = false; - phy_layer_params_v13e0_s phy_layer_params_v13e0; +// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE +struct scg_fail_info_v12d0b_ies_s { + bool fail_report_scg_v12d0_present = false; + bool non_crit_ext_present = false; + fail_report_scg_v12d0_s fail_report_scg_v12d0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -1854,11 +1835,10 @@ struct ue_eutra_cap_v13e0b_ies_s { void to_json(json_writer& j) const; }; -// SCG-Config-v12i0b-IEs ::= SEQUENCE -struct scg_cfg_v12i0b_ies_s { - bool scg_radio_cfg_v12i0_present = false; - bool non_crit_ext_present = false; - scg_cfg_part_scg_v12f0_s scg_radio_cfg_v12i0; +// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE +struct ue_eutra_cap_v13e0b_ies_s { + bool non_crit_ext_present = false; + phy_layer_params_v13e0_s phy_layer_params_v13e0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -2233,6 +2213,18 @@ struct sbcch_sl_bch_msg_v2x_r14_s { void to_json(json_writer& j) const; }; +// SCG-Config-v12i0b-IEs ::= SEQUENCE +struct scg_cfg_v12i0b_ies_s { + bool scg_radio_cfg_v12i0_present = false; + bool non_crit_ext_present = false; + scg_cfg_part_scg_v12f0_s scg_radio_cfg_v12i0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // SCG-ConfigInfo-v1530-IEs ::= SEQUENCE struct scg_cfg_info_v1530_ies_s { bool drb_to_add_mod_list_scg_r15_present = false; @@ -2379,6 +2371,13 @@ struct scg_cfg_info_r12_s { set(types::scg_cfg_info_r12); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -2388,9 +2387,6 @@ struct scg_cfg_info_r12_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -2400,24 +2396,23 @@ struct scg_cfg_info_r12_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables diff --git a/lib/include/srslte/asn1/rrc/bcch_msg.h b/lib/include/srslte/asn1/rrc/bcch_msg.h index 3729a522b..91b28d785 100644 --- a/lib/include/srslte/asn1/rrc/bcch_msg.h +++ b/lib/include/srslte/asn1/rrc/bcch_msg.h @@ -42,97 +42,6 @@ struct bcch_bch_msg_s { void to_json(json_writer& j) const; }; -// SIB-Type-v12j0 ::= ENUMERATED -struct sib_type_v12j0_opts { - enum options { - sib_type19_v1250, - sib_type20_v1310, - sib_type21_v1430, - sib_type24_v1530, - sib_type25_v1530, - sib_type26_v1530, - spare10, - spare9, - spare8, - spare7, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1, - // ... - nulltype - } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; -}; -typedef enumerated sib_type_v12j0_e; - -// NS-PmaxValue-v10l0 ::= SEQUENCE -struct ns_pmax_value_v10l0_s { - bool add_spec_emission_v10l0_present = false; - uint16_t add_spec_emission_v10l0 = 33; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SIB-MappingInfo-v12j0 ::= SEQUENCE (SIZE (1..31)) OF SIB-Type-v12j0 -using sib_map_info_v12j0_l = bounded_array; - -// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v1360_s { - bool cell_sel_info_ce1_v1360_present = false; - cell_sel_info_ce1_v1360_s cell_sel_info_ce1_v1360; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-v10l0 -using ns_pmax_list_v10l0_l = dyn_array; - -// NS-PmaxValue-r10 ::= SEQUENCE -struct ns_pmax_value_r10_s { - bool add_pmax_r10_present = false; - int8_t add_pmax_r10 = -30; - uint8_t add_spec_emission = 1; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SchedulingInfo-v12j0 ::= SEQUENCE -struct sched_info_v12j0_s { - bool sib_map_info_v12j0_present = false; - sib_map_info_v12j0_l sib_map_info_v12j0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SchedulingInfoExt-r12 ::= SEQUENCE -struct sched_info_ext_r12_s { - si_periodicity_r12_e si_periodicity_r12; - sib_map_info_v12j0_l sib_map_info_r12; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // BandClassInfoCDMA2000 ::= SEQUENCE struct band_class_info_cdma2000_s { bool ext = false; @@ -149,15 +58,6 @@ struct band_class_info_cdma2000_s { void to_json(json_writer& j) const; }; -// InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360 -using inter_freq_carrier_freq_list_v13a0_l = dyn_array; - -// MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-v10l0 -using multi_band_info_list_v10l0_l = dyn_array; - -// NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-r10 -using ns_pmax_list_r10_l = dyn_array; - // NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE struct neigh_cells_per_bandclass_cdma2000_r11_s { using pci_list_r11_l_ = dyn_array; @@ -178,44 +78,14 @@ using pci_list_cdma2000_l = bounded_array; // PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF INTEGER (0..511) using pci_list_cdma2000_v920_l = bounded_array; -// SchedulingInfoList-v12j0 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-v12j0 -using sched_info_list_v12j0_l = dyn_array; - -// SchedulingInfoListExt-r12 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfoExt-r12 -using sched_info_list_ext_r12_l = dyn_array; - -// SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE -struct sib_type2_v13c0_ies_s { - bool ul_pwr_ctrl_common_v13c0_present = false; - bool non_crit_ext_present = false; - ul_pwr_ctrl_common_v1310_s ul_pwr_ctrl_common_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF BandClassInfoCDMA2000 using band_class_list_cdma2000_l = dyn_array; -// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v10l0_s { - bool freq_band_info_v10l0_present = false; - bool multi_band_info_list_v10l0_present = false; - ns_pmax_list_v10l0_l freq_band_info_v10l0; - multi_band_info_list_v10l0_l multi_band_info_list_v10l0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// MultiBandInfo-v9e0 ::= SEQUENCE -struct multi_band_info_v9e0_s { - bool freq_band_ind_v9e0_present = false; - uint16_t freq_band_ind_v9e0 = 65; +// NS-PmaxValue-r10 ::= SEQUENCE +struct ns_pmax_value_r10_s { + bool add_pmax_r10_present = false; + int8_t add_pmax_r10 = -30; + uint8_t add_spec_emission = 1; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -223,9 +93,6 @@ struct multi_band_info_v9e0_s { void to_json(json_writer& j) const; }; -// MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-r10 -using multi_band_info_list_v10j0_l = dyn_array; - // NS-PmaxValueNR-r15 ::= SEQUENCE struct ns_pmax_value_nr_r15_s { bool add_pmax_nr_r15_present = false; @@ -284,47 +151,6 @@ struct redist_neigh_cell_r13_s { void to_json(json_writer& j) const; }; -// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE -struct sib_type1_v12j0_ies_s { - bool sched_info_list_v12j0_present = false; - bool sched_info_list_ext_r12_present = false; - bool non_crit_ext_present = false; - sched_info_list_v12j0_l sched_info_list_v12j0; - sched_info_list_ext_r12_l sched_info_list_ext_r12; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE -struct sib_type2_v10n0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - sib_type2_v13c0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE -struct sib_type5_v13a0_ies_s { - bool late_non_crit_ext_present = false; - bool inter_freq_carrier_freq_list_v13a0_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - inter_freq_carrier_freq_list_v13a0_l inter_freq_carrier_freq_list_v13a0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // AC-BarringConfig1XRTT-r9 ::= SEQUENCE struct ac_barr_cfg1_xrtt_r9_s { uint8_t ac_barr0to9_r9 = 0; @@ -391,19 +217,6 @@ struct cell_resel_params_cdma2000_r11_s { void to_json(json_writer& j) const; }; -// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v10j0_s { - bool freq_band_info_r10_present = false; - bool multi_band_info_list_v10j0_present = false; - ns_pmax_list_r10_l freq_band_info_r10; - multi_band_info_list_v10j0_l multi_band_info_list_v10j0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // InterFreqNeighCellInfo ::= SEQUENCE struct inter_freq_neigh_cell_info_s { uint16_t pci = 0; @@ -415,8 +228,8 @@ struct inter_freq_neigh_cell_info_s { void to_json(json_writer& j) const; }; -// MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MultiBandInfo-v9e0 -using multi_band_info_list_v9e0_l = dyn_array; +// NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-r10 +using ns_pmax_list_r10_l = dyn_array; // NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15 using ns_pmax_list_nr_r15_l = dyn_array; @@ -491,56 +304,6 @@ using redist_neigh_cell_list_r13_l = dyn_array; // SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfigNFreq-r13 using sl_sync_cfg_list_nfreq_r13_l = dyn_array; -// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE -struct sib_type1_v10x0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - sib_type1_v12j0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE -struct sib_type2_v10m0_ies_s { - struct freq_info_v10l0_s_ { - uint16_t add_spec_emission_v10l0 = 33; - }; - using multi_band_info_list_v10l0_l_ = bounded_array; - - // member variables - bool freq_info_v10l0_present = false; - bool multi_band_info_list_v10l0_present = false; - bool non_crit_ext_present = false; - freq_info_v10l0_s_ freq_info_v10l0; - multi_band_info_list_v10l0_l_ multi_band_info_list_v10l0; - sib_type2_v10n0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE -struct sib_type5_v10l0_ies_s { - using inter_freq_carrier_freq_list_v10l0_l_ = dyn_array; - - // member variables - bool inter_freq_carrier_freq_list_v10l0_present = false; - bool non_crit_ext_present = false; - inter_freq_carrier_freq_list_v10l0_l_ inter_freq_carrier_freq_list_v10l0; - sib_type5_v13a0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SystemTimeInfoCDMA2000 ::= SEQUENCE struct sys_time_info_cdma2000_s { struct cdma_sys_time_c_ { @@ -624,19 +387,6 @@ struct uac_barr_per_cat_r15_s { // InterFreqBlackCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange using inter_freq_black_cell_list_l = dyn_array; -// InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v9e0_s { - bool dl_carrier_freq_v9e0_present = false; - bool multi_band_info_list_v9e0_present = false; - uint32_t dl_carrier_freq_v9e0 = 65536; - multi_band_info_list_v9e0_l multi_band_info_list_v9e0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // InterFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo using inter_freq_neigh_cell_list_l = dyn_array; @@ -646,8 +396,8 @@ using inter_freq_neigh_hsdn_cell_list_r15_l = dyn_array; // MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (0..65535) using mbms_sai_list_r11_l = dyn_array; -// MultiBandInfoList ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..64) -using multi_band_info_list_l = bounded_array; +// MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-r10 +using multi_band_info_list_v10j0_l = dyn_array; // MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1..31)) OF NS-PmaxListNR-r15 using multi_band_ns_pmax_list_nr_minus1_v1550_l = dyn_array; @@ -712,6 +462,7 @@ struct params_cdma2000_r11_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -784,66 +535,9 @@ struct sl_disc_cfg_other_inter_freq_r13_s { void to_json(json_writer& j) const; }; -// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE -struct sib_type1_v10l0_ies_s { - bool freq_band_info_v10l0_present = false; - bool multi_band_info_list_v10l0_present = false; - bool non_crit_ext_present = false; - ns_pmax_list_v10l0_l freq_band_info_v10l0; - multi_band_info_list_v10l0_l multi_band_info_list_v10l0; - sib_type1_v10x0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE -struct sib_type2_v9i0_ies_s { - bool non_crit_ext_present = false; - bool dummy_present = false; - dyn_octstring non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE -struct sib_type5_v10j0_ies_s { - using inter_freq_carrier_freq_list_v10j0_l_ = dyn_array; - - // member variables - bool inter_freq_carrier_freq_list_v10j0_present = false; - bool non_crit_ext_present = false; - inter_freq_carrier_freq_list_v10j0_l_ inter_freq_carrier_freq_list_v10j0; - sib_type5_v10l0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UAC-BarringPerCatList-r15 ::= SEQUENCE (SIZE (1..63)) OF UAC-BarringPerCat-r15 using uac_barr_per_cat_list_r15_l = dyn_array; -// CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE -struct carrier_freq_info_utra_fdd_v8h0_s { - using multi_band_info_list_l_ = bounded_array; - - // member variables - bool multi_band_info_list_present = false; - multi_band_info_list_l_ multi_band_info_list; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // CarrierFreqNR-r15 ::= SEQUENCE struct carrier_freq_nr_r15_s { struct subcarrier_spacing_ssb_r15_opts { @@ -1135,6 +829,19 @@ struct inter_freq_carrier_freq_info_r12_s { void to_json(json_writer& j) const; }; +// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v10j0_s { + bool freq_band_info_r10_present = false; + bool multi_band_info_list_v10j0_present = false; + ns_pmax_list_r10_l freq_band_info_r10; + multi_band_info_list_v10j0_l multi_band_info_list_v10j0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE struct inter_freq_carrier_freq_info_v1250_s { bool reduced_meas_performance_r12_present = false; @@ -1175,13 +882,10 @@ struct inter_freq_carrier_freq_info_v1350_s { void to_json(json_writer& j) const; }; -// InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v1530_s { - bool inter_freq_neigh_hsdn_cell_list_r15_present = false; - bool cell_sel_info_ce_v1530_present = false; - bool hsdn_ind_r15 = false; - inter_freq_neigh_hsdn_cell_list_r15_l inter_freq_neigh_hsdn_cell_list_r15; - cell_sel_info_ce_v1530_s cell_sel_info_ce_v1530; +// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v1360_s { + bool cell_sel_info_ce1_v1360_present = false; + cell_sel_info_ce1_v1360_s cell_sel_info_ce1_v1360; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -1189,10 +893,13 @@ struct inter_freq_carrier_freq_info_v1530_s { void to_json(json_writer& j) const; }; -// InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE -struct inter_freq_carrier_freq_info_v8h0_s { - bool multi_band_info_list_present = false; - multi_band_info_list_l multi_band_info_list; +// InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v1530_s { + bool inter_freq_neigh_hsdn_cell_list_r15_present = false; + bool cell_sel_info_ce_v1530_present = false; + bool hsdn_ind_r15 = false; + inter_freq_neigh_hsdn_cell_list_r15_l inter_freq_neigh_hsdn_cell_list_r15; + cell_sel_info_ce_v1530_s cell_sel_info_ce_v1530; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -1412,6 +1119,7 @@ struct sib8_per_plmn_r11_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -1475,64 +1183,6 @@ struct sl_pppp_tx_cfg_idx_r15_s { void to_json(json_writer& j) const; }; -// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE -struct sib_type1_v10j0_ies_s { - bool freq_band_info_r10_present = false; - bool multi_band_info_list_v10j0_present = false; - bool non_crit_ext_present = false; - ns_pmax_list_r10_l freq_band_info_r10; - multi_band_info_list_v10j0_l multi_band_info_list_v10j0; - sib_type1_v10l0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE -struct sib_type2_v9e0_ies_s { - bool ul_carrier_freq_v9e0_present = false; - bool non_crit_ext_present = false; - uint32_t ul_carrier_freq_v9e0 = 65536; - sib_type2_v9i0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE -struct sib_type3_v10l0_ies_s { - bool freq_band_info_v10l0_present = false; - bool multi_band_info_list_v10l0_present = false; - bool non_crit_ext_present = false; - ns_pmax_list_v10l0_l freq_band_info_v10l0; - multi_band_info_list_v10l0_l multi_band_info_list_v10l0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE -struct sib_type5_v9e0_ies_s { - using inter_freq_carrier_freq_list_v9e0_l_ = dyn_array; - - // member variables - bool inter_freq_carrier_freq_list_v9e0_present = false; - bool non_crit_ext_present = false; - inter_freq_carrier_freq_list_v9e0_l_ inter_freq_carrier_freq_list_v9e0; - sib_type5_v10j0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UAC-BarringInfoSet-r15 ::= SEQUENCE struct uac_barr_info_set_r15_s { struct uac_barr_factor_r15_opts { @@ -2278,83 +1928,6 @@ struct sl_disc_cfg_remote_ue_r13_s { // SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12 using sl_sync_cfg_list_r12_l = dyn_array; -// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE -struct sib_type1_v9e0_ies_s { - bool freq_band_ind_v9e0_present = false; - bool multi_band_info_list_v9e0_present = false; - bool non_crit_ext_present = false; - uint16_t freq_band_ind_v9e0 = 65; - multi_band_info_list_v9e0_l multi_band_info_list_v9e0; - sib_type1_v10j0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE -struct sib_type2_v8h0_ies_s { - using multi_band_info_list_l_ = bounded_array; - - // member variables - bool multi_band_info_list_present = false; - bool non_crit_ext_present = false; - multi_band_info_list_l_ multi_band_info_list; - sib_type2_v9e0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE -struct sib_type3_v10j0_ies_s { - bool freq_band_info_r10_present = false; - bool multi_band_info_list_v10j0_present = false; - bool non_crit_ext_present = false; - ns_pmax_list_r10_l freq_band_info_r10; - multi_band_info_list_v10j0_l multi_band_info_list_v10j0; - sib_type3_v10l0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE -struct sib_type5_v8h0_ies_s { - using inter_freq_carrier_freq_list_v8h0_l_ = dyn_array; - - // member variables - bool inter_freq_carrier_freq_list_v8h0_present = false; - bool non_crit_ext_present = false; - inter_freq_carrier_freq_list_v8h0_l_ inter_freq_carrier_freq_list_v8h0; - sib_type5_v9e0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE -struct sib_type6_v8h0_ies_s { - using carrier_freq_list_utra_fdd_v8h0_l_ = dyn_array; - - // member variables - bool carrier_freq_list_utra_fdd_v8h0_present = false; - bool non_crit_ext_present = false; - carrier_freq_list_utra_fdd_v8h0_l_ carrier_freq_list_utra_fdd_v8h0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED struct uac_ac1_select_assist_info_r15_opts { enum options { a, b, c, nulltype } value; @@ -2395,19 +1968,6 @@ struct sib_pos_r15_s { void to_json(json_writer& j) const; }; -// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE -struct sib_type1_v8h0_ies_s { - bool multi_band_info_list_present = false; - bool non_crit_ext_present = false; - multi_band_info_list_l multi_band_info_list; - sib_type1_v9e0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SystemInformationBlockType10 ::= SEQUENCE struct sib_type10_s { bool ext = false; @@ -4311,9 +3871,6 @@ struct sys_info_s { // choice methods crit_exts_future_r15_c_() = default; - crit_exts_future_r15_c_(const crit_exts_future_r15_c_& other); - crit_exts_future_r15_c_& operator=(const crit_exts_future_r15_c_& other); - ~crit_exts_future_r15_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4323,24 +3880,23 @@ struct sys_info_s { pos_sys_info_r15_ies_s& pos_sys_info_r15() { assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15"); - return c.get(); + return c; } const pos_sys_info_r15_ies_s& pos_sys_info_r15() const { assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15"); - return c.get(); + return c; } pos_sys_info_r15_ies_s& set_pos_sys_info_r15() { set(types::pos_sys_info_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + pos_sys_info_r15_ies_s c; }; struct types_opts { enum options { sys_info_r8, crit_exts_future_r15, nulltype } value; @@ -4478,9 +4034,6 @@ struct bcch_dl_sch_msg_type_c { // choice methods bcch_dl_sch_msg_type_c() = default; - bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other); - bcch_dl_sch_msg_type_c& operator=(const bcch_dl_sch_msg_type_c& other); - ~bcch_dl_sch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4490,25 +4043,24 @@ struct bcch_dl_sch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); -}; + types type_; + c1_c_ c; +}; // BCCH-DL-SCH-Message ::= SEQUENCE struct bcch_dl_sch_msg_s { @@ -4597,9 +4149,6 @@ struct bcch_dl_sch_msg_type_br_r13_c { // choice methods bcch_dl_sch_msg_type_br_r13_c() = default; - bcch_dl_sch_msg_type_br_r13_c(const bcch_dl_sch_msg_type_br_r13_c& other); - bcch_dl_sch_msg_type_br_r13_c& operator=(const bcch_dl_sch_msg_type_br_r13_c& other); - ~bcch_dl_sch_msg_type_br_r13_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4609,24 +4158,23 @@ struct bcch_dl_sch_msg_type_br_r13_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // BCCH-DL-SCH-Message-BR ::= SEQUENCE @@ -4750,6 +4298,448 @@ struct sib_type1_mbms_r14_s { void to_json(json_writer& j) const; }; +// CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE +struct carrier_freq_info_utra_fdd_v8h0_s { + using multi_band_info_list_l_ = bounded_array; + + // member variables + bool multi_band_info_list_present = false; + multi_band_info_list_l_ multi_band_info_list; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// NS-PmaxValue-v10l0 ::= SEQUENCE +struct ns_pmax_value_v10l0_s { + bool add_spec_emission_v10l0_present = false; + uint16_t add_spec_emission_v10l0 = 33; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-v10l0 +using ns_pmax_list_v10l0_l = dyn_array; + +// MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-v10l0 +using multi_band_info_list_v10l0_l = dyn_array; + +// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v10l0_s { + bool freq_band_info_v10l0_present = false; + bool multi_band_info_list_v10l0_present = false; + ns_pmax_list_v10l0_l freq_band_info_v10l0; + multi_band_info_list_v10l0_l multi_band_info_list_v10l0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MultiBandInfoList ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..64) +using multi_band_info_list_l = bounded_array; + +// InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v8h0_s { + bool multi_band_info_list_present = false; + multi_band_info_list_l multi_band_info_list; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MultiBandInfo-v9e0 ::= SEQUENCE +struct multi_band_info_v9e0_s { + bool freq_band_ind_v9e0_present = false; + uint16_t freq_band_ind_v9e0 = 65; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MultiBandInfo-v9e0 +using multi_band_info_list_v9e0_l = dyn_array; + +// InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE +struct inter_freq_carrier_freq_info_v9e0_s { + bool dl_carrier_freq_v9e0_present = false; + bool multi_band_info_list_v9e0_present = false; + uint32_t dl_carrier_freq_v9e0 = 65536; + multi_band_info_list_v9e0_l multi_band_info_list_v9e0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360 +using inter_freq_carrier_freq_list_v13a0_l = dyn_array; + +// SIB-Type-v12j0 ::= ENUMERATED +struct sib_type_v12j0_opts { + enum options { + sib_type19_v1250, + sib_type20_v1310, + sib_type21_v1430, + sib_type24_v1530, + sib_type25_v1530, + sib_type26_v1530, + spare10, + spare9, + spare8, + spare7, + spare6, + spare5, + spare4, + spare3, + spare2, + spare1, + // ... + nulltype + } value; + typedef uint8_t number_type; + + std::string to_string() const; + uint8_t to_number() const; +}; +typedef enumerated sib_type_v12j0_e; + +// SIB-MappingInfo-v12j0 ::= SEQUENCE (SIZE (1..31)) OF SIB-Type-v12j0 +using sib_map_info_v12j0_l = bounded_array; + +// SchedulingInfo-v12j0 ::= SEQUENCE +struct sched_info_v12j0_s { + bool sib_map_info_v12j0_present = false; + sib_map_info_v12j0_l sib_map_info_v12j0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SchedulingInfoExt-r12 ::= SEQUENCE +struct sched_info_ext_r12_s { + si_periodicity_r12_e si_periodicity_r12; + sib_map_info_v12j0_l sib_map_info_r12; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SchedulingInfoList-v12j0 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-v12j0 +using sched_info_list_v12j0_l = dyn_array; + +// SchedulingInfoListExt-r12 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfoExt-r12 +using sched_info_list_ext_r12_l = dyn_array; + +// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE +struct sib_type1_v12j0_ies_s { + bool sched_info_list_v12j0_present = false; + bool sched_info_list_ext_r12_present = false; + bool non_crit_ext_present = false; + sched_info_list_v12j0_l sched_info_list_v12j0; + sched_info_list_ext_r12_l sched_info_list_ext_r12; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE +struct sib_type1_v10x0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + sib_type1_v12j0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE +struct sib_type1_v10l0_ies_s { + bool freq_band_info_v10l0_present = false; + bool multi_band_info_list_v10l0_present = false; + bool non_crit_ext_present = false; + ns_pmax_list_v10l0_l freq_band_info_v10l0; + multi_band_info_list_v10l0_l multi_band_info_list_v10l0; + sib_type1_v10x0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE +struct sib_type1_v10j0_ies_s { + bool freq_band_info_r10_present = false; + bool multi_band_info_list_v10j0_present = false; + bool non_crit_ext_present = false; + ns_pmax_list_r10_l freq_band_info_r10; + multi_band_info_list_v10j0_l multi_band_info_list_v10j0; + sib_type1_v10l0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE +struct sib_type1_v9e0_ies_s { + bool freq_band_ind_v9e0_present = false; + bool multi_band_info_list_v9e0_present = false; + bool non_crit_ext_present = false; + uint16_t freq_band_ind_v9e0 = 65; + multi_band_info_list_v9e0_l multi_band_info_list_v9e0; + sib_type1_v10j0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE +struct sib_type1_v8h0_ies_s { + bool multi_band_info_list_present = false; + bool non_crit_ext_present = false; + multi_band_info_list_l multi_band_info_list; + sib_type1_v9e0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE +struct sib_type2_v13c0_ies_s { + bool ul_pwr_ctrl_common_v13c0_present = false; + bool non_crit_ext_present = false; + ul_pwr_ctrl_common_v1310_s ul_pwr_ctrl_common_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE +struct sib_type2_v10n0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + sib_type2_v13c0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE +struct sib_type2_v10m0_ies_s { + struct freq_info_v10l0_s_ { + uint16_t add_spec_emission_v10l0 = 33; + }; + using multi_band_info_list_v10l0_l_ = bounded_array; + + // member variables + bool freq_info_v10l0_present = false; + bool multi_band_info_list_v10l0_present = false; + bool non_crit_ext_present = false; + freq_info_v10l0_s_ freq_info_v10l0; + multi_band_info_list_v10l0_l_ multi_band_info_list_v10l0; + sib_type2_v10n0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE +struct sib_type2_v9i0_ies_s { + bool non_crit_ext_present = false; + bool dummy_present = false; + dyn_octstring non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE +struct sib_type2_v9e0_ies_s { + bool ul_carrier_freq_v9e0_present = false; + bool non_crit_ext_present = false; + uint32_t ul_carrier_freq_v9e0 = 65536; + sib_type2_v9i0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE +struct sib_type2_v8h0_ies_s { + using multi_band_info_list_l_ = bounded_array; + + // member variables + bool multi_band_info_list_present = false; + bool non_crit_ext_present = false; + multi_band_info_list_l_ multi_band_info_list; + sib_type2_v9e0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE +struct sib_type3_v10l0_ies_s { + bool freq_band_info_v10l0_present = false; + bool multi_band_info_list_v10l0_present = false; + bool non_crit_ext_present = false; + ns_pmax_list_v10l0_l freq_band_info_v10l0; + multi_band_info_list_v10l0_l multi_band_info_list_v10l0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE +struct sib_type3_v10j0_ies_s { + bool freq_band_info_r10_present = false; + bool multi_band_info_list_v10j0_present = false; + bool non_crit_ext_present = false; + ns_pmax_list_r10_l freq_band_info_r10; + multi_band_info_list_v10j0_l multi_band_info_list_v10j0; + sib_type3_v10l0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE +struct sib_type5_v13a0_ies_s { + bool late_non_crit_ext_present = false; + bool inter_freq_carrier_freq_list_v13a0_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + inter_freq_carrier_freq_list_v13a0_l inter_freq_carrier_freq_list_v13a0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE +struct sib_type5_v10l0_ies_s { + using inter_freq_carrier_freq_list_v10l0_l_ = dyn_array; + + // member variables + bool inter_freq_carrier_freq_list_v10l0_present = false; + bool non_crit_ext_present = false; + inter_freq_carrier_freq_list_v10l0_l_ inter_freq_carrier_freq_list_v10l0; + sib_type5_v13a0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE +struct sib_type5_v10j0_ies_s { + using inter_freq_carrier_freq_list_v10j0_l_ = dyn_array; + + // member variables + bool inter_freq_carrier_freq_list_v10j0_present = false; + bool non_crit_ext_present = false; + inter_freq_carrier_freq_list_v10j0_l_ inter_freq_carrier_freq_list_v10j0; + sib_type5_v10l0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE +struct sib_type5_v9e0_ies_s { + using inter_freq_carrier_freq_list_v9e0_l_ = dyn_array; + + // member variables + bool inter_freq_carrier_freq_list_v9e0_present = false; + bool non_crit_ext_present = false; + inter_freq_carrier_freq_list_v9e0_l_ inter_freq_carrier_freq_list_v9e0; + sib_type5_v10j0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE +struct sib_type5_v8h0_ies_s { + using inter_freq_carrier_freq_list_v8h0_l_ = dyn_array; + + // member variables + bool inter_freq_carrier_freq_list_v8h0_present = false; + bool non_crit_ext_present = false; + inter_freq_carrier_freq_list_v8h0_l_ inter_freq_carrier_freq_list_v8h0; + sib_type5_v9e0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE +struct sib_type6_v8h0_ies_s { + using carrier_freq_list_utra_fdd_v8h0_l_ = dyn_array; + + // member variables + bool carrier_freq_list_utra_fdd_v8h0_present = false; + bool non_crit_ext_present = false; + carrier_freq_list_utra_fdd_v8h0_l_ carrier_freq_list_utra_fdd_v8h0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11 typedef sib_type16_r11_s sib_type16_nb_r13_s; diff --git a/lib/include/srslte/asn1/rrc/common_ext.h b/lib/include/srslte/asn1/rrc/common_ext.h index f820684a8..e1f990c8f 100644 --- a/lib/include/srslte/asn1/rrc/common_ext.h +++ b/lib/include/srslte/asn1/rrc/common_ext.h @@ -71,6 +71,7 @@ struct sl_tx_pwr_r14_c { assert_choice_type("txPower-r14", type_.to_string(), "SL-TxPower-r14"); return c; } + void set_minusinfinity_r14() { set(types::minusinfinity_r14); } int8_t& set_tx_pwr_r14() { set(types::tx_pwr_r14); @@ -918,6 +919,7 @@ struct sl_disc_res_pool_r12_s { set(types::rsrp_based_r12); return c; } + void set_random_r12() { set(types::random_r12); } private: types type_; @@ -976,6 +978,7 @@ struct sl_disc_res_pool_r12_s { assert_choice_type("setup", type_.to_string(), "discPeriod-v1310"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -1010,6 +1013,7 @@ struct sl_disc_res_pool_r12_s { assert_choice_type("setup", type_.to_string(), "rxParamsAddNeighFreq-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1073,6 +1077,7 @@ struct sl_disc_res_pool_r12_s { assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1112,6 +1117,7 @@ struct sl_disc_res_pool_r12_s { assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-v1370"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1397,11 +1403,14 @@ struct sl_disc_tx_res_inter_freq_r13_c { assert_choice_type("discTxPoolCommon-r13", type_.to_string(), "SL-DiscTxResourcesInterFreq-r13"); return c; } + void set_acquire_si_from_carrier_r13() { set(types::acquire_si_from_carrier_r13); } sl_disc_tx_pool_list_r12_l& set_disc_tx_pool_common_r13() { set(types::disc_tx_pool_common_r13); return c; } + void set_request_ded_r13() { set(types::request_ded_r13); } + void set_no_tx_on_carrier_r13() { set(types::no_tx_on_carrier_r13); } private: types type_; diff --git a/lib/include/srslte/asn1/rrc/dl_ccch_msg.h b/lib/include/srslte/asn1/rrc/dl_ccch_msg.h index 6bf7548ca..dbaf6d80e 100644 --- a/lib/include/srslte/asn1/rrc/dl_ccch_msg.h +++ b/lib/include/srslte/asn1/rrc/dl_ccch_msg.h @@ -578,6 +578,13 @@ struct rrc_conn_reest_s { set(types::rrc_conn_reest_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -587,9 +594,6 @@ struct rrc_conn_reest_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -599,24 +603,23 @@ struct rrc_conn_reest_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -641,9 +644,6 @@ struct rrc_conn_reest_reject_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -653,24 +653,23 @@ struct rrc_conn_reest_reject_s { rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8() { assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8() const { assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_reest_reject_r8_ies_s& set_rrc_conn_reest_reject_r8() { set(types::rrc_conn_reest_reject_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_reest_reject_r8_ies_s c; }; // member variables @@ -716,6 +715,9 @@ struct rrc_conn_reject_s { set(types::rrc_conn_reject_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -725,9 +727,6 @@ struct rrc_conn_reject_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -737,24 +736,23 @@ struct rrc_conn_reject_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -800,6 +798,13 @@ struct rrc_conn_setup_s { set(types::rrc_conn_setup_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -809,9 +814,6 @@ struct rrc_conn_setup_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -821,24 +823,23 @@ struct rrc_conn_setup_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -863,9 +864,6 @@ struct rrc_early_data_complete_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -875,24 +873,23 @@ struct rrc_early_data_complete_r15_s { rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15() { assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15() const { assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_early_data_complete_r15_ies_s& set_rrc_early_data_complete_r15() { set(types::rrc_early_data_complete_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_early_data_complete_r15_ies_s c; }; // member variables @@ -1024,6 +1021,9 @@ struct dl_ccch_msg_type_c { set(types::rrc_early_data_complete_r15); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -1040,9 +1040,6 @@ struct dl_ccch_msg_type_c { // choice methods msg_class_ext_c_() = default; - msg_class_ext_c_(const msg_class_ext_c_& other); - msg_class_ext_c_& operator=(const msg_class_ext_c_& other); - ~msg_class_ext_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -1052,24 +1049,23 @@ struct dl_ccch_msg_type_c { c2_c_& c2() { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } const c2_c_& c2() const { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } c2_c_& set_c2() { set(types::c2); - return c.get(); + return c; } + void set_msg_class_ext_future_r15() { set(types::msg_class_ext_future_r15); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c2_c_ c; }; struct types_opts { enum options { c1, msg_class_ext, nulltype } value; diff --git a/lib/include/srslte/asn1/rrc/dl_dcch_msg.h b/lib/include/srslte/asn1/rrc/dl_dcch_msg.h index 1b406feb0..a6f9eeb35 100644 --- a/lib/include/srslte/asn1/rrc/dl_dcch_msg.h +++ b/lib/include/srslte/asn1/rrc/dl_dcch_msg.h @@ -439,16 +439,6 @@ struct rr_cfg_common_ps_cell_r12_s { void to_json(json_writer& j) const; }; -// RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE -struct rr_cfg_common_ps_cell_v12f0_s { - rr_cfg_common_scell_v10l0_s basic_fields_v12f0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE struct rr_cfg_common_ps_cell_v1440_s { rr_cfg_common_scell_v1440_s basic_fields_v1440; @@ -508,19 +498,6 @@ struct rr_cfg_ded_ps_cell_v13c0_s { void to_json(json_writer& j) const; }; -// SCG-ConfigPartSCG-v13c0 ::= SEQUENCE -struct scg_cfg_part_scg_v13c0_s { - bool scell_to_add_mod_list_scg_v13c0_present = false; - bool scell_to_add_mod_list_scg_ext_v13c0_present = false; - scell_to_add_mod_list_v13c0_l scell_to_add_mod_list_scg_v13c0; - scell_to_add_mod_list_ext_v13c0_l scell_to_add_mod_list_scg_ext_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE struct sl_disc_tx_ref_carrier_ded_r13_c { struct types_opts { @@ -548,6 +525,7 @@ struct sl_disc_tx_ref_carrier_ded_r13_c { assert_choice_type("sCell", type_.to_string(), "SL-DiscTxRefCarrierDedicated-r13"); return c; } + void set_pcell() { set(types::pcell); } uint8_t& set_scell() { set(types::scell); @@ -637,6 +615,7 @@ struct sl_disc_tx_res_r13_c { assert_choice_type("setup", type_.to_string(), "SL-DiscTxResource-r13"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -680,6 +659,7 @@ struct tdm_pattern_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "TDM-PatternConfig-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -840,17 +820,6 @@ struct ps_cell_to_add_mod_r12_s { void to_json(json_writer& j) const; }; -// PSCellToAddMod-v12f0 ::= SEQUENCE -struct ps_cell_to_add_mod_v12f0_s { - bool rr_cfg_common_ps_cell_r12_present = false; - rr_cfg_common_ps_cell_v12f0_s rr_cfg_common_ps_cell_r12; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // PSCellToAddMod-v1440 ::= SEQUENCE struct ps_cell_to_add_mod_v1440_s { bool rr_cfg_common_ps_cell_r14_present = false; @@ -898,6 +867,7 @@ struct rclwi_cfg_r13_s { set(types::steer_to_wlan_r13); return c; } + void set_steer_to_lte_r13() { set(types::steer_to_lte_r13); } private: types type_; @@ -945,6 +915,7 @@ struct rrc_conn_recfg_v1510_ies_s { assert_choice_type("setup", type_.to_string(), "nr-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -976,43 +947,6 @@ struct rrc_conn_recfg_v1510_ies_s { void to_json(json_writer& j) const; }; -// SCG-Configuration-v13c0 ::= CHOICE -struct scg_cfg_v13c0_c { - struct setup_s_ { - bool scg_cfg_part_scg_v13c0_present = false; - scg_cfg_part_scg_v13c0_s scg_cfg_part_scg_v13c0; - }; - typedef setup_e types; - - // choice methods - scg_cfg_v13c0_c() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - setup_s_& setup() - { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); - return c; - } - const setup_s_& setup() const - { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); - return c; - } - setup_s_& set_setup() - { - set(types::setup); - return c; - } - -private: - types type_; - setup_s_ c; -}; - // SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..7) using scell_to_release_list_r10_l = bounded_array; @@ -1172,6 +1106,7 @@ struct sl_v2x_cfg_ded_r14_s { assert_choice_type("setup", type_.to_string(), "commTxResources-r14"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -1269,6 +1204,7 @@ struct sl_v2x_cfg_ded_r14_s { assert_choice_type("setup", type_.to_string(), "commTxResources-v1530"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -1332,6 +1268,7 @@ struct lwa_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "LWA-Configuration-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1368,6 +1305,7 @@ struct lwip_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "LWIP-Configuration-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1474,6 +1412,7 @@ struct rclwi_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "RCLWI-Configuration-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1485,24 +1424,6 @@ private: setup_s_ c; }; -// RRCConnectionReconfiguration-v13c0-IEs ::= SEQUENCE -struct rrc_conn_recfg_v13c0_ies_s { - bool rr_cfg_ded_v13c0_present = false; - bool scell_to_add_mod_list_v13c0_present = false; - bool scell_to_add_mod_list_ext_v13c0_present = false; - bool scg_cfg_v13c0_present = false; - bool non_crit_ext_present = false; - rr_cfg_ded_v13c0_s rr_cfg_ded_v13c0; - scell_to_add_mod_list_v13c0_l scell_to_add_mod_list_v13c0; - scell_to_add_mod_list_ext_v13c0_l scell_to_add_mod_list_ext_v13c0; - scg_cfg_v13c0_c scg_cfg_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE struct rrc_conn_recfg_v1430_ies_s { bool sl_v2x_cfg_ded_r14_present = false; @@ -1532,17 +1453,6 @@ struct rrc_conn_release_v15b0_ies_s { void to_json(json_writer& j) const; }; -// RadioResourceConfigDedicated-v1370 ::= SEQUENCE -struct rr_cfg_ded_v1370_s { - bool phys_cfg_ded_v1370_present = false; - phys_cfg_ded_v1370_s phys_cfg_ded_v1370; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SCG-ConfigPartSCG-r12 ::= SEQUENCE struct scg_cfg_part_scg_r12_s { bool ext = false; @@ -1580,19 +1490,6 @@ struct scg_cfg_part_scg_r12_s { void to_json(json_writer& j) const; }; -// SCG-ConfigPartSCG-v12f0 ::= SEQUENCE -struct scg_cfg_part_scg_v12f0_s { - bool pscell_to_add_mod_v12f0_present = false; - bool scell_to_add_mod_list_scg_v12f0_present = false; - ps_cell_to_add_mod_v12f0_s pscell_to_add_mod_v12f0; - scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_scg_v12f0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-CommTxPoolToAddMod-r12 using sl_comm_tx_pool_to_add_mod_list_r12_l = dyn_array; @@ -1731,21 +1628,6 @@ struct rrc_conn_recfg_v1310_ies_s { void to_json(json_writer& j) const; }; -// RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE -struct rrc_conn_recfg_v1370_ies_s { - bool rr_cfg_ded_v1370_present = false; - bool scell_to_add_mod_list_ext_v1370_present = false; - bool non_crit_ext_present = false; - rr_cfg_ded_v1370_s rr_cfg_ded_v1370; - scell_to_add_mod_list_ext_v1370_l scell_to_add_mod_list_ext_v1370; - rrc_conn_recfg_v13c0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionRelease-v1540-IEs ::= SEQUENCE struct rrc_conn_release_v1540_ies_s { bool wait_time_present = false; @@ -1797,43 +1679,7 @@ struct scg_cfg_r12_c { assert_choice_type("setup", type_.to_string(), "SCG-Configuration-r12"); return c; } - setup_s_& set_setup() - { - set(types::setup); - return c; - } - -private: - types type_; - setup_s_ c; -}; - -// SCG-Configuration-v12f0 ::= CHOICE -struct scg_cfg_v12f0_c { - struct setup_s_ { - bool scg_cfg_part_scg_v12f0_present = false; - scg_cfg_part_scg_v12f0_s scg_cfg_part_scg_v12f0; - }; - typedef setup_e types; - - // choice methods - scg_cfg_v12f0_c() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - setup_s_& setup() - { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); - return c; - } - const setup_s_& setup() const - { - assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); - return c; - } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1942,6 +1788,7 @@ struct sl_comm_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "commTxResources-r12"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -2044,6 +1891,7 @@ struct sl_comm_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "commTxResources-v1310"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -2170,6 +2018,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discTxResources-r12"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -2204,6 +2053,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discTF-IndexList-v1260"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2294,6 +2144,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discTxResourcesPS-r13"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -2333,6 +2184,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discTxInterFreqInfo-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2364,6 +2216,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discRxGapConfig-r13"); return c; } + void set_release() { set(types::release); } sl_gap_cfg_r13_s& set_setup() { set(types::setup); @@ -2395,6 +2248,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discTxGapConfig-r13"); return c; } + void set_release() { set(types::release); } sl_gap_cfg_r13_s& set_setup() { set(types::setup); @@ -2426,6 +2280,7 @@ struct sl_disc_cfg_r12_s { assert_choice_type("setup", type_.to_string(), "discSysInfoToReportConfig-r13"); return c; } + void set_release() { set(types::release); } sl_disc_sys_info_to_report_freq_list_r13_l& set_setup() { set(types::setup); @@ -2519,6 +2374,7 @@ struct rrc_conn_recfg_v1250_ies_s { assert_choice_type("setup", type_.to_string(), "wlan-OffloadInfo-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2550,21 +2406,6 @@ struct rrc_conn_recfg_v1250_ies_s { void to_json(json_writer& j) const; }; -// RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE -struct rrc_conn_recfg_v12f0_ies_s { - bool scg_cfg_v12f0_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - scg_cfg_v12f0_c scg_cfg_v12f0; - dyn_octstring late_non_crit_ext; - rrc_conn_recfg_v1370_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionRelease-v1530-IEs ::= SEQUENCE struct rrc_conn_release_v1530_ies_s { struct cn_type_r15_opts { @@ -2728,6 +2569,7 @@ struct idc_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "idc-Indication-MRDC-r15"); return c; } + void set_release() { set(types::release); } candidate_serving_freq_list_nr_r15_l& set_setup() { set(types::setup); @@ -2822,6 +2664,7 @@ struct pwr_pref_ind_cfg_r11_c { assert_choice_type("setup", type_.to_string(), "PowerPrefIndicationConfig-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2833,23 +2676,6 @@ private: setup_s_ c; }; -// RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE -struct rrc_conn_recfg_v10l0_ies_s { - bool mob_ctrl_info_v10l0_present = false; - bool scell_to_add_mod_list_v10l0_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - mob_ctrl_info_v10l0_s mob_ctrl_info_v10l0; - scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_v10l0; - dyn_octstring late_non_crit_ext; - rrc_conn_recfg_v12f0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE struct rrc_conn_recfg_v1130_ies_s { bool sib_type1_ded_r11_present = false; @@ -3042,6 +2868,7 @@ struct other_cfg_r9_s { assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3106,6 +2933,7 @@ struct other_cfg_r9_s { assert_choice_type("setup", type_.to_string(), "rlm-ReportConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3169,6 +2997,7 @@ struct other_cfg_r9_s { assert_choice_type("setup", type_.to_string(), "overheatingAssistanceConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3212,6 +3041,7 @@ struct other_cfg_r9_s { assert_choice_type("setup", type_.to_string(), "measConfigAppLayer-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3272,19 +3102,6 @@ struct rrc_conn_recfg_v1020_ies_s { void to_json(json_writer& j) const; }; -// RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE -struct rrc_conn_recfg_v10i0_ies_s { - bool ant_info_ded_pcell_v10i0_present = false; - bool non_crit_ext_present = false; - ant_info_ded_v10i0_s ant_info_ded_pcell_v10i0; - rrc_conn_recfg_v10l0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionRelease-v1020-IEs ::= SEQUENCE struct rrc_conn_release_v1020_ies_s { bool extended_wait_time_r10_present = false; @@ -3309,16 +3126,6 @@ struct rrc_conn_resume_v1530_ies_s { void to_json(json_writer& j) const; }; -// RedirectedCarrierInfo-v9e0 ::= SEQUENCE -struct redirected_carrier_info_v9e0_s { - uint32_t eutra_v9e0 = 65536; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UEInformationRequest-v1130-IEs ::= SEQUENCE struct ue_info_request_v1130_ies_s { bool conn_est_fail_report_req_r11_present = false; @@ -3422,19 +3229,6 @@ struct mob_from_eutra_cmd_v960_ies_s { void to_json(json_writer& j) const; }; -// RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE -struct rrc_conn_recfg_v8m0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - rrc_conn_recfg_v10i0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE struct rrc_conn_recfg_v920_ies_s { bool other_cfg_r9_present = false; @@ -3554,20 +3348,6 @@ struct rrc_conn_release_v920_ies_s { void to_json(json_writer& j) const; }; -// RRCConnectionRelease-v9e0-IEs ::= SEQUENCE -struct rrc_conn_release_v9e0_ies_s { - bool redirected_carrier_info_v9e0_present = false; - bool idle_mode_mob_ctrl_info_v9e0_present = false; - bool non_crit_ext_present = false; - redirected_carrier_info_v9e0_s redirected_carrier_info_v9e0; - idle_mode_mob_ctrl_info_v9e0_s idle_mode_mob_ctrl_info_v9e0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionResume-v1510-IEs ::= SEQUENCE struct rrc_conn_resume_v1510_ies_s { bool sk_counter_r15_present = false; @@ -4311,9 +4091,6 @@ struct rn_sf_cfg_r10_s { // choice methods demod_rs_r10_c_() = default; - demod_rs_r10_c_(const demod_rs_r10_c_& other); - demod_rs_r10_c_& operator=(const demod_rs_r10_c_& other); - ~demod_rs_r10_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4323,24 +4100,23 @@ struct rn_sf_cfg_r10_s { no_interleaving_r10_e_& no_interleaving_r10() { assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10"); - return c.get(); + return c; } const no_interleaving_r10_e_& no_interleaving_r10() const { assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10"); - return c.get(); + return c; } + void set_interleaving_r10() { set(types::interleaving_r10); } no_interleaving_r10_e_& set_no_interleaving_r10() { set(types::no_interleaving_r10); - return c.get(); + return c; } private: - types type_; - pod_choice_buffer_t c; - - void destroy_(); + types type_; + no_interleaving_r10_e_ c; }; struct pucch_cfg_r10_c_ { struct tdd_c_ { @@ -5229,9 +5005,6 @@ struct csfb_params_resp_cdma2000_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5241,24 +5014,23 @@ struct csfb_params_resp_cdma2000_s { csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8() { assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8() const { assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } csfb_params_resp_cdma2000_r8_ies_s& set_csfb_params_resp_cdma2000_r8() { set(types::csfb_params_resp_cdma2000_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + csfb_params_resp_cdma2000_r8_ies_s c; }; // member variables @@ -5305,6 +5077,9 @@ struct counter_check_s { set(types::counter_check_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5314,9 +5089,6 @@ struct counter_check_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5326,24 +5098,23 @@ struct counter_check_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5408,6 +5179,8 @@ struct dl_info_transfer_s { set(types::dl_info_transfer_r15); return c.get(); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5419,9 +5192,6 @@ struct dl_info_transfer_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5431,24 +5201,23 @@ struct dl_info_transfer_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5495,6 +5264,9 @@ struct ho_from_eutra_prep_request_s { set(types::ho_from_eutra_prep_request_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5504,9 +5276,6 @@ struct ho_from_eutra_prep_request_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5516,24 +5285,23 @@ struct ho_from_eutra_prep_request_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5580,6 +5348,9 @@ struct logged_meas_cfg_r10_s { set(types::logged_meas_cfg_r10); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5589,9 +5360,6 @@ struct logged_meas_cfg_r10_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5601,24 +5369,23 @@ struct logged_meas_cfg_r10_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5682,6 +5449,8 @@ struct mob_from_eutra_cmd_s { set(types::mob_from_eutra_cmd_r9); return c.get(); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5693,9 +5462,6 @@ struct mob_from_eutra_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5705,24 +5471,23 @@ struct mob_from_eutra_cmd_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5769,6 +5534,9 @@ struct rn_recfg_r10_s { set(types::rn_recfg_r10); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5778,9 +5546,6 @@ struct rn_recfg_r10_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5790,24 +5555,23 @@ struct rn_recfg_r10_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5854,6 +5618,13 @@ struct rrc_conn_recfg_s { set(types::rrc_conn_recfg_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5863,9 +5634,6 @@ struct rrc_conn_recfg_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5875,24 +5643,23 @@ struct rrc_conn_recfg_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5939,6 +5706,9 @@ struct rrc_conn_release_s { set(types::rrc_conn_release_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5948,9 +5718,6 @@ struct rrc_conn_release_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5960,24 +5727,23 @@ struct rrc_conn_release_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6024,6 +5790,9 @@ struct rrc_conn_resume_r13_s { set(types::rrc_conn_resume_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6033,9 +5802,6 @@ struct rrc_conn_resume_r13_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6045,24 +5811,23 @@ struct rrc_conn_resume_r13_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6109,6 +5874,9 @@ struct ue_info_request_r9_s { set(types::ue_info_request_r9); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6118,9 +5886,6 @@ struct ue_info_request_r9_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6130,24 +5895,23 @@ struct ue_info_request_r9_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6396,6 +6160,9 @@ struct dl_dcch_msg_type_c { set(types::rrc_conn_resume_r13); return c.get(); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6427,9 +6194,6 @@ struct dl_dcch_msg_type_c { // choice methods dl_dcch_msg_type_c() = default; - dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other); - dl_dcch_msg_type_c& operator=(const dl_dcch_msg_type_c& other); - ~dl_dcch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6439,24 +6203,23 @@ struct dl_dcch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // DL-DCCH-Message ::= SEQUENCE @@ -6469,6 +6232,255 @@ struct dl_dcch_msg_s { void to_json(json_writer& j) const; }; +// RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE +struct rr_cfg_common_ps_cell_v12f0_s { + rr_cfg_common_scell_v10l0_s basic_fields_v12f0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PSCellToAddMod-v12f0 ::= SEQUENCE +struct ps_cell_to_add_mod_v12f0_s { + bool rr_cfg_common_ps_cell_r12_present = false; + rr_cfg_common_ps_cell_v12f0_s rr_cfg_common_ps_cell_r12; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCG-ConfigPartSCG-v13c0 ::= SEQUENCE +struct scg_cfg_part_scg_v13c0_s { + bool scell_to_add_mod_list_scg_v13c0_present = false; + bool scell_to_add_mod_list_scg_ext_v13c0_present = false; + scell_to_add_mod_list_v13c0_l scell_to_add_mod_list_scg_v13c0; + scell_to_add_mod_list_ext_v13c0_l scell_to_add_mod_list_scg_ext_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCG-Configuration-v13c0 ::= CHOICE +struct scg_cfg_v13c0_c { + struct setup_s_ { + bool scg_cfg_part_scg_v13c0_present = false; + scg_cfg_part_scg_v13c0_s scg_cfg_part_scg_v13c0; + }; + typedef setup_e types; + + // choice methods + scg_cfg_v13c0_c() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + setup_s_& setup() + { + assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); + return c; + } + const setup_s_& setup() const + { + assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v13c0"); + return c; + } + void set_release() { set(types::release); } + setup_s_& set_setup() + { + set(types::setup); + return c; + } + +private: + types type_; + setup_s_ c; +}; + +// RRCConnectionReconfiguration-v13c0-IEs ::= SEQUENCE +struct rrc_conn_recfg_v13c0_ies_s { + bool rr_cfg_ded_v13c0_present = false; + bool scell_to_add_mod_list_v13c0_present = false; + bool scell_to_add_mod_list_ext_v13c0_present = false; + bool scg_cfg_v13c0_present = false; + bool non_crit_ext_present = false; + rr_cfg_ded_v13c0_s rr_cfg_ded_v13c0; + scell_to_add_mod_list_v13c0_l scell_to_add_mod_list_v13c0; + scell_to_add_mod_list_ext_v13c0_l scell_to_add_mod_list_ext_v13c0; + scg_cfg_v13c0_c scg_cfg_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RadioResourceConfigDedicated-v1370 ::= SEQUENCE +struct rr_cfg_ded_v1370_s { + bool phys_cfg_ded_v1370_present = false; + phys_cfg_ded_v1370_s phys_cfg_ded_v1370; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCG-ConfigPartSCG-v12f0 ::= SEQUENCE +struct scg_cfg_part_scg_v12f0_s { + bool pscell_to_add_mod_v12f0_present = false; + bool scell_to_add_mod_list_scg_v12f0_present = false; + ps_cell_to_add_mod_v12f0_s pscell_to_add_mod_v12f0; + scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_scg_v12f0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE +struct rrc_conn_recfg_v1370_ies_s { + bool rr_cfg_ded_v1370_present = false; + bool scell_to_add_mod_list_ext_v1370_present = false; + bool non_crit_ext_present = false; + rr_cfg_ded_v1370_s rr_cfg_ded_v1370; + scell_to_add_mod_list_ext_v1370_l scell_to_add_mod_list_ext_v1370; + rrc_conn_recfg_v13c0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCG-Configuration-v12f0 ::= CHOICE +struct scg_cfg_v12f0_c { + struct setup_s_ { + bool scg_cfg_part_scg_v12f0_present = false; + scg_cfg_part_scg_v12f0_s scg_cfg_part_scg_v12f0; + }; + typedef setup_e types; + + // choice methods + scg_cfg_v12f0_c() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + setup_s_& setup() + { + assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); + return c; + } + const setup_s_& setup() const + { + assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0"); + return c; + } + void set_release() { set(types::release); } + setup_s_& set_setup() + { + set(types::setup); + return c; + } + +private: + types type_; + setup_s_ c; +}; + +// RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE +struct rrc_conn_recfg_v12f0_ies_s { + bool scg_cfg_v12f0_present = false; + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + scg_cfg_v12f0_c scg_cfg_v12f0; + dyn_octstring late_non_crit_ext; + rrc_conn_recfg_v1370_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE +struct rrc_conn_recfg_v10l0_ies_s { + bool mob_ctrl_info_v10l0_present = false; + bool scell_to_add_mod_list_v10l0_present = false; + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + mob_ctrl_info_v10l0_s mob_ctrl_info_v10l0; + scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_v10l0; + dyn_octstring late_non_crit_ext; + rrc_conn_recfg_v12f0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE +struct rrc_conn_recfg_v10i0_ies_s { + bool ant_info_ded_pcell_v10i0_present = false; + bool non_crit_ext_present = false; + ant_info_ded_v10i0_s ant_info_ded_pcell_v10i0; + rrc_conn_recfg_v10l0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE +struct rrc_conn_recfg_v8m0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + rrc_conn_recfg_v10i0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RedirectedCarrierInfo-v9e0 ::= SEQUENCE +struct redirected_carrier_info_v9e0_s { + uint32_t eutra_v9e0 = 65536; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RRCConnectionRelease-v9e0-IEs ::= SEQUENCE +struct rrc_conn_release_v9e0_ies_s { + bool redirected_carrier_info_v9e0_present = false; + bool idle_mode_mob_ctrl_info_v9e0_present = false; + bool non_crit_ext_present = false; + redirected_carrier_info_v9e0_s redirected_carrier_info_v9e0; + idle_mode_mob_ctrl_info_v9e0_s idle_mode_mob_ctrl_info_v9e0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + } // namespace rrc } // namespace asn1 diff --git a/lib/include/srslte/asn1/rrc/ho_cmd.h b/lib/include/srslte/asn1/rrc/ho_cmd.h index 58035ef8d..288121642 100644 --- a/lib/include/srslte/asn1/rrc/ho_cmd.h +++ b/lib/include/srslte/asn1/rrc/ho_cmd.h @@ -142,6 +142,13 @@ struct scg_cfg_r12_s { set(types::scg_cfg_r12); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -151,9 +158,6 @@ struct scg_cfg_r12_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -163,24 +167,23 @@ struct scg_cfg_r12_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -459,6 +462,13 @@ struct ho_cmd_s { set(types::ho_cmd_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -468,9 +478,6 @@ struct ho_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -480,24 +487,23 @@ struct ho_cmd_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -563,31 +569,6 @@ struct ho_prep_info_v1320_ies_s { void to_json(json_writer& j) const; }; -// HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE -struct ho_prep_info_v13c0_ies_s { - bool as_cfg_v13c0_present = false; - bool non_crit_ext_present = false; - as_cfg_v13c0_s as_cfg_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE -struct ho_prep_info_v10x0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ho_prep_info_v13c0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // HandoverPreparationInformation-v1250-IEs ::= SEQUENCE struct ho_prep_info_v1250_ies_s { bool ue_supported_earfcn_r12_present = false; @@ -603,19 +584,6 @@ struct ho_prep_info_v1250_ies_s { void to_json(json_writer& j) const; }; -// HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE -struct ho_prep_info_v10j0_ies_s { - bool as_cfg_v10j0_present = false; - bool non_crit_ext_present = false; - as_cfg_v10j0_s as_cfg_v10j0; - ho_prep_info_v10x0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // HandoverPreparationInformation-v1130-IEs ::= SEQUENCE struct ho_prep_info_v1130_ies_s { bool as_context_v1130_present = false; @@ -642,19 +610,6 @@ struct ho_prep_info_v9e0_ies_s { void to_json(json_writer& j) const; }; -// HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE -struct ho_prep_info_v9j0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ho_prep_info_v10j0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE struct ho_prep_info_v9d0_ies_s { bool late_non_crit_ext_present = false; @@ -832,6 +787,13 @@ struct ho_prep_info_s { set(types::ho_prep_info_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -841,9 +803,6 @@ struct ho_prep_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -853,24 +812,23 @@ struct ho_prep_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -882,6 +840,57 @@ struct ho_prep_info_s { void to_json(json_writer& j) const; }; +// HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE +struct ho_prep_info_v13c0_ies_s { + bool as_cfg_v13c0_present = false; + bool non_crit_ext_present = false; + as_cfg_v13c0_s as_cfg_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE +struct ho_prep_info_v10x0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ho_prep_info_v13c0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE +struct ho_prep_info_v10j0_ies_s { + bool as_cfg_v10j0_present = false; + bool non_crit_ext_present = false; + as_cfg_v10j0_s as_cfg_v10j0; + ho_prep_info_v10x0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE +struct ho_prep_info_v9j0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ho_prep_info_v10j0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // VarMeasConfig ::= SEQUENCE struct var_meas_cfg_s { struct speed_state_pars_c_ { @@ -909,6 +918,7 @@ struct var_meas_cfg_s { assert_choice_type("setup", type_.to_string(), "speedStatePars"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); diff --git a/lib/include/srslte/asn1/rrc/meascfg.h b/lib/include/srslte/asn1/rrc/meascfg.h index 3eb40290f..2e0a0e2b5 100644 --- a/lib/include/srslte/asn1/rrc/meascfg.h +++ b/lib/include/srslte/asn1/rrc/meascfg.h @@ -721,6 +721,7 @@ struct bt_name_list_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "BT-NameListConfig-r15"); return c; } + void set_release() { set(types::release); } bt_name_list_r15_l& set_setup() { set(types::setup); @@ -955,6 +956,7 @@ struct meas_ds_cfg_r12_c { assert_choice_type("setup", type_.to_string(), "MeasDS-Config-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1342,6 +1344,7 @@ struct meas_gap_cfg_c { assert_choice_type("setup", type_.to_string(), "MeasGapConfig"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1420,6 +1423,7 @@ struct meas_sf_pattern_cfg_neigh_r10_c { assert_choice_type("setup", type_.to_string(), "MeasSubframePatternConfigNeigh-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1511,6 +1515,7 @@ struct rmtc_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "RMTC-Config-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1555,6 +1560,7 @@ struct rs_cfg_ssb_nr_r15_s { assert_choice_type("setup", type_.to_string(), "ssb-ToMeasure-r15"); return c; } + void set_release() { set(types::release); } ssb_to_measure_r15_c& set_setup() { set(types::setup); @@ -1606,6 +1612,7 @@ struct rsrq_range_cfg_r12_c { assert_choice_type("setup", type_.to_string(), "RSRQ-RangeConfig-r12"); return c; } + void set_release() { set(types::release); } int8_t& set_setup() { set(types::setup); @@ -1962,6 +1969,7 @@ struct ul_delay_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "UL-DelayConfig-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2027,6 +2035,7 @@ struct wlan_name_list_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "WLAN-NameListConfig-r15"); return c; } + void set_release() { set(types::release); } wlan_name_list_r15_l& set_setup() { set(types::setup); @@ -2110,6 +2119,7 @@ struct meas_obj_eutra_s { assert_choice_type("setup", type_.to_string(), "t312-r12"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -2232,6 +2242,7 @@ struct meas_obj_nr_r15_s { assert_choice_type("setup", type_.to_string(), "bandNR-r15"); return c; } + void set_release() { set(types::release); } uint16_t& set_setup() { set(types::setup); @@ -2926,6 +2937,7 @@ struct report_cfg_eutra_s { assert_choice_type("setup", type_.to_string(), "alternativeTimeToTrigger-r12"); return c; } + void set_release() { set(types::release); } time_to_trigger_e& set_setup() { set(types::setup); @@ -2975,6 +2987,7 @@ struct report_cfg_eutra_s { assert_choice_type("setup", type_.to_string(), "rs-sinr-Config-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3491,6 +3504,7 @@ struct report_cfg_inter_rat_s { assert_choice_type("setup", type_.to_string(), "b2-Threshold1-v1250"); return c; } + void set_release() { set(types::release); } int8_t& set_setup() { set(types::setup); @@ -4491,6 +4505,7 @@ struct meas_gap_cfg_dense_prs_r15_c { assert_choice_type("setup", type_.to_string(), "MeasGapConfigDensePRS-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4530,6 +4545,7 @@ struct meas_gap_cfg_per_cc_list_r14_c { assert_choice_type("setup", type_.to_string(), "MeasGapConfigPerCC-List-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4577,6 +4593,7 @@ struct meas_gap_sharing_cfg_r14_c { assert_choice_type("setup", type_.to_string(), "MeasGapSharingConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4715,6 +4732,9 @@ struct rach_skip_r14_s { assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14"); return c.get(); } + void set_ta0_r14() { set(types::ta0_r14); } + void set_mcg_ptag_r14() { set(types::mcg_ptag_r14); } + void set_scg_ptag_r14() { set(types::scg_ptag_r14); } uint8_t& set_mcg_stag_r14() { set(types::mcg_stag_r14); @@ -4793,6 +4813,7 @@ struct meas_cfg_s { assert_choice_type("setup", type_.to_string(), "speedStatePars"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4824,6 +4845,7 @@ struct meas_cfg_s { assert_choice_type("setup", type_.to_string(), "measScaleFactor-r12"); return c; } + void set_release() { set(types::release); } meas_scale_factor_r12_e& set_setup() { set(types::setup); @@ -4855,6 +4877,7 @@ struct meas_cfg_s { assert_choice_type("setup", type_.to_string(), "heightThreshRef-r15"); return c; } + void set_release() { set(types::release); } uint8_t& set_setup() { set(types::setup); @@ -4936,17 +4959,6 @@ struct carrier_freq_geran_s { void to_json(json_writer& j) const; }; -// MobilityControlInfo-v10l0 ::= SEQUENCE -struct mob_ctrl_info_v10l0_s { - bool add_spec_emission_v10l0_present = false; - uint16_t add_spec_emission_v10l0 = 33; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE struct logged_meas_cfg_v1530_ies_s { bool bt_name_list_r15_present = false; @@ -6572,6 +6584,13 @@ struct meas_report_s { set(types::meas_report_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6581,9 +6600,6 @@ struct meas_report_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6593,24 +6609,23 @@ struct meas_report_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6622,6 +6637,17 @@ struct meas_report_s { void to_json(json_writer& j) const; }; +// MobilityControlInfo-v10l0 ::= SEQUENCE +struct mob_ctrl_info_v10l0_s { + bool add_spec_emission_v10l0_present = false; + uint16_t add_spec_emission_v10l0 = 33; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + } // namespace rrc } // namespace asn1 diff --git a/lib/include/srslte/asn1/rrc/paging.h b/lib/include/srslte/asn1/rrc/paging.h index ec807a2f4..89e753c77 100644 --- a/lib/include/srslte/asn1/rrc/paging.h +++ b/lib/include/srslte/asn1/rrc/paging.h @@ -265,9 +265,6 @@ struct pcch_msg_type_c { // choice methods pcch_msg_type_c() = default; - pcch_msg_type_c(const pcch_msg_type_c& other); - pcch_msg_type_c& operator=(const pcch_msg_type_c& other); - ~pcch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -277,24 +274,23 @@ struct pcch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // PCCH-Message ::= SEQUENCE @@ -363,6 +359,13 @@ struct ue_paging_coverage_info_s { set(types::ue_paging_coverage_info_r13); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -372,9 +375,6 @@ struct ue_paging_coverage_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -384,24 +384,23 @@ struct ue_paging_coverage_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -484,6 +483,13 @@ struct ue_radio_paging_info_s { set(types::ue_radio_paging_info_r12); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -493,9 +499,6 @@ struct ue_radio_paging_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -505,24 +508,23 @@ struct ue_radio_paging_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables diff --git a/lib/include/srslte/asn1/rrc/phy_ded.h b/lib/include/srslte/asn1/rrc/phy_ded.h index f1c6fce41..e92884ade 100644 --- a/lib/include/srslte/asn1/rrc/phy_ded.h +++ b/lib/include/srslte/asn1/rrc/phy_ded.h @@ -221,6 +221,7 @@ struct csi_rs_cfg_nzp_r11_s { assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -264,6 +265,7 @@ struct csi_rs_cfg_nzp_r11_s { assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -413,6 +415,7 @@ struct csi_rs_cfg_nzp_emimo_r13_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigNZP-EMIMO-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -524,6 +527,7 @@ struct csi_rs_cfg_emimo2_r14_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO2-r14"); return c; } + void set_release() { set(types::release); } csi_rs_cfg_bf_r14_s& set_setup() { set(types::setup); @@ -766,6 +770,7 @@ struct cri_report_cfg_r13_c { assert_choice_type("setup", type_.to_string(), "CRI-ReportConfig-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -807,6 +812,7 @@ struct csi_rs_cfg_emimo_hybrid_r14_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-Hybrid-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -900,6 +906,7 @@ struct csi_rs_cfg_emimo_r13_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-r13"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -993,6 +1000,7 @@ struct csi_rs_cfg_emimo_v1430_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1430"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -1086,6 +1094,7 @@ struct csi_rs_cfg_emimo_v1480_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1480"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -1143,6 +1152,7 @@ struct csi_rs_cfg_emimo_v1530_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1530"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -1273,6 +1283,7 @@ struct cqi_report_periodic_proc_ext_r11_s { assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1382,6 +1393,7 @@ struct csi_process_r11_s { assert_choice_type("setup", type_.to_string(), "csi-IM-ConfigIdList-r12"); return c; } + void set_release() { set(types::release); } setup_l_& set_setup() { set(types::setup); @@ -1415,6 +1427,7 @@ struct csi_process_r11_s { assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-r12"); return c; } + void set_release() { set(types::release); } cqi_report_aperiodic_proc_r11_s& set_setup() { set(types::setup); @@ -1448,6 +1461,7 @@ struct csi_process_r11_s { assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc-v1310"); return c; } + void set_release() { set(types::release); } cqi_report_aperiodic_proc_v1310_s& set_setup() { set(types::setup); @@ -1481,6 +1495,7 @@ struct csi_process_r11_s { assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-v1310"); return c; } + void set_release() { set(types::release); } cqi_report_aperiodic_proc_v1310_s& set_setup() { set(types::setup); @@ -1621,6 +1636,7 @@ struct cqi_report_aperiodic_r10_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1676,6 +1692,7 @@ struct cqi_report_aperiodic_v1250_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1250"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1729,6 +1746,7 @@ struct cqi_report_aperiodic_v1310_c { assert_choice_type("setup", type_.to_string(), "aperiodicCSI-Trigger2-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1768,6 +1786,7 @@ struct cqi_report_aperiodic_v1310_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1310"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2052,6 +2071,7 @@ struct cqi_report_periodic_r10_c { assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2098,6 +2118,7 @@ struct cqi_report_periodic_r10_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2249,6 +2270,7 @@ struct spdcch_elems_r15_c { assert_choice_type("setup", type_.to_string(), "SPDCCH-Elements-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2311,6 +2333,7 @@ struct spucch_elems_r15_c { assert_choice_type("setup", type_.to_string(), "SPUCCH-Elements-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2406,6 +2429,7 @@ struct zero_tx_pwr_csi_rs_conf_r12_c { assert_choice_type("setup", type_.to_string(), "ZeroTxPowerCSI-RS-Conf-r12"); return c; } + void set_release() { set(types::release); } zero_tx_pwr_csi_rs_r12_s& set_setup() { set(types::setup); @@ -2446,6 +2470,7 @@ struct cqi_report_cfg_r10_s { assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2516,6 +2541,7 @@ struct cqi_report_cfg_v1250_s { assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2637,6 +2663,7 @@ struct csi_rs_cfg_r10_s { assert_choice_type("setup", type_.to_string(), "csi-RS-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2693,6 +2720,7 @@ struct csi_rs_cfg_v1250_s { assert_choice_type("setup", type_.to_string(), "ds-ZeroTxPowerCSI-RS-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2860,6 +2888,7 @@ struct epdcch_set_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "csi-RS-ConfigZPId2-r12"); return c; } + void set_release() { set(types::release); } uint8_t& set_setup() { set(types::setup); @@ -2882,6 +2911,9 @@ struct epdcch_set_cfg_r11_s { void to_json(json_writer& j) const; bool operator==(const num_prb_pairs_v1310_c_& other) const; bool operator!=(const num_prb_pairs_v1310_c_& other) const { return not(*this == other); } + // getters + void set_release() { set(types::release); } + void set_setup() { set(types::setup); } private: types type_; @@ -3015,6 +3047,7 @@ struct epdcch_set_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "mpdcch-config-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3142,6 +3175,7 @@ struct enable256_qam_r14_c { assert_choice_type("setup", type_.to_string(), "Enable256QAM-r14"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -3190,6 +3224,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3242,6 +3277,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3305,6 +3341,7 @@ struct pdsch_re_map_qcl_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "codewordOneConfig-v1530"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3393,6 +3430,7 @@ struct tpc_pdcch_cfg_c { assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-Config"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3704,6 +3742,7 @@ struct ant_info_ded_stti_r15_c { assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicatedSTTI-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3788,6 +3827,7 @@ struct cqi_report_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportConfig-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3831,6 +3871,7 @@ struct cqi_report_periodic_c { assert_choice_type("subbandCQI", type_.to_string(), "cqi-FormatIndicatorPeriodic"); return c; } + void set_wideband_cqi() { set(types::wideband_cqi); } subband_cqi_s_& set_subband_cqi() { set(types::subband_cqi); @@ -3870,6 +3911,7 @@ struct cqi_report_periodic_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3915,6 +3957,7 @@ struct csi_rs_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3957,6 +4000,7 @@ struct csi_rs_cfg_zp_ap_list_r14_c { assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigZP-ApList-r14"); return c; } + void set_release() { set(types::release); } setup_l_& set_setup() { set(types::setup); @@ -4002,6 +4046,7 @@ struct dmrs_cfg_r11_c { assert_choice_type("setup", type_.to_string(), "DMRS-Config-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4137,6 +4182,7 @@ struct eimta_main_cfg_r12_c { assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfig-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4185,6 +4231,7 @@ struct eimta_main_cfg_serv_cell_r12_c { assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1250"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4223,6 +4270,7 @@ struct eimta_main_cfg_serv_cell_r12_c { assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfigServCell-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4334,6 +4382,7 @@ struct pucch_format3_conf_r13_s { assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4405,6 +4454,7 @@ struct spdcch_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "SPDCCH-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4454,6 +4504,7 @@ struct spucch_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4637,6 +4688,7 @@ struct sched_request_cfg_v1530_c { assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig-v1530"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4726,6 +4778,7 @@ struct slot_or_subslot_pdsch_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPDSCH-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4791,6 +4844,7 @@ struct slot_or_subslot_pusch_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPUSCH-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4839,6 +4893,7 @@ struct tdd_pusch_up_pts_r14_c { assert_choice_type("setup", type_.to_string(), "TDD-PUSCH-UpPTS-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5058,6 +5113,7 @@ struct ant_info_ded_s { assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -5138,6 +5194,7 @@ struct ant_info_ded_r10_s { assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -5228,6 +5285,7 @@ struct ant_info_ded_v1530_c { assert_choice_type("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", type_.to_string(), "setup"); return c; } + void set_ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15() { set(types::ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15); } ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& set_ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() { set(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15); @@ -5258,6 +5316,7 @@ struct ant_info_ded_v1530_c { assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicated-v1530"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -5518,6 +5577,7 @@ struct epdcch_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "subframePatternConfig-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5561,6 +5621,7 @@ struct epdcch_cfg_r11_s { assert_choice_type("setup", type_.to_string(), "config-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5614,6 +5675,7 @@ struct pdcch_candidate_reductions_r13_c { assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductions-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5811,6 +5873,7 @@ struct pucch_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "ackNackRepetition"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5878,6 +5941,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "ackNackRepetition-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5926,6 +5990,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5975,6 +6040,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6123,6 +6189,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6159,6 +6226,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6300,6 +6368,7 @@ struct pucch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "pucch-NumRepetitionCE-r13"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -6374,6 +6443,7 @@ struct pucch_cfg_ded_v1020_s { assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6490,6 +6560,7 @@ struct pucch_cfg_ded_v1130_s { assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v1130"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6525,6 +6596,7 @@ struct pucch_cfg_ded_v1130_s { assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6574,6 +6646,7 @@ struct pucch_cfg_ded_v1250_s { assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6663,6 +6736,7 @@ struct pusch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6714,6 +6788,7 @@ struct pusch_cfg_ded_r13_s { assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6798,6 +6873,7 @@ struct pusch_cfg_ded_v1130_s { assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6857,6 +6933,7 @@ struct pusch_cfg_ded_v1250_s { assert_choice_type("setup", type_.to_string(), "uciOnPUSCH"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6920,6 +6997,7 @@ struct pusch_cfg_ded_v1530_s { assert_choice_type("setup", type_.to_string(), "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6957,6 +7035,7 @@ struct pusch_cfg_ded_v1530_s { assert_choice_type("setup", type_.to_string(), "ce-PUSCH-SubPRB-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7081,6 +7160,7 @@ struct pusch_enhance_cfg_r14_c { assert_choice_type("setup", type_.to_string(), "PUSCH-EnhancementsConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7159,6 +7239,7 @@ struct phys_cfg_ded_stti_r15_c { assert_choice_type("setup", type_.to_string(), "PhysicalConfigDedicatedSTTI-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7205,6 +7286,7 @@ struct spucch_cfg_v1550_c { assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-v1550"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7250,6 +7332,7 @@ struct srs_tpc_pdcch_cfg_r14_c { assert_choice_type("setup", type_.to_string(), "SRS-TPC-PDCCH-Config-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7298,6 +7381,7 @@ struct sched_request_cfg_c { assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7379,6 +7463,7 @@ struct srs_ul_cfg_ded_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7452,6 +7537,7 @@ struct srs_ul_cfg_ded_v1310_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated-v1310"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7496,6 +7582,7 @@ struct srs_ul_cfg_ded_aperiodic_r10_c { assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7536,6 +7623,7 @@ struct srs_ul_cfg_ded_aperiodic_r10_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7580,6 +7668,7 @@ struct srs_ul_cfg_ded_aperiodic_v1310_c { assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-v1310"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7619,6 +7708,7 @@ struct srs_ul_cfg_ded_aperiodic_v1310_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1310"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7669,6 +7759,7 @@ struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c { assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7710,6 +7801,7 @@ struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7799,6 +7891,7 @@ struct srs_ul_cfg_ded_up_pts_ext_r13_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7897,6 +7990,7 @@ struct ul_pwr_ctrl_ded_v1250_s { assert_choice_type("setup", type_.to_string(), "set2PowerControlParameter"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7967,6 +8061,7 @@ struct phys_cfg_ded_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -8003,6 +8098,7 @@ struct phys_cfg_ded_s { set(types::explicit_value_r10); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -8032,6 +8128,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "additionalSpectrumEmissionCA-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -8069,6 +8166,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "ce-Mode-r13"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -8101,6 +8199,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "typeA-SRS-TPC-PDCCH-Group-r14"); return c; } + void set_release() { set(types::release); } setup_l_& set_setup() { set(types::setup); @@ -8156,6 +8255,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "must-Config-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -8247,6 +8347,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -8349,6 +8450,7 @@ struct phys_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); diff --git a/lib/include/srslte/asn1/rrc/rr_common.h b/lib/include/srslte/asn1/rrc/rr_common.h index 97367b293..200853cb5 100644 --- a/lib/include/srslte/asn1/rrc/rr_common.h +++ b/lib/include/srslte/asn1/rrc/rr_common.h @@ -284,47 +284,6 @@ struct tdd_cfg_v1130_s { bool operator!=(const tdd_cfg_v1130_s& other) const { return not(*this == other); } }; -// UplinkPowerControlCommon-v1310 ::= SEQUENCE -struct ul_pwr_ctrl_common_v1310_s { - struct delta_f_pucch_format4_r13_opts { - enum options { - delta_f16, - delta_f15, - delta_f14, - delta_f13, - delta_f12, - delta_f11, - delta_f10, - spare1, - nulltype - } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated delta_f_pucch_format4_r13_e_; - struct delta_f_pucch_format5_minus13_opts { - enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated delta_f_pucch_format5_minus13_e_; - - // member variables - bool delta_f_pucch_format4_r13_present = false; - bool delta_f_pucch_format5_minus13_present = false; - delta_f_pucch_format4_r13_e_ delta_f_pucch_format4_r13; - delta_f_pucch_format5_minus13_e_ delta_f_pucch_format5_minus13; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // PRACH-ParametersCE-r13 ::= SEQUENCE struct prach_params_ce_r13_s { struct prach_start_sf_r13_opts { @@ -713,6 +672,7 @@ struct delta_flist_spucch_r15_c { assert_choice_type("setup", type_.to_string(), "DeltaFList-SPUCCH-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1874,6 +1834,7 @@ struct srs_ul_cfg_common_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigCommon"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2433,6 +2394,47 @@ struct rr_cfg_common_scell_r10_s { bool operator!=(const rr_cfg_common_scell_r10_s& other) const { return not(*this == other); } }; +// UplinkPowerControlCommon-v1310 ::= SEQUENCE +struct ul_pwr_ctrl_common_v1310_s { + struct delta_f_pucch_format4_r13_opts { + enum options { + delta_f16, + delta_f15, + delta_f14, + delta_f13, + delta_f12, + delta_f11, + delta_f10, + spare1, + nulltype + } value; + typedef uint8_t number_type; + + std::string to_string() const; + uint8_t to_number() const; + }; + typedef enumerated delta_f_pucch_format4_r13_e_; + struct delta_f_pucch_format5_minus13_opts { + enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value; + typedef uint8_t number_type; + + std::string to_string() const; + uint8_t to_number() const; + }; + typedef enumerated delta_f_pucch_format5_minus13_e_; + + // member variables + bool delta_f_pucch_format4_r13_present = false; + bool delta_f_pucch_format5_minus13_present = false; + delta_f_pucch_format4_r13_e_ delta_f_pucch_format4_r13; + delta_f_pucch_format5_minus13_e_ delta_f_pucch_format5_minus13; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // PRACH-Config-v1310 ::= SEQUENCE struct prach_cfg_v1310_s { struct mpdcch_start_sf_css_ra_r13_c_ { diff --git a/lib/include/srslte/asn1/rrc/rr_ded.h b/lib/include/srslte/asn1/rrc/rr_ded.h index 0b0866bf0..618b3c0c7 100644 --- a/lib/include/srslte/asn1/rrc/rr_ded.h +++ b/lib/include/srslte/asn1/rrc/rr_ded.h @@ -527,6 +527,7 @@ struct lc_ch_cfg_s { assert_choice_type("setup", type_.to_string(), "allowedTTI-Lengths-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -566,6 +567,7 @@ struct lc_ch_cfg_s { assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Restriction-r15"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -599,6 +601,7 @@ struct lc_ch_cfg_s { assert_choice_type("setup", type_.to_string(), "channelAccessPriority-r15"); return c; } + void set_release() { set(types::release); } uint8_t& set_setup() { set(types::setup); @@ -986,6 +989,7 @@ struct pdcp_cfg_s { assert_choice_type("rohc", type_.to_string(), "headerCompression"); return c; } + void set_not_used() { set(types::not_used); } rohc_s_& set_rohc() { set(types::rohc); @@ -1087,6 +1091,7 @@ struct pdcp_cfg_s { assert_choice_type("setup", type_.to_string(), "ul-DataSplitThreshold-r13"); return c; } + void set_release() { set(types::release); } setup_e_& set_setup() { set(types::setup); @@ -1210,6 +1215,7 @@ struct pdcp_cfg_s { assert_choice_type("setup", type_.to_string(), "statusFeedback-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1275,6 +1281,7 @@ struct pdcp_cfg_s { assert_choice_type("setup", type_.to_string(), "ul-LWA-Config-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1325,6 +1332,7 @@ struct pdcp_cfg_s { assert_choice_type("rohc-r14", type_.to_string(), "uplinkOnlyHeaderCompression-r14"); return c; } + void set_not_used_r14() { set(types::not_used_r14); } rohc_r14_s_& set_rohc_r14() { set(types::rohc_r14); @@ -1392,6 +1400,7 @@ struct pdcp_cfg_s { assert_choice_type("setup", type_.to_string(), "pdcp-DuplicationConfig-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1532,6 +1541,7 @@ struct rlc_bearer_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "RLC-BearerConfig-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1702,6 +1712,7 @@ struct rlc_cfg_v1430_c { assert_choice_type("setup", type_.to_string(), "RLC-Config-v1430"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1738,25 +1749,11 @@ struct rlc_cfg_v1530_c { bool operator==(const rlc_cfg_v1530_c& other) const; bool operator!=(const rlc_cfg_v1530_c& other) const { return not(*this == other); } // getters - setup_s_& setup() - { - assert_choice_type("setup", type_.to_string(), "RLC-Config-v1530"); - return c; - } - const setup_s_& setup() const - { - assert_choice_type("setup", type_.to_string(), "RLC-Config-v1530"); - return c; - } - setup_s_& set_setup() - { - set(types::setup); - return c; - } + void set_release() { set(types::release); } + void set_setup() { set(types::setup); } private: - types type_; - setup_s_ c; + types type_; }; // SPS-ConfigSL-r14 ::= SEQUENCE @@ -1866,6 +1863,7 @@ struct sps_cfg_ul_c { assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1988,6 +1986,7 @@ struct sps_cfg_ul_c { assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2067,6 +2066,7 @@ struct sps_cfg_ul_stti_r15_c { assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2163,6 +2163,7 @@ struct sps_cfg_ul_stti_r15_c { assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL-STTI-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -2684,6 +2685,7 @@ struct drx_cfg_c { assert_choice_type("setup", type_.to_string(), "DRX-Config"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3003,6 +3005,7 @@ struct sps_cfg_dl_c { assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r10"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3052,6 +3055,7 @@ struct sps_cfg_dl_c { assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3116,6 +3120,7 @@ struct sps_cfg_dl_stti_r15_c { assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3158,6 +3163,7 @@ struct sps_cfg_dl_stti_r15_c { assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL-STTI-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3228,6 +3234,7 @@ struct srb_to_add_mod_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -3266,6 +3273,7 @@ struct srb_to_add_mod_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -3387,6 +3395,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "phr-Config"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3445,6 +3454,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "dualConnectivityPHR"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3489,6 +3499,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3578,6 +3589,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "eDRX-Config-CycleStartOffset-r13"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -3609,6 +3621,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "drx-Config-r13"); return c; } + void set_release() { set(types::release); } drx_cfg_r13_s& set_setup() { set(types::setup); @@ -3644,6 +3657,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "skipUplinkTx-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3678,6 +3692,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3753,6 +3768,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "shortTTI-AndSPT-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3826,6 +3842,7 @@ struct mac_main_cfg_s { assert_choice_type("setup", type_.to_string(), "dormantStateTimers-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3907,6 +3924,7 @@ struct meas_sf_pattern_pcell_r10_c { assert_choice_type("setup", type_.to_string(), "MeasSubframePatternPCell-r10"); return c; } + void set_release() { set(types::release); } meas_sf_pattern_r10_c& set_setup() { set(types::setup); @@ -3950,6 +3968,7 @@ struct naics_assist_info_r12_c { assert_choice_type("setup", type_.to_string(), "NAICS-AssistanceInfo-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -3983,6 +4002,7 @@ struct neigh_cells_crs_info_r11_c { assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r11"); return c; } + void set_release() { set(types::release); } crs_assist_info_list_r11_l& set_setup() { set(types::setup); @@ -4018,6 +4038,7 @@ struct neigh_cells_crs_info_r13_c { assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r13"); return c; } + void set_release() { set(types::release); } crs_assist_info_list_r13_l& set_setup() { set(types::setup); @@ -4053,6 +4074,7 @@ struct neigh_cells_crs_info_r15_c { assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r15"); return c; } + void set_release() { set(types::release); } crs_assist_info_list_r15_l& set_setup() { set(types::setup); @@ -4117,6 +4139,7 @@ struct rlf_timers_and_consts_r13_c { assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4201,6 +4224,7 @@ struct rlf_timers_and_consts_r9_c { assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r9"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4321,6 +4345,7 @@ struct rr_cfg_ded_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -4361,6 +4386,7 @@ struct rr_cfg_ded_s { assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "setup"); return c; } + void set_crs_intf_mitig_enabled() { set(types::crs_intf_mitig_enabled); } crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs() { set(types::crs_intf_mitig_num_prbs); @@ -4391,6 +4417,7 @@ struct rr_cfg_ded_s { assert_choice_type("setup", type_.to_string(), "crs-IntfMitigConfig-r15"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -4491,6 +4518,7 @@ struct pdcch_candidate_reductions_laa_ul_r14_c { assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductionsLAA-UL-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4601,6 +4629,7 @@ struct aul_cfg_r15_c { assert_choice_type("setup", type_.to_string(), "AUL-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4642,6 +4671,7 @@ struct cqi_report_periodic_scell_r15_c { assert_choice_type("setup", type_.to_string(), "csi-SubframePatternDormant-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4770,6 +4800,7 @@ struct cqi_report_periodic_scell_r15_c { assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodicSCell-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -4939,6 +4970,7 @@ struct srs_ul_cfg_ded_aperiodic_v1430_c { assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1430"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5111,6 +5143,7 @@ struct cqi_short_cfg_scell_r15_c { assert_choice_type("setup", type_.to_string(), "CQI-ShortConfigSCell-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5333,6 +5366,7 @@ struct laa_scell_cfg_v1430_s { assert_choice_type("setup", type_.to_string(), "crossCarrierSchedulingConfig-UL-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5427,6 +5461,7 @@ struct pucch_cfg_ded_v1370_s { assert_choice_type("setup", type_.to_string(), "pucch-Format-v1370"); return c; } + void set_release() { set(types::release); } pucch_format3_conf_r13_s& set_setup() { set(types::setup); @@ -5503,6 +5538,7 @@ struct pusch_cfg_ded_scell_v1530_s { assert_choice_type("setup", type_.to_string(), "uci-OnPUSCH-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5566,6 +5602,7 @@ struct sched_request_cfg_scell_r13_c { assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfigSCell-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5638,6 +5675,7 @@ struct tpc_pdcch_cfg_scell_r13_c { assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-ConfigSCell-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5793,6 +5831,7 @@ struct phys_cfg_ded_scell_r10_s { assert_choice_type("setup", type_.to_string(), "pucch-SCell"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5854,6 +5893,7 @@ struct phys_cfg_ded_scell_r10_s { assert_choice_type("setup", type_.to_string(), "must-Config-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -5945,6 +5985,7 @@ struct phys_cfg_ded_scell_r10_s { assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15"); return c; } + void set_release() { set(types::release); } setup_c_& set_setup() { set(types::setup); @@ -6049,6 +6090,7 @@ struct phys_cfg_ded_scell_r10_s { assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6172,6 +6214,7 @@ struct phys_cfg_ded_scell_v1370_s { assert_choice_type("setup", type_.to_string(), "pucch-SCell-v1370"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6217,60 +6260,6 @@ struct ant_info_ded_v10i0_s { bool operator!=(const ant_info_ded_v10i0_s& other) const { return not(*this == other); } }; -// PUCCH-ConfigDedicated-v13c0 ::= SEQUENCE -struct pucch_cfg_ded_v13c0_s { - struct ch_sel_v13c0_s_ { - struct n1_pucch_an_cs_v13c0_c_ { - struct setup_s_ { - using n1_pucch_an_cs_list_p1_v13c0_l_ = bounded_array; - - // member variables - n1_pucch_an_cs_list_p1_v13c0_l_ n1_pucch_an_cs_list_p1_v13c0; - }; - typedef setup_e types; - - // choice methods - n1_pucch_an_cs_v13c0_c_() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - setup_s_& setup() - { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); - return c; - } - const setup_s_& setup() const - { - assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); - return c; - } - setup_s_& set_setup() - { - set(types::setup); - return c; - } - - private: - types type_; - setup_s_ c; - }; - - // member variables - n1_pucch_an_cs_v13c0_c_ n1_pucch_an_cs_v13c0; - }; - - // member variables - ch_sel_v13c0_s_ ch_sel_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE struct rr_cfg_ded_scell_r10_s { bool ext = false; @@ -6299,52 +6288,6 @@ struct rr_cfg_ded_scell_r10_s { bool operator!=(const rr_cfg_ded_scell_r10_s& other) const { return not(*this == other); } }; -// PhysicalConfigDedicatedSCell-v13c0 ::= SEQUENCE -struct phys_cfg_ded_scell_v13c0_s { - struct pucch_scell_v13c0_c_ { - struct setup_s_ { - pucch_cfg_ded_v13c0_s pucch_cfg_ded_v13c0; - }; - typedef setup_e types; - - // choice methods - pucch_scell_v13c0_c_() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - setup_s_& setup() - { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); - return c; - } - const setup_s_& setup() const - { - assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); - return c; - } - setup_s_& set_setup() - { - set(types::setup); - return c; - } - - private: - types type_; - setup_s_ c; - }; - - // member variables - pucch_scell_v13c0_c_ pucch_scell_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SCellToAddModExt-r13 ::= SEQUENCE struct scell_to_add_mod_ext_r13_s { struct cell_identif_r13_s_ { @@ -6369,23 +6312,57 @@ struct scell_to_add_mod_ext_r13_s { void to_json(json_writer& j) const; }; -// RadioResourceConfigDedicatedSCell-v13c0 ::= SEQUENCE -struct rr_cfg_ded_scell_v13c0_s { - phys_cfg_ded_scell_v13c0_s phys_cfg_ded_scell_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-r13 using scell_to_add_mod_list_ext_r13_l = dyn_array; -// SCellToAddMod-v13c0 ::= SEQUENCE -struct scell_to_add_mod_v13c0_s { - bool rr_cfg_ded_scell_v13c0_present = false; - rr_cfg_ded_scell_v13c0_s rr_cfg_ded_scell_v13c0; +// PUCCH-ConfigDedicated-v13c0 ::= SEQUENCE +struct pucch_cfg_ded_v13c0_s { + struct ch_sel_v13c0_s_ { + struct n1_pucch_an_cs_v13c0_c_ { + struct setup_s_ { + using n1_pucch_an_cs_list_p1_v13c0_l_ = bounded_array; + + // member variables + n1_pucch_an_cs_list_p1_v13c0_l_ n1_pucch_an_cs_list_p1_v13c0; + }; + typedef setup_e types; + + // choice methods + n1_pucch_an_cs_v13c0_c_() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + setup_s_& setup() + { + assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); + return c; + } + const setup_s_& setup() const + { + assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v13c0"); + return c; + } + void set_release() { set(types::release); } + setup_s_& set_setup() + { + set(types::setup); + return c; + } + + private: + types type_; + setup_s_ c; + }; + + // member variables + n1_pucch_an_cs_v13c0_c_ n1_pucch_an_cs_v13c0; + }; + + // member variables + ch_sel_v13c0_s_ ch_sel_v13c0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -6427,6 +6404,7 @@ struct drb_to_add_mod_scg_r12_s { assert_choice_type("scg-r12", type_.to_string(), "drb-Type-r12"); return c; } + void set_split_r12() { set(types::split_r12); } scg_r12_s_& set_scg_r12() { set(types::scg_r12); @@ -6493,12 +6471,6 @@ struct rr_cfg_common_scell_v10l0_s { void to_json(json_writer& j) const; }; -// SCellToAddModList-v13c0 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-v13c0 -using scell_to_add_mod_list_v13c0_l = dyn_array; - -// SCellToAddModListExt-v13c0 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddMod-v13c0 -using scell_to_add_mod_list_ext_v13c0_l = dyn_array; - // DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..11)) OF DRB-ToAddModSCG-r12 using drb_to_add_mod_list_scg_r12_l = dyn_array; @@ -6560,6 +6532,7 @@ struct rlf_timers_and_consts_scg_r12_c { assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstantsSCG-r12"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -6614,17 +6587,6 @@ struct scell_to_add_mod_r10_s { bool operator!=(const scell_to_add_mod_r10_s& other) const { return not(*this == other); } }; -// SCellToAddMod-v10l0 ::= SEQUENCE -struct scell_to_add_mod_v10l0_s { - bool rr_cfg_common_scell_v10l0_present = false; - rr_cfg_common_scell_v10l0_s rr_cfg_common_scell_v10l0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SCellToAddModExt-v1370 ::= SEQUENCE struct scell_to_add_mod_ext_v1370_s { bool rr_cfg_common_scell_v1370_present = false; @@ -6663,16 +6625,6 @@ struct scell_to_add_mod_ext_v1430_s { // SRB-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..2)) OF INTEGER (1..2) using srb_to_release_list_r15_l = bounded_array; -// RadioResourceConfigDedicated-v13c0 ::= SEQUENCE -struct rr_cfg_ded_v13c0_s { - phys_cfg_ded_v13c0_s phys_cfg_ded_v13c0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE struct rr_cfg_ded_scg_r12_s { bool ext = false; @@ -6700,15 +6652,110 @@ struct rr_cfg_ded_scg_r12_s { // SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-r10 using scell_to_add_mod_list_r10_l = dyn_array; -// SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-v10l0 -using scell_to_add_mod_list_v10l0_l = dyn_array; - // SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-v1370 using scell_to_add_mod_list_ext_v1370_l = dyn_array; // SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-v1430 using scell_to_add_mod_list_ext_v1430_l = dyn_array; +// PhysicalConfigDedicatedSCell-v13c0 ::= SEQUENCE +struct phys_cfg_ded_scell_v13c0_s { + struct pucch_scell_v13c0_c_ { + struct setup_s_ { + pucch_cfg_ded_v13c0_s pucch_cfg_ded_v13c0; + }; + typedef setup_e types; + + // choice methods + pucch_scell_v13c0_c_() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + setup_s_& setup() + { + assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); + return c; + } + const setup_s_& setup() const + { + assert_choice_type("setup", type_.to_string(), "pucch-SCell-v13c0"); + return c; + } + void set_release() { set(types::release); } + setup_s_& set_setup() + { + set(types::setup); + return c; + } + + private: + types type_; + setup_s_ c; + }; + + // member variables + pucch_scell_v13c0_c_ pucch_scell_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RadioResourceConfigDedicatedSCell-v13c0 ::= SEQUENCE +struct rr_cfg_ded_scell_v13c0_s { + phys_cfg_ded_scell_v13c0_s phys_cfg_ded_scell_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCellToAddMod-v13c0 ::= SEQUENCE +struct scell_to_add_mod_v13c0_s { + bool rr_cfg_ded_scell_v13c0_present = false; + rr_cfg_ded_scell_v13c0_s rr_cfg_ded_scell_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCellToAddModList-v13c0 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-v13c0 +using scell_to_add_mod_list_v13c0_l = dyn_array; + +// SCellToAddModListExt-v13c0 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddMod-v13c0 +using scell_to_add_mod_list_ext_v13c0_l = dyn_array; + +// SCellToAddMod-v10l0 ::= SEQUENCE +struct scell_to_add_mod_v10l0_s { + bool rr_cfg_common_scell_v10l0_present = false; + rr_cfg_common_scell_v10l0_s rr_cfg_common_scell_v10l0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RadioResourceConfigDedicated-v13c0 ::= SEQUENCE +struct rr_cfg_ded_v13c0_s { + phys_cfg_ded_v13c0_s phys_cfg_ded_v13c0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-v10l0 +using scell_to_add_mod_list_v10l0_l = dyn_array; + // Cell-ToAddMod-r12 ::= SEQUENCE struct cell_to_add_mod_r12_s { struct cell_identif_r12_s_ { diff --git a/lib/include/srslte/asn1/rrc/security.h b/lib/include/srslte/asn1/rrc/security.h index d0ec07865..831ea1295 100644 --- a/lib/include/srslte/asn1/rrc/security.h +++ b/lib/include/srslte/asn1/rrc/security.h @@ -300,6 +300,9 @@ struct security_mode_cmd_s { set(types::security_mode_cmd_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -309,9 +312,6 @@ struct security_mode_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -321,24 +321,23 @@ struct security_mode_cmd_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -409,9 +408,6 @@ struct security_mode_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -421,24 +417,23 @@ struct security_mode_complete_s { security_mode_complete_r8_ies_s& security_mode_complete_r8() { assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const security_mode_complete_r8_ies_s& security_mode_complete_r8() const { assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } security_mode_complete_r8_ies_s& set_security_mode_complete_r8() { set(types::security_mode_complete_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + security_mode_complete_r8_ies_s c; }; // member variables @@ -463,9 +458,6 @@ struct security_mode_fail_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -475,24 +467,23 @@ struct security_mode_fail_s { security_mode_fail_r8_ies_s& security_mode_fail_r8() { assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const security_mode_fail_r8_ies_s& security_mode_fail_r8() const { assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } security_mode_fail_r8_ies_s& set_security_mode_fail_r8() { set(types::security_mode_fail_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + security_mode_fail_r8_ies_s c; }; // member variables diff --git a/lib/include/srslte/asn1/rrc/si.h b/lib/include/srslte/asn1/rrc/si.h index 93e4b2823..2d223f223 100644 --- a/lib/include/srslte/asn1/rrc/si.h +++ b/lib/include/srslte/asn1/rrc/si.h @@ -263,6 +263,7 @@ struct sib_type1_v1530_ies_s { assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "crs-IntfMitigConfig-r15"); return c; } + void set_crs_intf_mitig_enabled() { set(types::crs_intf_mitig_enabled); } crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs() { set(types::crs_intf_mitig_num_prbs); @@ -336,9 +337,12 @@ struct cell_access_related_info_r14_s { void to_json(json_writer& j) const; }; -// CellSelectionInfoCE1-v1360 ::= SEQUENCE -struct cell_sel_info_ce1_v1360_s { - int8_t delta_rx_lev_min_ce1_v1360 = -8; +// SystemInformationBlockType1-v1450-IEs ::= SEQUENCE +struct sib_type1_v1450_ies_s { + bool tdd_cfg_v1450_present = false; + bool non_crit_ext_present = false; + tdd_cfg_v1450_s tdd_cfg_v1450; + sib_type1_v1530_ies_s non_crit_ext; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -346,22 +350,9 @@ struct cell_sel_info_ce1_v1360_s { void to_json(json_writer& j) const; }; -// SI-Periodicity-r12 ::= ENUMERATED -struct si_periodicity_r12_opts { - enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; - typedef uint16_t number_type; - - std::string to_string() const; - uint16_t to_number() const; -}; -typedef enumerated si_periodicity_r12_e; - -// SystemInformationBlockType1-v1450-IEs ::= SEQUENCE -struct sib_type1_v1450_ies_s { - bool tdd_cfg_v1450_present = false; - bool non_crit_ext_present = false; - tdd_cfg_v1450_s tdd_cfg_v1450; - sib_type1_v1530_ies_s non_crit_ext; +// CellSelectionInfoCE1-v1360 ::= SEQUENCE +struct cell_sel_info_ce1_v1360_s { + int8_t delta_rx_lev_min_ce1_v1360 = -8; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -1040,6 +1031,16 @@ struct cell_sel_info_v920_s { // PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..6)) OF PLMN-Info-r15 using plmn_info_list_r15_l = dyn_array; +// SI-Periodicity-r12 ::= ENUMERATED +struct si_periodicity_r12_opts { + enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; + typedef uint16_t number_type; + + std::string to_string() const; + uint16_t to_number() const; +}; +typedef enumerated si_periodicity_r12_e; + // SIB-MappingInfo ::= SEQUENCE (SIZE (0..31)) OF SIB-Type using sib_map_info_l = bounded_array; diff --git a/lib/include/srslte/asn1/rrc/uecap.h b/lib/include/srslte/asn1/rrc/uecap.h index 4d05fd6d9..3b66bd2ab 100644 --- a/lib/include/srslte/asn1/rrc/uecap.h +++ b/lib/include/srslte/asn1/rrc/uecap.h @@ -225,6 +225,9 @@ struct ue_cap_enquiry_s { set(types::ue_cap_enquiry_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -234,9 +237,6 @@ struct ue_cap_enquiry_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -246,24 +246,23 @@ struct ue_cap_enquiry_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -403,6 +402,13 @@ struct ue_cap_info_s { set(types::ue_cap_info_r8); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -412,9 +418,6 @@ struct ue_cap_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -424,24 +427,23 @@ struct ue_cap_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -3326,10 +3328,9 @@ struct phy_layer_params_v1540_s { struct stti_spt_cap_v1540_s_ {}; // member variables - bool stti_spt_cap_v1540_present = false; - bool crs_im_tm1_to_tm9_one_rx_port_v1540_present = false; - bool cch_im_ref_rec_type_a_one_rx_port_v1540_present = false; - stti_spt_cap_v1540_s_ stti_spt_cap_v1540; + bool stti_spt_cap_v1540_present = false; + bool crs_im_tm1_to_tm9_one_rx_port_v1540_present = false; + bool cch_im_ref_rec_type_a_one_rx_port_v1540_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -4061,16 +4062,6 @@ struct pdcp_params_v1430_s { void to_json(json_writer& j) const; }; -// PhyLayerParameters-v14a0 ::= SEQUENCE -struct phy_layer_params_v14a0_s { - bool ssp10_tdd_only_r14_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RLC-Parameters-v1430 ::= SEQUENCE struct rlc_params_v1430_s { bool extended_poll_byte_r14_present = false; @@ -4104,18 +4095,6 @@ struct ue_eutra_cap_v1440_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE -struct ue_eutra_cap_v14b0_ies_s { - bool rf_params_v14b0_present = false; - bool non_crit_ext_present = false; - rf_params_v14b0_s rf_params_v14b0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE struct ue_eutra_cap_add_xdd_mode_v1430_s { bool phy_layer_params_v1430_present = false; @@ -4129,74 +4108,6 @@ struct ue_eutra_cap_add_xdd_mode_v1430_s { void to_json(json_writer& j) const; }; -// MBMS-Parameters-v1470 ::= SEQUENCE -struct mbms_params_v1470_s { - struct mbms_max_bw_r14_c_ { - struct types_opts { - enum options { implicit_value, explicit_value, nulltype } value; - - std::string to_string() const; - }; - typedef enumerated types; - - // choice methods - mbms_max_bw_r14_c_() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - uint8_t& explicit_value() - { - assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); - return c; - } - const uint8_t& explicit_value() const - { - assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); - return c; - } - uint8_t& set_explicit_value() - { - set(types::explicit_value); - return c; - } - - private: - types type_; - uint8_t c; - }; - struct mbms_scaling_factor1dot25_r14_opts { - enum options { n3, n6, n9, n12, nulltype } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated mbms_scaling_factor1dot25_r14_e_; - struct mbms_scaling_factor7dot5_r14_opts { - enum options { n1, n2, n3, n4, nulltype } value; - typedef uint8_t number_type; - - std::string to_string() const; - uint8_t to_number() const; - }; - typedef enumerated mbms_scaling_factor7dot5_r14_e_; - - // member variables - bool mbms_scaling_factor1dot25_r14_present = false; - bool mbms_scaling_factor7dot5_r14_present = false; - mbms_max_bw_r14_c_ mbms_max_bw_r14; - mbms_scaling_factor1dot25_r14_e_ mbms_scaling_factor1dot25_r14; - mbms_scaling_factor7dot5_r14_e_ mbms_scaling_factor7dot5_r14; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // Other-Parameters-v1360 ::= SEQUENCE struct other_params_v1360_s { bool in_dev_coex_ind_hardware_sharing_ind_r13_present = false; @@ -4266,18 +4177,6 @@ struct ue_eutra_cap_v1430_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE -struct ue_eutra_cap_v14a0_ies_s { - bool non_crit_ext_present = false; - phy_layer_params_v14a0_s phy_layer_params_v14a0; - ue_eutra_cap_v14b0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // CE-Parameters-v1350 ::= SEQUENCE struct ce_params_v1350_s { bool unicast_freq_hop_r13_present = false; @@ -4301,33 +4200,6 @@ struct ue_eutra_cap_v1360_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE -struct ue_eutra_cap_v1470_ies_s { - bool mbms_params_v1470_present = false; - bool phy_layer_params_v1470_present = false; - bool rf_params_v1470_present = false; - bool non_crit_ext_present = false; - mbms_params_v1470_s mbms_params_v1470; - phy_layer_params_v1470_s phy_layer_params_v1470; - rf_params_v1470_s rf_params_v1470; - ue_eutra_cap_v14a0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// CE-Parameters-v1380 ::= SEQUENCE -struct ce_params_v1380_s { - bool tm6_ce_mode_a_r13_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE struct ue_eutra_cap_v1350_ies_s { bool ue_category_dl_v1350_present = false; @@ -4342,30 +4214,6 @@ struct ue_eutra_cap_v1350_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE -struct ue_eutra_cap_v13e0a_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ue_eutra_cap_v1470_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// CE-Parameters-v1370 ::= SEQUENCE -struct ce_params_v1370_s { - bool tm9_ce_mode_a_r13_present = false; - bool tm9_ce_mode_b_r13_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SCPTM-Parameters-r13 ::= SEQUENCE struct scptm_params_r13_s { bool scptm_parallel_reception_r13_present = false; @@ -4392,29 +4240,6 @@ struct ue_eutra_cap_v1340_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE -struct ue_eutra_cap_v1390_ies_s { - bool rf_params_v1390_present = false; - bool non_crit_ext_present = false; - rf_params_v1390_s rf_params_v1390; - ue_eutra_cap_v13e0a_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE -struct ue_eutra_cap_add_xdd_mode_v1380_s { - ce_params_v1380_s ce_params_v1380; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // CE-Parameters-v1320 ::= SEQUENCE struct ce_params_v1320_s { bool intra_freq_a3_ce_mode_a_r13_present = false; @@ -4478,22 +4303,6 @@ struct ue_eutra_cap_v1330_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE -struct ue_eutra_cap_v1380_ies_s { - bool rf_params_v1380_present = false; - bool non_crit_ext_present = false; - rf_params_v1380_s rf_params_v1380; - ce_params_v1380_s ce_params_v1380; - ue_eutra_cap_add_xdd_mode_v1380_s fdd_add_ue_eutra_cap_v1380; - ue_eutra_cap_add_xdd_mode_v1380_s tdd_add_ue_eutra_cap_v1380; - ue_eutra_cap_v1390_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE struct ue_eutra_cap_add_xdd_mode_v1320_s { bool phy_layer_params_v1320_present = false; @@ -4507,17 +4316,6 @@ struct ue_eutra_cap_add_xdd_mode_v1320_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE -struct ue_eutra_cap_add_xdd_mode_v1370_s { - bool ce_params_v1370_present = false; - ce_params_v1370_s ce_params_v1370; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // CE-Parameters-r13 ::= SEQUENCE struct ce_params_r13_s { bool ce_mode_a_r13_present = false; @@ -4661,23 +4459,6 @@ struct ue_eutra_cap_v1320_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE -struct ue_eutra_cap_v1370_ies_s { - bool ce_params_v1370_present = false; - bool fdd_add_ue_eutra_cap_v1370_present = false; - bool tdd_add_ue_eutra_cap_v1370_present = false; - bool non_crit_ext_present = false; - ce_params_v1370_s ce_params_v1370; - ue_eutra_cap_add_xdd_mode_v1370_s fdd_add_ue_eutra_cap_v1370; - ue_eutra_cap_add_xdd_mode_v1370_s tdd_add_ue_eutra_cap_v1370; - ue_eutra_cap_v1380_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE struct ue_eutra_cap_add_xdd_mode_v1310_s { bool phy_layer_params_v1310_present = false; @@ -4709,29 +4490,6 @@ struct phy_layer_params_v1280_s { void to_json(json_writer& j) const; }; -// RF-Parameters-v12b0 ::= SEQUENCE -struct rf_params_v12b0_s { - bool max_layers_mimo_ind_r12_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE -struct ue_eutra_cap_v12x0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ue_eutra_cap_v1370_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE struct ue_eutra_cap_v1310_ies_s { struct ue_category_dl_v1310_opts { @@ -4807,19 +4565,6 @@ struct ue_eutra_cap_v1280_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE -struct ue_eutra_cap_v12b0_ies_s { - bool rf_params_v12b0_present = false; - bool non_crit_ext_present = false; - rf_params_v12b0_s rf_params_v12b0; - ue_eutra_cap_v12x0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // MeasParameters-v1250 ::= SEQUENCE struct meas_params_v1250_s { bool timer_t312_r12_present = false; @@ -4838,39 +4583,6 @@ struct meas_params_v1250_s { void to_json(json_writer& j) const; }; -// Other-Parameters-v11d0 ::= SEQUENCE -struct other_params_v11d0_s { - bool in_dev_coex_ind_ul_ca_r11_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// RF-Parameters-v10j0 ::= SEQUENCE -struct rf_params_v10j0_s { - bool multi_ns_pmax_r10_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE -struct ue_eutra_cap_v11x0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ue_eutra_cap_v12b0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE struct ue_eutra_cap_v1270_ies_s { bool rf_params_v1270_present = false; @@ -4932,33 +4644,6 @@ struct ue_based_netw_perf_meas_params_v1250_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE -struct ue_eutra_cap_v10j0_ies_s { - bool rf_params_v10j0_present = false; - bool non_crit_ext_present = false; - rf_params_v10j0_s rf_params_v10j0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE -struct ue_eutra_cap_v11d0_ies_s { - bool rf_params_v11d0_present = false; - bool other_params_v11d0_present = false; - bool non_crit_ext_present = false; - rf_params_v11d0_s rf_params_v11d0; - other_params_v11d0_s other_params_v11d0; - ue_eutra_cap_v11x0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE struct ue_eutra_cap_v1260_ies_s { bool ue_category_dl_v1260_present = false; @@ -5017,32 +4702,6 @@ struct meas_params_v11a0_s { void to_json(json_writer& j) const; }; -// RF-Parameters-v10f0 ::= SEQUENCE -struct rf_params_v10f0_s { - bool modified_mpr_behavior_r10_present = false; - fixed_bitstring<32> modified_mpr_behavior_r10; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE -struct ue_eutra_cap_v10i0_ies_s { - bool rf_params_v10i0_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - rf_params_v10i0_s rf_params_v10i0; - dyn_octstring late_non_crit_ext; - ue_eutra_cap_v11d0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE struct ue_eutra_cap_v1250_ies_s { bool phy_layer_params_v1250_present = false; @@ -5082,29 +4741,6 @@ struct ue_eutra_cap_v1250_ies_s { void to_json(json_writer& j) const; }; -// OTDOA-PositioningCapabilities-r10 ::= SEQUENCE -struct otdoa_positioning_cap_r10_s { - bool inter_freq_rstd_meas_r10_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE -struct ue_eutra_cap_v10f0_ies_s { - bool rf_params_v10f0_present = false; - bool non_crit_ext_present = false; - rf_params_v10f0_s rf_params_v10f0; - ue_eutra_cap_v10i0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE struct ue_eutra_cap_v11a0_ies_s { bool ue_category_v11a0_present = false; @@ -5130,14 +4766,6 @@ struct ue_eutra_cap_add_xdd_mode_v1180_s { void to_json(json_writer& j) const; }; -// IRAT-ParametersUTRA-v9h0 ::= SEQUENCE -struct irat_params_utra_v9h0_s { - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // MeasParameters-v1130 ::= SEQUENCE struct meas_params_v1130_s { bool rsrq_meas_wideband_r11_present = false; @@ -5187,19 +4815,6 @@ struct phy_layer_params_v1170_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE -struct ue_eutra_cap_v10c0_ies_s { - bool otdoa_positioning_cap_r10_present = false; - bool non_crit_ext_present = false; - otdoa_positioning_cap_r10_s otdoa_positioning_cap_r10; - ue_eutra_cap_v10f0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE struct ue_eutra_cap_v1180_ies_s { bool rf_params_v1180_present = false; @@ -5255,21 +4870,6 @@ struct ue_eutra_cap_v1170_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE -struct ue_eutra_cap_v9h0_ies_s { - bool inter_rat_params_utra_v9h0_present = false; - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - irat_params_utra_v9h0_s inter_rat_params_utra_v9h0; - dyn_octstring late_non_crit_ext; - ue_eutra_cap_v10c0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE struct ue_eutra_cap_add_xdd_mode_v1130_s { bool ext = false; @@ -5303,10 +4903,9 @@ struct irat_params_utra_tdd_v1020_s { void to_json(json_writer& j) const; }; -// PhyLayerParameters-v9d0 ::= SEQUENCE -struct phy_layer_params_v9d0_s { - bool tm5_fdd_r9_present = false; - bool tm5_tdd_r9_present = false; +// OTDOA-PositioningCapabilities-r10 ::= SEQUENCE +struct otdoa_positioning_cap_r10_s { + bool inter_freq_rstd_meas_r10_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -5336,75 +4935,6 @@ struct ue_eutra_cap_v1130_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE -struct ue_eutra_cap_v9e0_ies_s { - bool rf_params_v9e0_present = false; - bool non_crit_ext_present = false; - rf_params_v9e0_s rf_params_v9e0; - ue_eutra_cap_v9h0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE -struct irat_params_cdma2000_minus1_xrtt_v920_s { - bool e_csfb_conc_ps_mob1_xrtt_r9_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// IRAT-ParametersUTRA-v920 ::= SEQUENCE -struct irat_params_utra_v920_s { - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// IRAT-ParametersUTRA-v9c0 ::= SEQUENCE -struct irat_params_utra_v9c0_s { - bool voice_over_ps_hs_utra_fdd_r9_present = false; - bool voice_over_ps_hs_utra_tdd128_r9_present = false; - bool srvcc_from_utra_fdd_to_utra_fdd_r9_present = false; - bool srvcc_from_utra_fdd_to_geran_r9_present = false; - bool srvcc_from_utra_tdd128_to_utra_tdd128_r9_present = false; - bool srvcc_from_utra_tdd128_to_geran_r9_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE -struct neigh_cell_si_acquisition_params_r9_s { - bool intra_freq_si_acquisition_for_ho_r9_present = false; - bool inter_freq_si_acquisition_for_ho_r9_present = false; - bool utran_si_acquisition_for_ho_r9_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PhyLayerParameters ::= SEQUENCE -struct phy_layer_params_s { - bool ue_tx_ant_sel_supported = false; - bool ue_specific_ref_sigs_supported = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE struct ue_eutra_cap_v1090_ies_s { bool rf_params_v1090_present = false; @@ -5418,19 +4948,6 @@ struct ue_eutra_cap_v1090_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE -struct ue_eutra_cap_v9d0_ies_s { - bool phy_layer_params_v9d0_present = false; - bool non_crit_ext_present = false; - phy_layer_params_v9d0_s phy_layer_params_v9d0; - ue_eutra_cap_v9e0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE struct ue_eutra_cap_add_xdd_mode_v1060_s { bool ext = false; @@ -5480,44 +4997,6 @@ struct ue_eutra_cap_v1060_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE -struct ue_eutra_cap_v9c0_ies_s { - bool inter_rat_params_utra_v9c0_present = false; - bool non_crit_ext_present = false; - irat_params_utra_v9c0_s inter_rat_params_utra_v9c0; - ue_eutra_cap_v9d0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE -struct ue_eutra_cap_add_xdd_mode_r9_s { - bool ext = false; - bool phy_layer_params_r9_present = false; - bool feature_group_inds_r9_present = false; - bool feature_group_ind_rel9_add_r9_present = false; - bool inter_rat_params_geran_r9_present = false; - bool inter_rat_params_utra_r9_present = false; - bool inter_rat_params_cdma2000_r9_present = false; - bool neigh_cell_si_acquisition_params_r9_present = false; - phy_layer_params_s phy_layer_params_r9; - fixed_bitstring<32> feature_group_inds_r9; - fixed_bitstring<32> feature_group_ind_rel9_add_r9; - irat_params_geran_s inter_rat_params_geran_r9; - irat_params_utra_v920_s inter_rat_params_utra_r9; - irat_params_cdma2000_minus1_xrtt_v920_s inter_rat_params_cdma2000_r9; - neigh_cell_si_acquisition_params_r9_s neigh_cell_si_acquisition_params_r9; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE struct ue_eutra_cap_v1020_ies_s { bool ue_category_v1020_present = false; @@ -5545,16 +5024,11 @@ struct ue_eutra_cap_v1020_ies_s { void to_json(json_writer& j) const; }; -// UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE -struct ue_eutra_cap_v9a0_ies_s { - bool feature_group_ind_rel9_add_r9_present = false; - bool fdd_add_ue_eutra_cap_r9_present = false; - bool tdd_add_ue_eutra_cap_r9_present = false; - bool non_crit_ext_present = false; - fixed_bitstring<32> feature_group_ind_rel9_add_r9; - ue_eutra_cap_add_xdd_mode_r9_s fdd_add_ue_eutra_cap_r9; - ue_eutra_cap_add_xdd_mode_r9_s tdd_add_ue_eutra_cap_r9; - ue_eutra_cap_v9c0_ies_s non_crit_ext; +// CSG-ProximityIndicationParameters-r9 ::= SEQUENCE +struct csg_proximity_ind_params_r9_s { + bool intra_freq_proximity_ind_r9_present = false; + bool inter_freq_proximity_ind_r9_present = false; + bool utran_proximity_ind_r9_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -5562,11 +5036,9 @@ struct ue_eutra_cap_v9a0_ies_s { void to_json(json_writer& j) const; }; -// CSG-ProximityIndicationParameters-r9 ::= SEQUENCE -struct csg_proximity_ind_params_r9_s { - bool intra_freq_proximity_ind_r9_present = false; - bool inter_freq_proximity_ind_r9_present = false; - bool utran_proximity_ind_r9_present = false; +// IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE +struct irat_params_cdma2000_minus1_xrtt_v920_s { + bool e_csfb_conc_ps_mob1_xrtt_r9_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -5585,6 +5057,26 @@ struct irat_params_geran_v920_s { void to_json(json_writer& j) const; }; +// IRAT-ParametersUTRA-v920 ::= SEQUENCE +struct irat_params_utra_v920_s { + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE +struct neigh_cell_si_acquisition_params_r9_s { + bool intra_freq_si_acquisition_for_ho_r9_present = false; + bool inter_freq_si_acquisition_for_ho_r9_present = false; + bool utran_si_acquisition_for_ho_r9_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // PhyLayerParameters-v920 ::= SEQUENCE struct phy_layer_params_v920_s { bool enhanced_dual_layer_fdd_r9_present = false; @@ -5629,6 +5121,17 @@ struct access_stratum_release_opts { }; typedef enumerated access_stratum_release_e; +// PhyLayerParameters ::= SEQUENCE +struct phy_layer_params_s { + bool ue_tx_ant_sel_supported = false; + bool ue_specific_ref_sigs_supported = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // UE-EUTRA-Capability-v920-IEs ::= SEQUENCE struct ue_eutra_cap_v920_ies_s { bool inter_rat_params_utra_v920_present = false; @@ -5688,10 +5191,9 @@ struct ue_eutra_cap_s { void to_json(json_writer& j) const; }; -// UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE -struct ue_radio_access_cap_info_r8_ies_s { - bool non_crit_ext_present = false; - dyn_octstring ue_radio_access_cap_info; +// PhyLayerParameters-v14a0 ::= SEQUENCE +struct phy_layer_params_v14a0_s { + bool ssp10_tdd_only_r14_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; @@ -5699,89 +5201,592 @@ struct ue_radio_access_cap_info_r8_ies_s { void to_json(json_writer& j) const; }; -// UERadioAccessCapabilityInformation ::= SEQUENCE -struct ue_radio_access_cap_info_s { - struct crit_exts_c_ { - struct c1_c_ { - struct types_opts { - enum options { - ue_radio_access_cap_info_r8, - spare7, - spare6, - spare5, - spare4, - spare3, - spare2, - spare1, - nulltype - } value; +// UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE +struct ue_eutra_cap_v14b0_ies_s { + bool rf_params_v14b0_present = false; + bool non_crit_ext_present = false; + rf_params_v14b0_s rf_params_v14b0; - std::string to_string() const; - }; - typedef enumerated types; + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; - // choice methods - c1_c_() = default; - void set(types::options e = types::nulltype); - types type() const { return type_; } - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; - // getters - ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() - { - assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); - return c; - } - const ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() const - { - assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); - return c; - } - ue_radio_access_cap_info_r8_ies_s& set_ue_radio_access_cap_info_r8() - { - set(types::ue_radio_access_cap_info_r8); - return c; - } +// MBMS-Parameters-v1470 ::= SEQUENCE +struct mbms_params_v1470_s { + struct mbms_max_bw_r14_c_ { + struct types_opts { + enum options { implicit_value, explicit_value, nulltype } value; - private: - types type_; - ue_radio_access_cap_info_r8_ies_s c; + std::string to_string() const; }; - typedef c1_or_crit_ext_e types; + typedef enumerated types; // choice methods - crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } + mbms_max_bw_r14_c_() = default; void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters - c1_c_& c1() + uint8_t& explicit_value() { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); + return c; } - const c1_c_& c1() const + const uint8_t& explicit_value() const { - assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14"); + return c; } - c1_c_& set_c1() + void set_implicit_value() { set(types::implicit_value); } + uint8_t& set_explicit_value() { - set(types::c1); - return c.get(); + set(types::explicit_value); + return c; } private: - types type_; - choice_buffer_t c; + types type_; + uint8_t c; + }; + struct mbms_scaling_factor1dot25_r14_opts { + enum options { n3, n6, n9, n12, nulltype } value; + typedef uint8_t number_type; + + std::string to_string() const; + uint8_t to_number() const; + }; + typedef enumerated mbms_scaling_factor1dot25_r14_e_; + struct mbms_scaling_factor7dot5_r14_opts { + enum options { n1, n2, n3, n4, nulltype } value; + typedef uint8_t number_type; + + std::string to_string() const; + uint8_t to_number() const; + }; + typedef enumerated mbms_scaling_factor7dot5_r14_e_; + + // member variables + bool mbms_scaling_factor1dot25_r14_present = false; + bool mbms_scaling_factor7dot5_r14_present = false; + mbms_max_bw_r14_c_ mbms_max_bw_r14; + mbms_scaling_factor1dot25_r14_e_ mbms_scaling_factor1dot25_r14; + mbms_scaling_factor7dot5_r14_e_ mbms_scaling_factor7dot5_r14; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE +struct ue_eutra_cap_v14a0_ies_s { + bool non_crit_ext_present = false; + phy_layer_params_v14a0_s phy_layer_params_v14a0; + ue_eutra_cap_v14b0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE +struct ue_eutra_cap_v1470_ies_s { + bool mbms_params_v1470_present = false; + bool phy_layer_params_v1470_present = false; + bool rf_params_v1470_present = false; + bool non_crit_ext_present = false; + mbms_params_v1470_s mbms_params_v1470; + phy_layer_params_v1470_s phy_layer_params_v1470; + rf_params_v1470_s rf_params_v1470; + ue_eutra_cap_v14a0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// CE-Parameters-v1380 ::= SEQUENCE +struct ce_params_v1380_s { + bool tm6_ce_mode_a_r13_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE +struct ue_eutra_cap_v13e0a_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ue_eutra_cap_v1470_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// CE-Parameters-v1370 ::= SEQUENCE +struct ce_params_v1370_s { + bool tm9_ce_mode_a_r13_present = false; + bool tm9_ce_mode_b_r13_present = false; - void destroy_(); + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE +struct ue_eutra_cap_v1390_ies_s { + bool rf_params_v1390_present = false; + bool non_crit_ext_present = false; + rf_params_v1390_s rf_params_v1390; + ue_eutra_cap_v13e0a_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE +struct ue_eutra_cap_add_xdd_mode_v1380_s { + ce_params_v1380_s ce_params_v1380; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE +struct ue_eutra_cap_v1380_ies_s { + bool rf_params_v1380_present = false; + bool non_crit_ext_present = false; + rf_params_v1380_s rf_params_v1380; + ce_params_v1380_s ce_params_v1380; + ue_eutra_cap_add_xdd_mode_v1380_s fdd_add_ue_eutra_cap_v1380; + ue_eutra_cap_add_xdd_mode_v1380_s tdd_add_ue_eutra_cap_v1380; + ue_eutra_cap_v1390_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE +struct ue_eutra_cap_add_xdd_mode_v1370_s { + bool ce_params_v1370_present = false; + ce_params_v1370_s ce_params_v1370; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE +struct ue_eutra_cap_v1370_ies_s { + bool ce_params_v1370_present = false; + bool fdd_add_ue_eutra_cap_v1370_present = false; + bool tdd_add_ue_eutra_cap_v1370_present = false; + bool non_crit_ext_present = false; + ce_params_v1370_s ce_params_v1370; + ue_eutra_cap_add_xdd_mode_v1370_s fdd_add_ue_eutra_cap_v1370; + ue_eutra_cap_add_xdd_mode_v1370_s tdd_add_ue_eutra_cap_v1370; + ue_eutra_cap_v1380_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RF-Parameters-v12b0 ::= SEQUENCE +struct rf_params_v12b0_s { + bool max_layers_mimo_ind_r12_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE +struct ue_eutra_cap_v12x0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ue_eutra_cap_v1370_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE +struct ue_eutra_cap_v12b0_ies_s { + bool rf_params_v12b0_present = false; + bool non_crit_ext_present = false; + rf_params_v12b0_s rf_params_v12b0; + ue_eutra_cap_v12x0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// Other-Parameters-v11d0 ::= SEQUENCE +struct other_params_v11d0_s { + bool in_dev_coex_ind_ul_ca_r11_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE +struct ue_eutra_cap_v11x0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ue_eutra_cap_v12b0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE +struct ue_eutra_cap_v11d0_ies_s { + bool rf_params_v11d0_present = false; + bool other_params_v11d0_present = false; + bool non_crit_ext_present = false; + rf_params_v11d0_s rf_params_v11d0; + other_params_v11d0_s other_params_v11d0; + ue_eutra_cap_v11x0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RF-Parameters-v10f0 ::= SEQUENCE +struct rf_params_v10f0_s { + bool modified_mpr_behavior_r10_present = false; + fixed_bitstring<32> modified_mpr_behavior_r10; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE +struct ue_eutra_cap_v10i0_ies_s { + bool rf_params_v10i0_present = false; + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + rf_params_v10i0_s rf_params_v10i0; + dyn_octstring late_non_crit_ext; + ue_eutra_cap_v11d0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE +struct ue_eutra_cap_v10f0_ies_s { + bool rf_params_v10f0_present = false; + bool non_crit_ext_present = false; + rf_params_v10f0_s rf_params_v10f0; + ue_eutra_cap_v10i0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE +struct ue_eutra_cap_v10c0_ies_s { + bool otdoa_positioning_cap_r10_present = false; + bool non_crit_ext_present = false; + otdoa_positioning_cap_r10_s otdoa_positioning_cap_r10; + ue_eutra_cap_v10f0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RF-Parameters-v10j0 ::= SEQUENCE +struct rf_params_v10j0_s { + bool multi_ns_pmax_r10_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE +struct ue_eutra_cap_v10j0_ies_s { + bool rf_params_v10j0_present = false; + bool non_crit_ext_present = false; + rf_params_v10j0_s rf_params_v10j0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// IRAT-ParametersUTRA-v9h0 ::= SEQUENCE +struct irat_params_utra_v9h0_s { + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE +struct ue_eutra_cap_v9h0_ies_s { + bool inter_rat_params_utra_v9h0_present = false; + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + irat_params_utra_v9h0_s inter_rat_params_utra_v9h0; + dyn_octstring late_non_crit_ext; + ue_eutra_cap_v10c0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PhyLayerParameters-v9d0 ::= SEQUENCE +struct phy_layer_params_v9d0_s { + bool tm5_fdd_r9_present = false; + bool tm5_tdd_r9_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE +struct ue_eutra_cap_v9e0_ies_s { + bool rf_params_v9e0_present = false; + bool non_crit_ext_present = false; + rf_params_v9e0_s rf_params_v9e0; + ue_eutra_cap_v9h0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// IRAT-ParametersUTRA-v9c0 ::= SEQUENCE +struct irat_params_utra_v9c0_s { + bool voice_over_ps_hs_utra_fdd_r9_present = false; + bool voice_over_ps_hs_utra_tdd128_r9_present = false; + bool srvcc_from_utra_fdd_to_utra_fdd_r9_present = false; + bool srvcc_from_utra_fdd_to_geran_r9_present = false; + bool srvcc_from_utra_tdd128_to_utra_tdd128_r9_present = false; + bool srvcc_from_utra_tdd128_to_geran_r9_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE +struct ue_eutra_cap_v9d0_ies_s { + bool phy_layer_params_v9d0_present = false; + bool non_crit_ext_present = false; + phy_layer_params_v9d0_s phy_layer_params_v9d0; + ue_eutra_cap_v9e0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE +struct ue_eutra_cap_v9c0_ies_s { + bool inter_rat_params_utra_v9c0_present = false; + bool non_crit_ext_present = false; + irat_params_utra_v9c0_s inter_rat_params_utra_v9c0; + ue_eutra_cap_v9d0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE +struct ue_eutra_cap_add_xdd_mode_r9_s { + bool ext = false; + bool phy_layer_params_r9_present = false; + bool feature_group_inds_r9_present = false; + bool feature_group_ind_rel9_add_r9_present = false; + bool inter_rat_params_geran_r9_present = false; + bool inter_rat_params_utra_r9_present = false; + bool inter_rat_params_cdma2000_r9_present = false; + bool neigh_cell_si_acquisition_params_r9_present = false; + phy_layer_params_s phy_layer_params_r9; + fixed_bitstring<32> feature_group_inds_r9; + fixed_bitstring<32> feature_group_ind_rel9_add_r9; + irat_params_geran_s inter_rat_params_geran_r9; + irat_params_utra_v920_s inter_rat_params_utra_r9; + irat_params_cdma2000_minus1_xrtt_v920_s inter_rat_params_cdma2000_r9; + neigh_cell_si_acquisition_params_r9_s neigh_cell_si_acquisition_params_r9; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE +struct ue_eutra_cap_v9a0_ies_s { + bool feature_group_ind_rel9_add_r9_present = false; + bool fdd_add_ue_eutra_cap_r9_present = false; + bool tdd_add_ue_eutra_cap_r9_present = false; + bool non_crit_ext_present = false; + fixed_bitstring<32> feature_group_ind_rel9_add_r9; + ue_eutra_cap_add_xdd_mode_r9_s fdd_add_ue_eutra_cap_r9; + ue_eutra_cap_add_xdd_mode_r9_s tdd_add_ue_eutra_cap_r9; + ue_eutra_cap_v9c0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE +struct ue_radio_access_cap_info_r8_ies_s { + bool non_crit_ext_present = false; + dyn_octstring ue_radio_access_cap_info; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UERadioAccessCapabilityInformation ::= SEQUENCE +struct ue_radio_access_cap_info_s { + struct crit_exts_c_ { + struct c1_c_ { + struct types_opts { + enum options { + ue_radio_access_cap_info_r8, + spare7, + spare6, + spare5, + spare4, + spare3, + spare2, + spare1, + nulltype + } value; + + std::string to_string() const; + }; + typedef enumerated types; + + // choice methods + c1_c_() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() + { + assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); + return c; + } + const ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() const + { + assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1"); + return c; + } + ue_radio_access_cap_info_r8_ies_s& set_ue_radio_access_cap_info_r8() + { + set(types::ue_radio_access_cap_info_r8); + return c; + } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } + + private: + types type_; + ue_radio_access_cap_info_r8_ies_s c; + }; + typedef c1_or_crit_ext_e types; + + // choice methods + crit_exts_c_() = default; + void set(types::options e = types::nulltype); + types type() const { return type_; } + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; + // getters + c1_c_& c1() + { + assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + return c; + } + const c1_c_& c1() const + { + assert_choice_type("c1", type_.to_string(), "criticalExtensions"); + return c; + } + c1_c_& set_c1() + { + set(types::c1); + return c; + } + void set_crit_exts_future() { set(types::crit_exts_future); } + + private: + types type_; + c1_c_ c; }; // member variables diff --git a/lib/include/srslte/asn1/rrc/ul_ccch_msg.h b/lib/include/srslte/asn1/rrc/ul_ccch_msg.h index 5d7b0f13f..ceacd0b1a 100644 --- a/lib/include/srslte/asn1/rrc/ul_ccch_msg.h +++ b/lib/include/srslte/asn1/rrc/ul_ccch_msg.h @@ -462,9 +462,6 @@ struct rrc_conn_reest_request_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -474,24 +471,23 @@ struct rrc_conn_reest_request_s { rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8() { assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8() const { assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_reest_request_r8_ies_s& set_rrc_conn_reest_request_r8() { set(types::rrc_conn_reest_request_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_reest_request_r8_ies_s c; }; // member variables @@ -651,9 +647,6 @@ struct rrc_early_data_request_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -663,24 +656,23 @@ struct rrc_early_data_request_r15_s { rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15() { assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15() const { assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_early_data_request_r15_ies_s& set_rrc_early_data_request_r15() { set(types::rrc_early_data_request_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_early_data_request_r15_ies_s c; }; // member variables @@ -803,6 +795,9 @@ struct ul_ccch_msg_type_c { set(types::rrc_early_data_request_r15); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -819,9 +814,6 @@ struct ul_ccch_msg_type_c { // choice methods msg_class_ext_future_r13_c_() = default; - msg_class_ext_future_r13_c_(const msg_class_ext_future_r13_c_& other); - msg_class_ext_future_r13_c_& operator=(const msg_class_ext_future_r13_c_& other); - ~msg_class_ext_future_r13_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -831,24 +823,23 @@ struct ul_ccch_msg_type_c { c3_c_& c3() { assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13"); - return c.get(); + return c; } const c3_c_& c3() const { assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13"); - return c.get(); + return c; } c3_c_& set_c3() { set(types::c3); - return c.get(); + return c; } + void set_msg_class_ext_future_r15() { set(types::msg_class_ext_future_r15); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c3_c_ c; }; struct types_opts { enum options { c2, msg_class_ext_future_r13, nulltype } value; diff --git a/lib/include/srslte/asn1/rrc/ul_dcch_msg.h b/lib/include/srslte/asn1/rrc/ul_dcch_msg.h index 5e76b092b..5cb9f3ad3 100644 --- a/lib/include/srslte/asn1/rrc/ul_dcch_msg.h +++ b/lib/include/srslte/asn1/rrc/ul_dcch_msg.h @@ -1068,16 +1068,6 @@ struct overheat_assist_r14_s { void to_json(json_writer& j) const; }; -// RLF-Report-v9e0 ::= SEQUENCE -struct rlf_report_v9e0_s { - meas_result_list2_eutra_v9e0_l meas_result_list_eutra_v9e0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE struct rrc_conn_recfg_complete_v1130_ies_s { bool conn_est_fail_info_available_r11_present = false; @@ -2053,18 +2043,6 @@ struct ue_info_resp_v1020_ies_s { void to_json(json_writer& j) const; }; -// UEInformationResponse-v9e0-IEs ::= SEQUENCE -struct ue_info_resp_v9e0_ies_s { - bool rlf_report_v9e0_present = false; - bool non_crit_ext_present = false; - rlf_report_v9e0_s rlf_report_v9e0; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // WLAN-Status-v1430 ::= ENUMERATED struct wlan_status_v1430_opts { enum options { suspended, resumed, nulltype } value; @@ -2940,6 +2918,7 @@ struct inter_freq_rstd_meas_ind_r10_ies_s { set(types::start); return c; } + void set_stop() { set(types::stop); } private: types type_; @@ -3420,9 +3399,6 @@ struct csfb_params_request_cdma2000_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3432,24 +3408,23 @@ struct csfb_params_request_cdma2000_s { csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8() { assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8() const { assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } csfb_params_request_cdma2000_r8_ies_s& set_csfb_params_request_cdma2000_r8() { set(types::csfb_params_request_cdma2000_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + csfb_params_request_cdma2000_r8_ies_s c; }; // member variables @@ -3473,9 +3448,6 @@ struct counter_check_resp_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3485,24 +3457,23 @@ struct counter_check_resp_s { counter_check_resp_r8_ies_s& counter_check_resp_r8() { assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const counter_check_resp_r8_ies_s& counter_check_resp_r8() const { assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } counter_check_resp_r8_ies_s& set_counter_check_resp_r8() { set(types::counter_check_resp_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + counter_check_resp_r8_ies_s c; }; // member variables @@ -3560,6 +3531,9 @@ struct in_dev_coex_ind_r11_s { set(types::in_dev_coex_ind_r11); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -3569,9 +3543,6 @@ struct in_dev_coex_ind_r11_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3581,24 +3552,23 @@ struct in_dev_coex_ind_r11_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -3644,6 +3614,9 @@ struct inter_freq_rstd_meas_ind_r10_s { set(types::inter_freq_rstd_meas_ind_r10); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -3653,9 +3626,6 @@ struct inter_freq_rstd_meas_ind_r10_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3665,24 +3635,23 @@ struct inter_freq_rstd_meas_ind_r10_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -3728,6 +3697,9 @@ struct mbms_count_resp_r10_s { set(types::count_resp_r10); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -3737,9 +3709,6 @@ struct mbms_count_resp_r10_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3749,24 +3718,23 @@ struct mbms_count_resp_r10_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -3812,6 +3780,9 @@ struct mbms_interest_ind_r11_s { set(types::interest_ind_r11); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -3821,9 +3792,6 @@ struct mbms_interest_ind_r11_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3833,24 +3801,23 @@ struct mbms_interest_ind_r11_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -3874,9 +3841,6 @@ struct meas_report_app_layer_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3886,24 +3850,23 @@ struct meas_report_app_layer_r15_s { meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15() { assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15() const { assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } meas_report_app_layer_r15_ies_s& set_meas_report_app_layer_r15() { set(types::meas_report_app_layer_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + meas_report_app_layer_r15_ies_s c; }; // member variables @@ -3949,6 +3912,9 @@ struct proximity_ind_r9_s { set(types::proximity_ind_r9); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -3958,9 +3924,6 @@ struct proximity_ind_r9_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -3970,24 +3933,23 @@ struct proximity_ind_r9_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4033,6 +3995,9 @@ struct rn_recfg_complete_r10_s { set(types::rn_recfg_complete_r10); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4042,9 +4007,6 @@ struct rn_recfg_complete_r10_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4054,24 +4016,23 @@ struct rn_recfg_complete_r10_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4096,9 +4057,6 @@ struct rrc_conn_recfg_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4108,24 +4066,23 @@ struct rrc_conn_recfg_complete_s { rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8() { assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8() const { assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_recfg_complete_r8_ies_s& set_rrc_conn_recfg_complete_r8() { set(types::rrc_conn_recfg_complete_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_recfg_complete_r8_ies_s c; }; // member variables @@ -4150,9 +4107,6 @@ struct rrc_conn_reest_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4162,24 +4116,23 @@ struct rrc_conn_reest_complete_s { rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8() { assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8() const { assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_reest_complete_r8_ies_s& set_rrc_conn_reest_complete_r8() { set(types::rrc_conn_reest_complete_r8); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_reest_complete_r8_ies_s c; }; // member variables @@ -4204,9 +4157,6 @@ struct rrc_conn_resume_complete_r13_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4216,24 +4166,23 @@ struct rrc_conn_resume_complete_r13_s { rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13() { assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13() const { assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_resume_complete_r13_ies_s& set_rrc_conn_resume_complete_r13() { set(types::rrc_conn_resume_complete_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_resume_complete_r13_ies_s c; }; // member variables @@ -4280,6 +4229,9 @@ struct rrc_conn_setup_complete_s { set(types::rrc_conn_setup_complete_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4289,9 +4241,6 @@ struct rrc_conn_setup_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4301,24 +4250,23 @@ struct rrc_conn_setup_complete_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4365,6 +4313,9 @@ struct scg_fail_info_r12_s { set(types::scg_fail_info_r12); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4374,9 +4325,6 @@ struct scg_fail_info_r12_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4386,24 +4334,23 @@ struct scg_fail_info_r12_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4449,6 +4396,9 @@ struct scg_fail_info_nr_r15_s { set(types::scg_fail_info_nr_r15); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4458,9 +4408,6 @@ struct scg_fail_info_nr_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4470,24 +4417,23 @@ struct scg_fail_info_nr_r15_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4533,6 +4479,9 @@ struct sidelink_ue_info_r12_s { set(types::sidelink_ue_info_r12); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4542,9 +4491,6 @@ struct sidelink_ue_info_r12_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4554,24 +4500,23 @@ struct sidelink_ue_info_r12_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4617,6 +4562,9 @@ struct ueassist_info_r11_s { set(types::ue_assist_info_r11); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4626,9 +4574,6 @@ struct ueassist_info_r11_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4638,24 +4583,23 @@ struct ueassist_info_r11_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4701,6 +4645,9 @@ struct ue_info_resp_r9_s { set(types::ue_info_resp_r9); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4710,9 +4657,6 @@ struct ue_info_resp_r9_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4722,24 +4666,23 @@ struct ue_info_resp_r9_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4786,6 +4729,9 @@ struct ul_ho_prep_transfer_s { set(types::ul_ho_prep_transfer_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4795,9 +4741,6 @@ struct ul_ho_prep_transfer_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4807,24 +4750,23 @@ struct ul_ho_prep_transfer_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4870,6 +4812,9 @@ struct ul_info_transfer_s { set(types::ul_info_transfer_r8); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4879,9 +4824,6 @@ struct ul_info_transfer_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4891,24 +4833,23 @@ struct ul_info_transfer_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -4954,6 +4895,9 @@ struct ul_info_transfer_mrdc_r15_s { set(types::ul_info_transfer_mrdc_r15); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4963,9 +4907,6 @@ struct ul_info_transfer_mrdc_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4975,24 +4916,23 @@ struct ul_info_transfer_mrdc_r15_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5038,6 +4978,9 @@ struct wlan_conn_status_report_r13_s { set(types::wlan_conn_status_report_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5047,9 +4990,6 @@ struct wlan_conn_status_report_r13_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5059,24 +4999,23 @@ struct wlan_conn_status_report_r13_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5595,6 +5534,11 @@ struct ul_dcch_msg_type_c { set(types::fail_info_r15); return c.get(); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5624,9 +5568,6 @@ struct ul_dcch_msg_type_c { // choice methods msg_class_ext_c_() = default; - msg_class_ext_c_(const msg_class_ext_c_& other); - msg_class_ext_c_& operator=(const msg_class_ext_c_& other); - ~msg_class_ext_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5636,24 +5577,23 @@ struct ul_dcch_msg_type_c { c2_c_& c2() { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } const c2_c_& c2() const { assert_choice_type("c2", type_.to_string(), "messageClassExtension"); - return c.get(); + return c; } c2_c_& set_c2() { set(types::c2); - return c.get(); + return c; } + void set_msg_class_ext_future_r11() { set(types::msg_class_ext_future_r11); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c2_c_ c; }; struct types_opts { enum options { c1, msg_class_ext, nulltype } value; @@ -5723,6 +5663,28 @@ struct ul_dcch_msg_s { void to_json(json_writer& j) const; }; +// RLF-Report-v9e0 ::= SEQUENCE +struct rlf_report_v9e0_s { + meas_result_list2_eutra_v9e0_l meas_result_list_eutra_v9e0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UEInformationResponse-v9e0-IEs ::= SEQUENCE +struct ue_info_resp_v9e0_ies_s { + bool rlf_report_v9e0_present = false; + bool non_crit_ext_present = false; + rlf_report_v9e0_s rlf_report_v9e0; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + } // namespace rrc } // namespace asn1 diff --git a/lib/include/srslte/asn1/rrc_nbiot.h b/lib/include/srslte/asn1/rrc_nbiot.h index 3ea7b1cd8..a8f8a4009 100644 --- a/lib/include/srslte/asn1/rrc_nbiot.h +++ b/lib/include/srslte/asn1/rrc_nbiot.h @@ -342,11 +342,14 @@ struct dl_carrier_cfg_ded_nb_r13_s { assert_choice_type("explicitBitmapConfiguration-r13", type_.to_string(), "downlinkBitmapNonAnchor-r13"); return c; } + void set_use_no_bitmap_r13() { set(types::use_no_bitmap_r13); } + void set_use_anchor_bitmap_r13() { set(types::use_anchor_bitmap_r13); } dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r13() { set(types::explicit_bitmap_cfg_r13); return c; } + void set_spare() { set(types::spare); } private: types type_; @@ -378,11 +381,14 @@ struct dl_carrier_cfg_ded_nb_r13_s { assert_choice_type("explicitGapConfiguration-r13", type_.to_string(), "dl-GapNonAnchor-r13"); return c; } + void set_use_no_gap_r13() { set(types::use_no_gap_r13); } + void set_use_anchor_gap_cfg_r13() { set(types::use_anchor_gap_cfg_r13); } dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r13() { set(types::explicit_gap_cfg_r13); return c; } + void set_spare() { set(types::spare); } private: types type_; @@ -577,6 +583,7 @@ struct pdcp_cfg_nb_r13_s { assert_choice_type("rohc", type_.to_string(), "headerCompression-r13"); return c; } + void set_not_used() { set(types::not_used); } rohc_s_& set_rohc() { set(types::rohc); @@ -637,6 +644,9 @@ struct rlc_cfg_nb_r13_c { set(types::am); return c; } + void set_um_bi_dir_r15() { set(types::um_bi_dir_r15); } + void set_um_uni_dir_ul_r15() { set(types::um_uni_dir_ul_r15); } + void set_um_uni_dir_dl_r15() { set(types::um_uni_dir_dl_r15); } private: types type_; @@ -915,6 +925,7 @@ struct drx_cfg_nb_r13_c { assert_choice_type("setup", type_.to_string(), "DRX-Config-NB-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1074,6 +1085,7 @@ struct sr_sps_bsr_cfg_nb_r15_c { assert_choice_type("setup", type_.to_string(), "SR-SPS-BSR-Config-NB-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1113,6 +1125,7 @@ struct sr_without_harq_ack_cfg_nb_r15_c { assert_choice_type("setup", type_.to_string(), "SR-WithoutHARQ-ACK-Config-NB-r15"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1157,6 +1170,7 @@ struct srb_to_add_mod_nb_r13_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -1193,6 +1207,7 @@ struct srb_to_add_mod_nb_r13_s { set(types::explicit_value); return c; } + void set_default_value() { set(types::default_value); } private: types type_; @@ -1272,6 +1287,7 @@ struct mac_main_cfg_nb_r13_s { assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1306,6 +1322,7 @@ struct mac_main_cfg_nb_r13_s { assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1487,6 +1504,7 @@ struct rlf_timers_and_consts_nb_r13_c { assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-NB-r13"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -1550,6 +1568,7 @@ struct rr_cfg_ded_nb_r13_s { set(types::explicit_value_r13); return c; } + void set_default_value_r13() { set(types::default_value_r13); } private: types type_; @@ -2997,6 +3016,8 @@ struct dl_carrier_cfg_common_nb_r14_s { assert_choice_type("explicitBitmapConfiguration-r14", type_.to_string(), "downlinkBitmapNonAnchor-r14"); return c; } + void set_use_no_bitmap_r14() { set(types::use_no_bitmap_r14); } + void set_use_anchor_bitmap_r14() { set(types::use_anchor_bitmap_r14); } dl_bitmap_nb_r13_c& set_explicit_bitmap_cfg_r14() { set(types::explicit_bitmap_cfg_r14); @@ -3033,6 +3054,8 @@ struct dl_carrier_cfg_common_nb_r14_s { assert_choice_type("explicitGapConfiguration-r14", type_.to_string(), "dl-GapNonAnchor-r14"); return c; } + void set_use_no_gap_r14() { set(types::use_no_gap_r14); } + void set_use_anchor_gap_cfg_r14() { set(types::use_anchor_gap_cfg_r14); } dl_gap_cfg_nb_r13_s& set_explicit_gap_cfg_r14() { set(types::explicit_gap_cfg_r14); @@ -5459,9 +5482,6 @@ struct sys_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5471,24 +5491,23 @@ struct sys_info_nb_s { sys_info_nb_r13_ies_s& sys_info_r13() { assert_choice_type("systemInformation-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const sys_info_nb_r13_ies_s& sys_info_r13() const { assert_choice_type("systemInformation-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } sys_info_nb_r13_ies_s& set_sys_info_r13() { set(types::sys_info_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + sys_info_nb_r13_ies_s c; }; // member variables @@ -5676,9 +5695,6 @@ struct bcch_dl_sch_msg_type_nb_c { // choice methods bcch_dl_sch_msg_type_nb_c() = default; - bcch_dl_sch_msg_type_nb_c(const bcch_dl_sch_msg_type_nb_c& other); - bcch_dl_sch_msg_type_nb_c& operator=(const bcch_dl_sch_msg_type_nb_c& other); - ~bcch_dl_sch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5688,24 +5704,23 @@ struct bcch_dl_sch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // BCCH-DL-SCH-Message-NB ::= SEQUENCE @@ -5887,6 +5902,7 @@ struct rrc_conn_reest_nb_s { set(types::rrc_conn_reest_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5896,9 +5912,6 @@ struct rrc_conn_reest_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5908,24 +5921,23 @@ struct rrc_conn_reest_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -5972,6 +5984,7 @@ struct rrc_conn_reject_nb_s { set(types::rrc_conn_reject_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -5981,9 +5994,6 @@ struct rrc_conn_reject_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -5993,24 +6003,23 @@ struct rrc_conn_reject_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6056,6 +6065,7 @@ struct rrc_conn_setup_nb_s { set(types::rrc_conn_setup_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6065,9 +6075,6 @@ struct rrc_conn_setup_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6077,24 +6084,23 @@ struct rrc_conn_setup_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6119,9 +6125,6 @@ struct rrc_early_data_complete_nb_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6131,24 +6134,23 @@ struct rrc_early_data_complete_nb_r15_s { rrc_early_data_complete_nb_r15_ies_s& rrc_early_data_complete_r15() { assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_early_data_complete_nb_r15_ies_s& rrc_early_data_complete_r15() const { assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_early_data_complete_nb_r15_ies_s& set_rrc_early_data_complete_r15() { set(types::rrc_early_data_complete_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_early_data_complete_nb_r15_ies_s c; }; // member variables @@ -6266,6 +6268,9 @@ struct dl_ccch_msg_type_nb_c { set(types::rrc_early_data_complete_r15); return c.get(); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6289,9 +6294,6 @@ struct dl_ccch_msg_type_nb_c { // choice methods dl_ccch_msg_type_nb_c() = default; - dl_ccch_msg_type_nb_c(const dl_ccch_msg_type_nb_c& other); - dl_ccch_msg_type_nb_c& operator=(const dl_ccch_msg_type_nb_c& other); - ~dl_ccch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6301,24 +6303,23 @@ struct dl_ccch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // DL-CCCH-Message-NB ::= SEQUENCE @@ -6510,6 +6511,7 @@ struct dl_info_transfer_nb_s { set(types::dl_info_transfer_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6519,9 +6521,6 @@ struct dl_info_transfer_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6531,24 +6530,23 @@ struct dl_info_transfer_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6595,6 +6593,7 @@ struct rrc_conn_recfg_nb_s { set(types::rrc_conn_recfg_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6604,9 +6603,6 @@ struct rrc_conn_recfg_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6616,24 +6612,23 @@ struct rrc_conn_recfg_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6680,6 +6675,7 @@ struct rrc_conn_release_nb_s { set(types::rrc_conn_release_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6689,9 +6685,6 @@ struct rrc_conn_release_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6701,24 +6694,23 @@ struct rrc_conn_release_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6765,6 +6757,7 @@ struct rrc_conn_resume_nb_s { set(types::rrc_conn_resume_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6774,9 +6767,6 @@ struct rrc_conn_resume_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6786,24 +6776,23 @@ struct rrc_conn_resume_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -6850,6 +6839,7 @@ struct ue_cap_enquiry_nb_s { set(types::ue_cap_enquiry_r13); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -6859,9 +6849,6 @@ struct ue_cap_enquiry_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -6871,24 +6858,23 @@ struct ue_cap_enquiry_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -7022,6 +7008,8 @@ struct dl_dcch_msg_type_nb_c { set(types::rrc_conn_resume_r13); return c.get(); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -7046,9 +7034,6 @@ struct dl_dcch_msg_type_nb_c { // choice methods dl_dcch_msg_type_nb_c() = default; - dl_dcch_msg_type_nb_c(const dl_dcch_msg_type_nb_c& other); - dl_dcch_msg_type_nb_c& operator=(const dl_dcch_msg_type_nb_c& other); - ~dl_dcch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7058,24 +7043,23 @@ struct dl_dcch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // DL-DCCH-Message-NB ::= SEQUENCE @@ -7088,142 +7072,6 @@ struct dl_dcch_msg_nb_s { void to_json(json_writer& j) const; }; -// PhyLayerParameters-NB-r13 ::= SEQUENCE -struct phy_layer_params_nb_r13_s { - bool multi_tone_r13_present = false; - bool multi_carrier_r13_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PhyLayerParameters-NB-v1430 ::= SEQUENCE -struct phy_layer_params_nb_v1430_s { - bool multi_carrier_nprach_r14_present = false; - bool two_harq_processes_r14_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PhyLayerParameters-NB-v1530 ::= SEQUENCE -struct phy_layer_params_nb_v1530_s { - bool mixed_operation_mode_r15_present = false; - bool sr_with_harq_ack_r15_present = false; - bool sr_without_harq_ack_r15_present = false; - bool nprach_format2_r15_present = false; - bool add_tx_sib1_r15_present = false; - bool npusch_minus3dot75k_hz_scs_tdd_r15_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// MAC-Parameters-NB-v1530 ::= SEQUENCE -struct mac_params_nb_v1530_s { - bool sr_sps_bsr_r15_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// RLC-Parameters-NB-r15 ::= SEQUENCE -struct rlc_params_nb_r15_s { - bool rlc_um_r15_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// TDD-UE-Capability-NB-r15 ::= SEQUENCE -struct tdd_ue_cap_nb_r15_s { - bool ext = false; - bool ue_category_nb_r15_present = false; - bool phy_layer_params_rel13_r15_present = false; - bool phy_layer_params_rel14_r15_present = false; - bool phy_layer_params_v1530_present = false; - phy_layer_params_nb_r13_s phy_layer_params_rel13_r15; - phy_layer_params_nb_v1430_s phy_layer_params_rel14_r15; - phy_layer_params_nb_v1530_s phy_layer_params_v1530; - // ... - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-Capability-NB-v1530-IEs ::= SEQUENCE -struct ue_cap_nb_v1530_ies_s { - bool early_data_up_r15_present = false; - bool phy_layer_params_v1530_present = false; - bool tdd_ue_cap_r15_present = false; - bool non_crit_ext_present = false; - rlc_params_nb_r15_s rlc_params_r15; - mac_params_nb_v1530_s mac_params_v1530; - phy_layer_params_nb_v1530_s phy_layer_params_v1530; - tdd_ue_cap_nb_r15_s tdd_ue_cap_r15; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// PhyLayerParameters-NB-v1440 ::= SEQUENCE -struct phy_layer_params_nb_v1440_s { - bool interference_randomisation_r14_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// UE-Capability-NB-v14x0-IEs ::= SEQUENCE -struct ue_cap_nb_v14x0_ies_s { - bool late_non_crit_ext_present = false; - bool non_crit_ext_present = false; - dyn_octstring late_non_crit_ext; - ue_cap_nb_v1530_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// MAC-Parameters-NB-r14 ::= SEQUENCE -struct mac_params_nb_r14_s { - bool data_inact_mon_r14_present = false; - bool rai_support_r14_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - -// RF-Parameters-NB-v1430 ::= SEQUENCE -struct rf_params_nb_v1430_s { - bool pwr_class_nb_minus14dbm_r14_present = false; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SupportedBand-NB-r13 ::= SEQUENCE struct supported_band_nb_r13_s { bool pwr_class_nb_minus20dbm_r13_present = false; @@ -7235,39 +7083,9 @@ struct supported_band_nb_r13_s { void to_json(json_writer& j) const; }; -// UE-Capability-NB-v1440-IEs ::= SEQUENCE -struct ue_cap_nb_v1440_ies_s { - bool phy_layer_params_v1440_present = false; - bool non_crit_ext_present = false; - phy_layer_params_nb_v1440_s phy_layer_params_v1440; - ue_cap_nb_v14x0_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // SupportedBandList-NB-r13 ::= SEQUENCE (SIZE (1..64)) OF SupportedBand-NB-r13 using supported_band_list_nb_r13_l = dyn_array; -// UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE -struct ue_cap_nb_ext_r14_ies_s { - bool ue_category_nb_r14_present = false; - bool mac_params_r14_present = false; - bool phy_layer_params_v1430_present = false; - bool non_crit_ext_present = false; - mac_params_nb_r14_s mac_params_r14; - phy_layer_params_nb_v1430_s phy_layer_params_v1430; - rf_params_nb_v1430_s rf_params_v1430; - ue_cap_nb_v1440_ies_s non_crit_ext; - - // sequence methods - SRSASN_CODE pack(bit_ref& bref) const; - SRSASN_CODE unpack(cbit_ref& bref); - void to_json(json_writer& j) const; -}; - // AccessStratumRelease-NB-r13 ::= ENUMERATED struct access_stratum_release_nb_r13_opts { enum options { rel13, rel14, rel15, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value; @@ -7323,6 +7141,17 @@ struct pdcp_params_nb_r13_s { void to_json(json_writer& j) const; }; +// PhyLayerParameters-NB-r13 ::= SEQUENCE +struct phy_layer_params_nb_r13_s { + bool multi_tone_r13_present = false; + bool multi_carrier_r13_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // RF-Parameters-NB-r13 ::= SEQUENCE struct rf_params_nb_r13_s { bool multi_ns_pmax_r13_present = false; @@ -7502,6 +7331,9 @@ struct ho_prep_info_nb_s { set(types::ho_prep_info_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -7511,9 +7343,6 @@ struct ho_prep_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7523,24 +7352,23 @@ struct ho_prep_info_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -7625,9 +7453,6 @@ struct pcch_msg_type_nb_c { // choice methods pcch_msg_type_nb_c() = default; - pcch_msg_type_nb_c(const pcch_msg_type_nb_c& other); - pcch_msg_type_nb_c& operator=(const pcch_msg_type_nb_c& other); - ~pcch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7637,24 +7462,23 @@ struct pcch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // PCCH-Message-NB ::= SEQUENCE @@ -7703,9 +7527,6 @@ struct rrc_conn_recfg_complete_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7715,24 +7536,23 @@ struct rrc_conn_recfg_complete_nb_s { rrc_conn_recfg_complete_nb_r13_ies_s& rrc_conn_recfg_complete_r13() { assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_recfg_complete_nb_r13_ies_s& rrc_conn_recfg_complete_r13() const { assert_choice_type("rrcConnectionReconfigurationComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_recfg_complete_nb_r13_ies_s& set_rrc_conn_recfg_complete_r13() { set(types::rrc_conn_recfg_complete_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_recfg_complete_nb_r13_ies_s c; }; // member variables @@ -7782,9 +7602,6 @@ struct rrc_conn_reest_complete_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7794,24 +7611,23 @@ struct rrc_conn_reest_complete_nb_s { rrc_conn_reest_complete_nb_r13_ies_s& rrc_conn_reest_complete_r13() { assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_reest_complete_nb_r13_ies_s& rrc_conn_reest_complete_r13() const { assert_choice_type("rrcConnectionReestablishmentComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_reest_complete_nb_r13_ies_s& set_rrc_conn_reest_complete_r13() { set(types::rrc_conn_reest_complete_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_reest_complete_nb_r13_ies_s c; }; // member variables @@ -7918,9 +7734,6 @@ struct rrc_conn_reest_request_nb_s { // choice methods later_c_() = default; - later_c_(const later_c_& other); - later_c_& operator=(const later_c_& other); - ~later_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7930,24 +7743,23 @@ struct rrc_conn_reest_request_nb_s { rrc_conn_reest_request_nb_r14_ies_s& rrc_conn_reest_request_r14() { assert_choice_type("rrcConnectionReestablishmentRequest-r14", type_.to_string(), "later"); - return c.get(); + return c; } const rrc_conn_reest_request_nb_r14_ies_s& rrc_conn_reest_request_r14() const { assert_choice_type("rrcConnectionReestablishmentRequest-r14", type_.to_string(), "later"); - return c.get(); + return c; } rrc_conn_reest_request_nb_r14_ies_s& set_rrc_conn_reest_request_r14() { set(types::rrc_conn_reest_request_r14); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_reest_request_nb_r14_ies_s c; }; struct types_opts { enum options { rrc_conn_reest_request_r13, later, nulltype } value; @@ -8059,10 +7871,7 @@ struct rrc_conn_request_nb_s { typedef enumerated types; // choice methods - crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } + crit_exts_c_() = default; void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8072,24 +7881,23 @@ struct rrc_conn_request_nb_s { rrc_conn_request_nb_r13_ies_s& rrc_conn_request_r13() { assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_request_nb_r13_ies_s& rrc_conn_request_r13() const { assert_choice_type("rrcConnectionRequest-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_request_nb_r13_ies_s& set_rrc_conn_request_r13() { set(types::rrc_conn_request_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_request_nb_r13_ies_s c; }; // member variables @@ -8142,9 +7950,6 @@ struct rrc_conn_resume_complete_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8154,24 +7959,23 @@ struct rrc_conn_resume_complete_nb_s { rrc_conn_resume_complete_nb_r13_ies_s& rrc_conn_resume_complete_r13() { assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_resume_complete_nb_r13_ies_s& rrc_conn_resume_complete_r13() const { assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_resume_complete_nb_r13_ies_s& set_rrc_conn_resume_complete_r13() { set(types::rrc_conn_resume_complete_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_resume_complete_nb_r13_ies_s c; }; // member variables @@ -8211,9 +8015,6 @@ struct rrc_conn_resume_request_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8223,24 +8024,23 @@ struct rrc_conn_resume_request_nb_s { rrc_conn_resume_request_nb_r13_ies_s& rrc_conn_resume_request_r13() { assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_resume_request_nb_r13_ies_s& rrc_conn_resume_request_r13() const { assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_resume_request_nb_r13_ies_s& set_rrc_conn_resume_request_r13() { set(types::rrc_conn_resume_request_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_resume_request_nb_r13_ies_s c; }; // member variables @@ -8311,9 +8111,6 @@ struct rrc_conn_setup_complete_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8323,24 +8120,23 @@ struct rrc_conn_setup_complete_nb_s { rrc_conn_setup_complete_nb_r13_ies_s& rrc_conn_setup_complete_r13() { assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_conn_setup_complete_nb_r13_ies_s& rrc_conn_setup_complete_r13() const { assert_choice_type("rrcConnectionSetupComplete-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_conn_setup_complete_nb_r13_ies_s& set_rrc_conn_setup_complete_r13() { set(types::rrc_conn_setup_complete_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_conn_setup_complete_nb_r13_ies_s c; }; // member variables @@ -8401,9 +8197,6 @@ struct rrc_early_data_request_nb_r15_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8413,24 +8206,23 @@ struct rrc_early_data_request_nb_r15_s { rrc_early_data_request_nb_r15_ies_s& rrc_early_data_request_r15() { assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_early_data_request_nb_r15_ies_s& rrc_early_data_request_r15() const { assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_early_data_request_nb_r15_ies_s& set_rrc_early_data_request_r15() { set(types::rrc_early_data_request_r15); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_early_data_request_nb_r15_ies_s c; }; // member variables @@ -8956,9 +8748,6 @@ struct sc_mcch_msg_type_nb_c { // choice methods sc_mcch_msg_type_nb_c() = default; - sc_mcch_msg_type_nb_c(const sc_mcch_msg_type_nb_c& other); - sc_mcch_msg_type_nb_c& operator=(const sc_mcch_msg_type_nb_c& other); - ~sc_mcch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8968,24 +8757,23 @@ struct sc_mcch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // SC-MCCH-Message-NB ::= SEQUENCE @@ -8998,6 +8786,161 @@ struct sc_mcch_msg_nb_s { void to_json(json_writer& j) const; }; +// PhyLayerParameters-NB-v1430 ::= SEQUENCE +struct phy_layer_params_nb_v1430_s { + bool multi_carrier_nprach_r14_present = false; + bool two_harq_processes_r14_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PhyLayerParameters-NB-v1530 ::= SEQUENCE +struct phy_layer_params_nb_v1530_s { + bool mixed_operation_mode_r15_present = false; + bool sr_with_harq_ack_r15_present = false; + bool sr_without_harq_ack_r15_present = false; + bool nprach_format2_r15_present = false; + bool add_tx_sib1_r15_present = false; + bool npusch_minus3dot75k_hz_scs_tdd_r15_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// TDD-UE-Capability-NB-r15 ::= SEQUENCE +struct tdd_ue_cap_nb_r15_s { + bool ext = false; + bool ue_category_nb_r15_present = false; + bool phy_layer_params_rel13_r15_present = false; + bool phy_layer_params_rel14_r15_present = false; + bool phy_layer_params_v1530_present = false; + phy_layer_params_nb_r13_s phy_layer_params_rel13_r15; + phy_layer_params_nb_v1430_s phy_layer_params_rel14_r15; + phy_layer_params_nb_v1530_s phy_layer_params_v1530; + // ... + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MAC-Parameters-NB-v1530 ::= SEQUENCE +struct mac_params_nb_v1530_s { + bool sr_sps_bsr_r15_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RLC-Parameters-NB-r15 ::= SEQUENCE +struct rlc_params_nb_r15_s { + bool rlc_um_r15_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-Capability-NB-v1530-IEs ::= SEQUENCE +struct ue_cap_nb_v1530_ies_s { + bool early_data_up_r15_present = false; + bool phy_layer_params_v1530_present = false; + bool tdd_ue_cap_r15_present = false; + bool non_crit_ext_present = false; + rlc_params_nb_r15_s rlc_params_r15; + mac_params_nb_v1530_s mac_params_v1530; + phy_layer_params_nb_v1530_s phy_layer_params_v1530; + tdd_ue_cap_nb_r15_s tdd_ue_cap_r15; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// PhyLayerParameters-NB-v1440 ::= SEQUENCE +struct phy_layer_params_nb_v1440_s { + bool interference_randomisation_r14_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-Capability-NB-v14x0-IEs ::= SEQUENCE +struct ue_cap_nb_v14x0_ies_s { + bool late_non_crit_ext_present = false; + bool non_crit_ext_present = false; + dyn_octstring late_non_crit_ext; + ue_cap_nb_v1530_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// MAC-Parameters-NB-r14 ::= SEQUENCE +struct mac_params_nb_r14_s { + bool data_inact_mon_r14_present = false; + bool rai_support_r14_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// RF-Parameters-NB-v1430 ::= SEQUENCE +struct rf_params_nb_v1430_s { + bool pwr_class_nb_minus14dbm_r14_present = false; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-Capability-NB-v1440-IEs ::= SEQUENCE +struct ue_cap_nb_v1440_ies_s { + bool phy_layer_params_v1440_present = false; + bool non_crit_ext_present = false; + phy_layer_params_nb_v1440_s phy_layer_params_v1440; + ue_cap_nb_v14x0_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + +// UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE +struct ue_cap_nb_ext_r14_ies_s { + bool ue_category_nb_r14_present = false; + bool mac_params_r14_present = false; + bool phy_layer_params_v1430_present = false; + bool non_crit_ext_present = false; + mac_params_nb_r14_s mac_params_r14; + phy_layer_params_nb_v1430_s phy_layer_params_v1430; + rf_params_nb_v1430_s rf_params_v1430; + ue_cap_nb_v1440_ies_s non_crit_ext; + + // sequence methods + SRSASN_CODE pack(bit_ref& bref) const; + SRSASN_CODE unpack(cbit_ref& bref); + void to_json(json_writer& j) const; +}; + // UE-RadioPagingInfo-NB-r13 ::= SEQUENCE struct ue_radio_paging_info_nb_r13_s { struct wake_up_signal_min_gap_e_drx_r15_opts { @@ -9066,9 +9009,6 @@ struct ue_cap_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9078,24 +9018,23 @@ struct ue_cap_info_nb_s { ue_cap_info_nb_r13_ies_s& ue_cap_info_r13() { assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ue_cap_info_nb_r13_ies_s& ue_cap_info_r13() const { assert_choice_type("ueCapabilityInformation-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ue_cap_info_nb_r13_ies_s& set_ue_cap_info_r13() { set(types::ue_cap_info_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ue_cap_info_nb_r13_ies_s c; }; // member variables @@ -9154,6 +9093,9 @@ struct ue_paging_coverage_info_nb_s { set(types::ue_paging_coverage_info_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -9163,9 +9105,6 @@ struct ue_paging_coverage_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9175,24 +9114,23 @@ struct ue_paging_coverage_info_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -9275,6 +9213,9 @@ struct ue_radio_access_cap_info_nb_s { set(types::ue_radio_access_cap_info_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -9284,9 +9225,6 @@ struct ue_radio_access_cap_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9296,24 +9234,23 @@ struct ue_radio_access_cap_info_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -9370,6 +9307,9 @@ struct ue_radio_paging_info_nb_s { set(types::ue_radio_paging_info_r13); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -9379,9 +9319,6 @@ struct ue_radio_paging_info_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9391,24 +9328,23 @@ struct ue_radio_paging_info_nb_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -9529,9 +9465,6 @@ struct ul_ccch_msg_type_nb_c { // choice methods ul_ccch_msg_type_nb_c() = default; - ul_ccch_msg_type_nb_c(const ul_ccch_msg_type_nb_c& other); - ul_ccch_msg_type_nb_c& operator=(const ul_ccch_msg_type_nb_c& other); - ~ul_ccch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9541,24 +9474,23 @@ struct ul_ccch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // UL-CCCH-Message-NB ::= SEQUENCE @@ -9596,9 +9528,6 @@ struct ul_info_transfer_nb_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9608,24 +9537,23 @@ struct ul_info_transfer_nb_s { ul_info_transfer_nb_r13_ies_s& ul_info_transfer_r13() { assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ul_info_transfer_nb_r13_ies_s& ul_info_transfer_r13() const { assert_choice_type("ulInformationTransfer-r13", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ul_info_transfer_nb_r13_ies_s& set_ul_info_transfer_r13() { set(types::ul_info_transfer_r13); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ul_info_transfer_nb_r13_ies_s c; }; // member variables @@ -9796,6 +9724,14 @@ struct ul_dcch_msg_type_nb_c { set(types::rrc_conn_resume_complete_r13); return c.get(); } + void set_spare8() { set(types::spare8); } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -9822,9 +9758,6 @@ struct ul_dcch_msg_type_nb_c { // choice methods ul_dcch_msg_type_nb_c() = default; - ul_dcch_msg_type_nb_c(const ul_dcch_msg_type_nb_c& other); - ul_dcch_msg_type_nb_c& operator=(const ul_dcch_msg_type_nb_c& other); - ~ul_dcch_msg_type_nb_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -9834,24 +9767,23 @@ struct ul_dcch_msg_type_nb_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType-NB"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType-NB"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // UL-DCCH-Message-NB ::= SEQUENCE diff --git a/lib/include/srslte/asn1/rrc_nr.h b/lib/include/srslte/asn1/rrc_nr.h index 393395355..54a1e7133 100644 --- a/lib/include/srslte/asn1/rrc_nr.h +++ b/lib/include/srslte/asn1/rrc_nr.h @@ -268,9 +268,6 @@ struct bcch_bch_msg_type_c { // choice methods bcch_bch_msg_type_c() = default; - bcch_bch_msg_type_c(const bcch_bch_msg_type_c& other); - bcch_bch_msg_type_c& operator=(const bcch_bch_msg_type_c& other); - ~bcch_bch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -280,24 +277,23 @@ struct bcch_bch_msg_type_c { mib_s& mib() { assert_choice_type("mib", type_.to_string(), "BCCH-BCH-MessageType"); - return c.get(); + return c; } const mib_s& mib() const { assert_choice_type("mib", type_.to_string(), "BCCH-BCH-MessageType"); - return c.get(); + return c; } mib_s& set_mib() { set(types::mib); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + mib_s c; }; // BCCH-BCH-Message ::= SEQUENCE @@ -676,6 +672,7 @@ struct ctrl_res_set_s { set(types::interleaved); return c; } + void set_non_interleaved() { set(types::non_interleaved); } private: types type_; @@ -1208,6 +1205,7 @@ struct search_space_s { assert_choice_type("sl2560", type_.to_string(), "monitoringSlotPeriodicityAndOffset"); return c.get(); } + void set_sl1() { set(types::sl1); } uint8_t& set_sl2() { set(types::sl2); @@ -2448,6 +2446,7 @@ struct setup_release_c { assert_choice_type("setup", type_.to_string(), "SetupRelease"); return c; } + void set_release() { set(types::release); } elem_type_paramT_& set_setup() { set(types::setup); @@ -2670,6 +2669,7 @@ struct pcch_cfg_s { assert_choice_type("oneSixteenthT", type_.to_string(), "nAndPagingFrameOffset"); return c.get(); } + void set_one_t() { set(types::one_t); } uint8_t& set_half_t() { set(types::half_t); @@ -4005,9 +4005,6 @@ struct sys_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4017,24 +4014,23 @@ struct sys_info_s { sys_info_ies_s& sys_info() { assert_choice_type("systemInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const sys_info_ies_s& sys_info() const { assert_choice_type("systemInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } sys_info_ies_s& set_sys_info() { set(types::sys_info); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + sys_info_ies_s c; }; // member variables @@ -4117,9 +4113,6 @@ struct bcch_dl_sch_msg_type_c { // choice methods bcch_dl_sch_msg_type_c() = default; - bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other); - bcch_dl_sch_msg_type_c& operator=(const bcch_dl_sch_msg_type_c& other); - ~bcch_dl_sch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4129,24 +4122,23 @@ struct bcch_dl_sch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // BCCH-DL-SCH-Message ::= SEQUENCE @@ -4337,6 +4329,7 @@ struct pdcp_cfg_s { assert_choice_type("uplinkOnlyROHC", type_.to_string(), "headerCompression"); return c.get(); } + void set_not_used() { set(types::not_used); } rohc_s_& set_rohc() { set(types::rohc); @@ -4708,9 +4701,6 @@ struct rrc_reject_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4720,24 +4710,23 @@ struct rrc_reject_s { rrc_reject_ies_s& rrc_reject() { assert_choice_type("rrcReject", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_reject_ies_s& rrc_reject() const { assert_choice_type("rrcReject", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_reject_ies_s& set_rrc_reject() { set(types::rrc_reject); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_reject_ies_s c; }; // member variables @@ -4761,9 +4750,6 @@ struct rrc_setup_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4773,24 +4759,23 @@ struct rrc_setup_s { rrc_setup_ies_s& rrc_setup() { assert_choice_type("rrcSetup", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_setup_ies_s& rrc_setup() const { assert_choice_type("rrcSetup", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_setup_ies_s& set_rrc_setup() { set(types::rrc_setup); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_setup_ies_s c; }; // member variables @@ -4854,6 +4839,8 @@ struct dl_ccch_msg_type_c { set(types::rrc_setup); return c.get(); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -4872,9 +4859,6 @@ struct dl_ccch_msg_type_c { // choice methods dl_ccch_msg_type_c() = default; - dl_ccch_msg_type_c(const dl_ccch_msg_type_c& other); - dl_ccch_msg_type_c& operator=(const dl_ccch_msg_type_c& other); - ~dl_ccch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -4884,24 +4868,23 @@ struct dl_ccch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // DL-CCCH-Message ::= SEQUENCE @@ -6915,6 +6898,7 @@ struct other_cfg_s { assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig"); return c; } + void set_release() { set(types::release); } setup_s_& set_setup() { set(types::setup); @@ -7526,9 +7510,6 @@ struct counter_check_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7538,24 +7519,23 @@ struct counter_check_s { counter_check_ies_s& counter_check() { assert_choice_type("counterCheck", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const counter_check_ies_s& counter_check() const { assert_choice_type("counterCheck", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } counter_check_ies_s& set_counter_check() { set(types::counter_check); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + counter_check_ies_s c; }; // member variables @@ -7580,9 +7560,6 @@ struct dl_info_transfer_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7592,24 +7569,23 @@ struct dl_info_transfer_s { dl_info_transfer_ies_s& dl_info_transfer() { assert_choice_type("dlInformationTransfer", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const dl_info_transfer_ies_s& dl_info_transfer() const { assert_choice_type("dlInformationTransfer", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } dl_info_transfer_ies_s& set_dl_info_transfer() { set(types::dl_info_transfer); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + dl_info_transfer_ies_s c; }; // member variables @@ -7634,9 +7610,6 @@ struct mob_from_nr_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7646,24 +7619,23 @@ struct mob_from_nr_cmd_s { mob_from_nr_cmd_ies_s& mob_from_nr_cmd() { assert_choice_type("mobilityFromNRCommand", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const mob_from_nr_cmd_ies_s& mob_from_nr_cmd() const { assert_choice_type("mobilityFromNRCommand", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } mob_from_nr_cmd_ies_s& set_mob_from_nr_cmd() { set(types::mob_from_nr_cmd); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + mob_from_nr_cmd_ies_s c; }; // member variables @@ -7688,9 +7660,6 @@ struct rrc_recfg_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7700,24 +7669,23 @@ struct rrc_recfg_s { rrc_recfg_ies_s& rrc_recfg() { assert_choice_type("rrcReconfiguration", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_recfg_ies_s& rrc_recfg() const { assert_choice_type("rrcReconfiguration", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_recfg_ies_s& set_rrc_recfg() { set(types::rrc_recfg); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_recfg_ies_s c; }; // member variables @@ -7742,9 +7710,6 @@ struct rrc_reest_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7754,24 +7719,23 @@ struct rrc_reest_s { rrc_reest_ies_s& rrc_reest() { assert_choice_type("rrcReestablishment", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_reest_ies_s& rrc_reest() const { assert_choice_type("rrcReestablishment", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_reest_ies_s& set_rrc_reest() { set(types::rrc_reest); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_reest_ies_s c; }; // member variables @@ -7796,9 +7760,6 @@ struct rrc_release_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7808,24 +7769,23 @@ struct rrc_release_s { rrc_release_ies_s& rrc_release() { assert_choice_type("rrcRelease", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_release_ies_s& rrc_release() const { assert_choice_type("rrcRelease", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_release_ies_s& set_rrc_release() { set(types::rrc_release); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_release_ies_s c; }; // member variables @@ -7850,9 +7810,6 @@ struct rrc_resume_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7862,24 +7819,23 @@ struct rrc_resume_s { rrc_resume_ies_s& rrc_resume() { assert_choice_type("rrcResume", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_resume_ies_s& rrc_resume() const { assert_choice_type("rrcResume", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_resume_ies_s& set_rrc_resume() { set(types::rrc_resume); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_resume_ies_s c; }; // member variables @@ -7904,9 +7860,6 @@ struct security_mode_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7916,24 +7869,23 @@ struct security_mode_cmd_s { security_mode_cmd_ies_s& security_mode_cmd() { assert_choice_type("securityModeCommand", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const security_mode_cmd_ies_s& security_mode_cmd() const { assert_choice_type("securityModeCommand", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } security_mode_cmd_ies_s& set_security_mode_cmd() { set(types::security_mode_cmd); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + security_mode_cmd_ies_s c; }; // member variables @@ -7958,9 +7910,6 @@ struct ue_cap_enquiry_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -7970,24 +7919,23 @@ struct ue_cap_enquiry_s { ue_cap_enquiry_ies_s& ue_cap_enquiry() { assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ue_cap_enquiry_ies_s& ue_cap_enquiry() const { assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ue_cap_enquiry_ies_s& set_ue_cap_enquiry() { set(types::ue_cap_enquiry); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ue_cap_enquiry_ies_s c; }; // member variables @@ -8174,6 +8122,13 @@ struct dl_dcch_msg_type_c { set(types::mob_from_nr_cmd); return c.get(); } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -8201,9 +8156,6 @@ struct dl_dcch_msg_type_c { // choice methods dl_dcch_msg_type_c() = default; - dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other); - dl_dcch_msg_type_c& operator=(const dl_dcch_msg_type_c& other); - ~dl_dcch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8213,24 +8165,23 @@ struct dl_dcch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // DL-DCCH-Message ::= SEQUENCE @@ -8366,6 +8317,7 @@ struct pcch_msg_type_c { set(types::paging); return c; } + void set_spare1() { set(types::spare1); } private: types type_; @@ -8382,9 +8334,6 @@ struct pcch_msg_type_c { // choice methods pcch_msg_type_c() = default; - pcch_msg_type_c(const pcch_msg_type_c& other); - pcch_msg_type_c& operator=(const pcch_msg_type_c& other); - ~pcch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8394,24 +8343,23 @@ struct pcch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "PCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // PCCH-Message ::= SEQUENCE @@ -8646,9 +8594,6 @@ struct rrc_sys_info_request_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8658,24 +8603,23 @@ struct rrc_sys_info_request_s { rrc_sys_info_request_ies_s& rrc_sys_info_request() { assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_sys_info_request_ies_s& rrc_sys_info_request() const { assert_choice_type("rrcSystemInfoRequest", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_sys_info_request_ies_s& set_rrc_sys_info_request() { set(types::rrc_sys_info_request); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_sys_info_request_ies_s c; }; // member variables @@ -8786,9 +8730,6 @@ struct ul_ccch_msg_type_c { // choice methods ul_ccch_msg_type_c() = default; - ul_ccch_msg_type_c(const ul_ccch_msg_type_c& other); - ul_ccch_msg_type_c& operator=(const ul_ccch_msg_type_c& other); - ~ul_ccch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8798,24 +8739,23 @@ struct ul_ccch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // UL-CCCH-Message ::= SEQUENCE @@ -8886,6 +8826,9 @@ struct ul_ccch1_msg_type_c { set(types::rrc_resume_request1); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -8902,9 +8845,6 @@ struct ul_ccch1_msg_type_c { // choice methods ul_ccch1_msg_type_c() = default; - ul_ccch1_msg_type_c(const ul_ccch1_msg_type_c& other); - ul_ccch1_msg_type_c& operator=(const ul_ccch1_msg_type_c& other); - ~ul_ccch1_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -8914,24 +8854,23 @@ struct ul_ccch1_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "UL-CCCH1-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "UL-CCCH1-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // UL-CCCH1-Message ::= SEQUENCE @@ -9771,6 +9710,7 @@ struct location_meas_info_c { set(types::eutra_rstd); return c; } + void set_eutra_fine_timing_detection() { set(types::eutra_fine_timing_detection); } private: types type_; @@ -10283,9 +10223,6 @@ struct counter_check_resp_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10295,24 +10232,23 @@ struct counter_check_resp_s { counter_check_resp_ies_s& counter_check_resp() { assert_choice_type("counterCheckResponse", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const counter_check_resp_ies_s& counter_check_resp() const { assert_choice_type("counterCheckResponse", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } counter_check_resp_ies_s& set_counter_check_resp() { set(types::counter_check_resp); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + counter_check_resp_ies_s c; }; // member variables @@ -10337,9 +10273,6 @@ struct fail_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10349,24 +10282,23 @@ struct fail_info_s { fail_info_ies_s& fail_info() { assert_choice_type("failureInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const fail_info_ies_s& fail_info() const { assert_choice_type("failureInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } fail_info_ies_s& set_fail_info() { set(types::fail_info); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + fail_info_ies_s c; }; // member variables @@ -10390,9 +10322,6 @@ struct location_meas_ind_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10402,24 +10331,23 @@ struct location_meas_ind_s { location_meas_ind_ies_s& location_meas_ind() { assert_choice_type("locationMeasurementIndication", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const location_meas_ind_ies_s& location_meas_ind() const { assert_choice_type("locationMeasurementIndication", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } location_meas_ind_ies_s& set_location_meas_ind() { set(types::location_meas_ind); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + location_meas_ind_ies_s c; }; // member variables @@ -10443,9 +10371,6 @@ struct meas_report_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10455,24 +10380,23 @@ struct meas_report_s { meas_report_ies_s& meas_report() { assert_choice_type("measurementReport", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const meas_report_ies_s& meas_report() const { assert_choice_type("measurementReport", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } meas_report_ies_s& set_meas_report() { set(types::meas_report); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + meas_report_ies_s c; }; // member variables @@ -10496,9 +10420,6 @@ struct rrc_recfg_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10508,24 +10429,23 @@ struct rrc_recfg_complete_s { rrc_recfg_complete_ies_s& rrc_recfg_complete() { assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_recfg_complete_ies_s& rrc_recfg_complete() const { assert_choice_type("rrcReconfigurationComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_recfg_complete_ies_s& set_rrc_recfg_complete() { set(types::rrc_recfg_complete); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_recfg_complete_ies_s c; }; // member variables @@ -10550,9 +10470,6 @@ struct rrc_reest_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10562,24 +10479,23 @@ struct rrc_reest_complete_s { rrc_reest_complete_ies_s& rrc_reest_complete() { assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_reest_complete_ies_s& rrc_reest_complete() const { assert_choice_type("rrcReestablishmentComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_reest_complete_ies_s& set_rrc_reest_complete() { set(types::rrc_reest_complete); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_reest_complete_ies_s c; }; // member variables @@ -10604,9 +10520,6 @@ struct rrc_resume_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10616,24 +10529,23 @@ struct rrc_resume_complete_s { rrc_resume_complete_ies_s& rrc_resume_complete() { assert_choice_type("rrcResumeComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_resume_complete_ies_s& rrc_resume_complete() const { assert_choice_type("rrcResumeComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_resume_complete_ies_s& set_rrc_resume_complete() { set(types::rrc_resume_complete); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_resume_complete_ies_s c; }; // member variables @@ -10658,9 +10570,6 @@ struct rrc_setup_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10670,24 +10579,23 @@ struct rrc_setup_complete_s { rrc_setup_complete_ies_s& rrc_setup_complete() { assert_choice_type("rrcSetupComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const rrc_setup_complete_ies_s& rrc_setup_complete() const { assert_choice_type("rrcSetupComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } rrc_setup_complete_ies_s& set_rrc_setup_complete() { set(types::rrc_setup_complete); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + rrc_setup_complete_ies_s c; }; // member variables @@ -10712,9 +10620,6 @@ struct scg_fail_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10724,24 +10629,23 @@ struct scg_fail_info_s { scg_fail_info_ies_s& scg_fail_info() { assert_choice_type("scgFailureInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const scg_fail_info_ies_s& scg_fail_info() const { assert_choice_type("scgFailureInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } scg_fail_info_ies_s& set_scg_fail_info() { set(types::scg_fail_info); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + scg_fail_info_ies_s c; }; // member variables @@ -10765,9 +10669,6 @@ struct scg_fail_info_eutra_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10777,24 +10678,23 @@ struct scg_fail_info_eutra_s { scg_fail_info_eutra_ies_s& scg_fail_info_eutra() { assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const scg_fail_info_eutra_ies_s& scg_fail_info_eutra() const { assert_choice_type("scgFailureInformationEUTRA", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } scg_fail_info_eutra_ies_s& set_scg_fail_info_eutra() { set(types::scg_fail_info_eutra); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + scg_fail_info_eutra_ies_s c; }; // member variables @@ -10818,9 +10718,6 @@ struct security_mode_complete_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10830,24 +10727,23 @@ struct security_mode_complete_s { security_mode_complete_ies_s& security_mode_complete() { assert_choice_type("securityModeComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const security_mode_complete_ies_s& security_mode_complete() const { assert_choice_type("securityModeComplete", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } security_mode_complete_ies_s& set_security_mode_complete() { set(types::security_mode_complete); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + security_mode_complete_ies_s c; }; // member variables @@ -10872,9 +10768,6 @@ struct security_mode_fail_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10884,24 +10777,23 @@ struct security_mode_fail_s { security_mode_fail_ies_s& security_mode_fail() { assert_choice_type("securityModeFailure", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const security_mode_fail_ies_s& security_mode_fail() const { assert_choice_type("securityModeFailure", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } security_mode_fail_ies_s& set_security_mode_fail() { set(types::security_mode_fail); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + security_mode_fail_ies_s c; }; // member variables @@ -10926,9 +10818,6 @@ struct ueassist_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10938,24 +10827,23 @@ struct ueassist_info_s { ueassist_info_ies_s& ue_assist_info() { assert_choice_type("ueAssistanceInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ueassist_info_ies_s& ue_assist_info() const { assert_choice_type("ueAssistanceInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ueassist_info_ies_s& set_ue_assist_info() { set(types::ue_assist_info); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ueassist_info_ies_s c; }; // member variables @@ -10979,9 +10867,6 @@ struct ue_cap_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -10991,24 +10876,23 @@ struct ue_cap_info_s { ue_cap_info_ies_s& ue_cap_info() { assert_choice_type("ueCapabilityInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ue_cap_info_ies_s& ue_cap_info() const { assert_choice_type("ueCapabilityInformation", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ue_cap_info_ies_s& set_ue_cap_info() { set(types::ue_cap_info); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ue_cap_info_ies_s c; }; // member variables @@ -11033,9 +10917,6 @@ struct ul_info_transfer_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -11045,24 +10926,23 @@ struct ul_info_transfer_s { ul_info_transfer_ies_s& ul_info_transfer() { assert_choice_type("ulInformationTransfer", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const ul_info_transfer_ies_s& ul_info_transfer() const { assert_choice_type("ulInformationTransfer", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } ul_info_transfer_ies_s& set_ul_info_transfer() { set(types::ul_info_transfer); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + ul_info_transfer_ies_s c; }; // member variables @@ -11108,6 +10988,9 @@ struct ul_info_transfer_mrdc_s { set(types::ul_info_transfer_mrdc); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -11124,9 +11007,6 @@ struct ul_info_transfer_mrdc_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -11136,24 +11016,23 @@ struct ul_info_transfer_mrdc_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -11478,9 +11357,6 @@ struct ul_dcch_msg_type_c { // choice methods ul_dcch_msg_type_c() = default; - ul_dcch_msg_type_c(const ul_dcch_msg_type_c& other); - ul_dcch_msg_type_c& operator=(const ul_dcch_msg_type_c& other); - ~ul_dcch_msg_type_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -11490,24 +11366,23 @@ struct ul_dcch_msg_type_c { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_msg_class_ext() { set(types::msg_class_ext); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // UL-DCCH-Message ::= SEQUENCE @@ -11710,6 +11585,9 @@ struct csi_rs_res_map_s { set(types::dot5); return c; } + void set_one() { set(types::one); } + void set_three() { set(types::three); } + void set_spare() { set(types::spare); } private: types type_; @@ -13605,6 +13483,7 @@ struct srs_periodicity_and_offset_c { assert_choice_type("sl2560", type_.to_string(), "SRS-PeriodicityAndOffset"); return c.get(); } + void set_sl1() { set(types::sl1); } uint8_t& set_sl2() { set(types::sl2); @@ -14890,6 +14769,9 @@ struct sched_request_res_cfg_s { assert_choice_type("sl640", type_.to_string(), "periodicityAndOffset"); return c.get(); } + void set_sym2() { set(types::sym2); } + void set_sym6or7() { set(types::sym6or7); } + void set_sl1() { set(types::sl1); } uint8_t& set_sl2() { set(types::sl2); @@ -18717,6 +18599,7 @@ struct port_idx_for8_ranks_c { set(types::port_idx2); return c.get(); } + void set_port_idx1() { set(types::port_idx1); } private: types type_; @@ -18899,11 +18782,18 @@ struct csi_report_cfg_s { assert_choice_type("cri-RI-i1-CQI", type_.to_string(), "reportQuantity"); return c; } + void set_none() { set(types::none); } + void set_cri_ri_pmi_cqi() { set(types::cri_ri_pmi_cqi); } + void set_cri_ri_i1() { set(types::cri_ri_i1); } cri_ri_i1_cqi_s_& set_cri_ri_i1_cqi() { set(types::cri_ri_i1_cqi); return c; } + void set_cri_ri_cqi() { set(types::cri_ri_cqi); } + void set_cri_rsrp() { set(types::cri_rsrp); } + void set_ssb_idx_rsrp() { set(types::ssb_idx_rsrp); } + void set_cri_ri_li_pmi_cqi() { set(types::cri_ri_li_pmi_cqi); } private: types type_; @@ -19294,6 +19184,7 @@ struct csi_report_cfg_s { assert_choice_type("disabled", type_.to_string(), "groupBasedBeamReporting"); return c; } + void set_enabled() { set(types::enabled); } disabled_s_& set_disabled() { set(types::disabled); @@ -20458,6 +20349,8 @@ struct tdd_ul_dl_slot_cfg_s { assert_choice_type("explicit", type_.to_string(), "symbols"); return c; } + void set_all_dl() { set(types::all_dl); } + void set_all_ul() { set(types::all_ul); } explicit_s_& set_explicit_type() { set(types::explicit_type); @@ -25661,6 +25554,9 @@ struct cg_cfg_s { set(types::cg_cfg); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -25677,9 +25573,6 @@ struct cg_cfg_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -25689,24 +25582,23 @@ struct cg_cfg_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26002,6 +25894,9 @@ struct cg_cfg_info_s { set(types::cg_cfg_info); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26018,9 +25913,6 @@ struct cg_cfg_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26030,24 +25922,23 @@ struct cg_cfg_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26164,6 +26055,9 @@ struct ho_cmd_s { set(types::ho_cmd); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26180,9 +26074,6 @@ struct ho_cmd_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26192,24 +26083,23 @@ struct ho_cmd_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26363,6 +26253,9 @@ struct ho_prep_info_s { set(types::ho_prep_info); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26379,9 +26272,6 @@ struct ho_prep_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26391,24 +26281,23 @@ struct ho_prep_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26508,6 +26397,9 @@ struct meas_timing_cfg_s { set(types::meas_timing_conf); return c; } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26524,9 +26416,6 @@ struct meas_timing_cfg_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26536,24 +26425,23 @@ struct meas_timing_cfg_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26620,6 +26508,13 @@ struct ue_radio_access_cap_info_s { set(types::ue_radio_access_cap_info); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26636,9 +26531,6 @@ struct ue_radio_access_cap_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26648,24 +26540,23 @@ struct ue_radio_access_cap_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables @@ -26726,6 +26617,13 @@ struct ue_radio_paging_info_s { set(types::ue_radio_paging_info); return c; } + void set_spare7() { set(types::spare7); } + void set_spare6() { set(types::spare6); } + void set_spare5() { set(types::spare5); } + void set_spare4() { set(types::spare4); } + void set_spare3() { set(types::spare3); } + void set_spare2() { set(types::spare2); } + void set_spare1() { set(types::spare1); } private: types type_; @@ -26742,9 +26640,6 @@ struct ue_radio_paging_info_s { // choice methods crit_exts_c_() = default; - crit_exts_c_(const crit_exts_c_& other); - crit_exts_c_& operator=(const crit_exts_c_& other); - ~crit_exts_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -26754,24 +26649,23 @@ struct ue_radio_paging_info_s { c1_c_& c1() { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } const c1_c_& c1() const { assert_choice_type("c1", type_.to_string(), "criticalExtensions"); - return c.get(); + return c; } c1_c_& set_c1() { set(types::c1); - return c.get(); + return c; } + void set_crit_exts_future() { set(types::crit_exts_future); } private: - types type_; - choice_buffer_t c; - - void destroy_(); + types type_; + c1_c_ c; }; // member variables diff --git a/lib/include/srslte/asn1/s1ap.h b/lib/include/srslte/asn1/s1ap.h index c306d3bb3..bfb058965 100644 --- a/lib/include/srslte/asn1/s1ap.h +++ b/lib/include/srslte/asn1/s1ap.h @@ -455,9 +455,6 @@ struct private_ie_id_c { // choice methods private_ie_id_c() = default; - private_ie_id_c(const private_ie_id_c& other); - private_ie_id_c& operator=(const private_ie_id_c& other); - ~private_ie_id_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; @@ -467,24 +464,23 @@ struct private_ie_id_c { uint32_t& local() { assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); - return c.get(); + return c; } const uint32_t& local() const { assert_choice_type("local", type_.to_string(), "PrivateIE-ID"); - return c.get(); + return c; } uint32_t& set_local() { set(types::local); - return c.get(); + return c; } + void set_global() { set(types::global); } private: - types type_; - pod_choice_buffer_t c; - - void destroy_(); + types type_; + uint32_t c; }; // PrivateIE-Field{S1AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE{{S1AP-PRIVATE-IES}} @@ -878,6 +874,7 @@ struct area_scope_of_mdt_c { set(types::tabased); return c.get(); } + void set_plmn_wide() { set(types::plmn_wide); } tai_based_mdt_s& set_tai_based() { set(types::tai_based); @@ -18304,6 +18301,7 @@ struct so_ntransfer_request_container_c { assert_choice_type("failureEventReporting", type_.to_string(), "SONtransferRequestContainer"); return c.get(); } + void set_cell_load_report() { set(types::cell_load_report); } multi_cell_load_report_request_s& set_multi_cell_load_report() { set(types::multi_cell_load_report); @@ -18433,11 +18431,14 @@ struct so_ntransfer_resp_container_c { set(types::event_triggered_cell_load_report); return c.get(); } + void set_horeport() { set(types::horeport); } cell_activation_resp_s& set_eutran_cell_activation() { set(types::eutran_cell_activation); return c.get(); } + void set_energy_savings_ind() { set(types::energy_savings_ind); } + void set_fail_event_report() { set(types::fail_event_report); } private: types type_; diff --git a/lib/src/asn1/rrc.cc b/lib/src/asn1/rrc.cc index bafe046f1..9b3596d36 100644 --- a/lib/src/asn1/rrc.cc +++ b/lib/src/asn1/rrc.cc @@ -459,67 +459,9 @@ uint8_t bcch_dl_sch_msg_type_br_r13_c::types_opts::to_number() const } // BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE -void bcch_dl_sch_msg_type_mbms_r14_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void bcch_dl_sch_msg_type_mbms_r14_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); - } -} -bcch_dl_sch_msg_type_mbms_r14_c::bcch_dl_sch_msg_type_mbms_r14_c(const bcch_dl_sch_msg_type_mbms_r14_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); - } -} -bcch_dl_sch_msg_type_mbms_r14_c& -bcch_dl_sch_msg_type_mbms_r14_c::operator=(const bcch_dl_sch_msg_type_mbms_r14_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_mbms_r14_c"); - } - - return *this; } void bcch_dl_sch_msg_type_mbms_r14_c::to_json(json_writer& j) const { @@ -527,7 +469,7 @@ void bcch_dl_sch_msg_type_mbms_r14_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -541,7 +483,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -558,7 +500,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_mbms_r14_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -2471,66 +2413,9 @@ std::string mcch_msg_type_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 1, value, "mcch_msg_type_c::c1_c_::types"); } -void mcch_msg_type_c::later_c_::destroy_() -{ - switch (type_) { - case types::c2: - c.destroy(); - break; - default: - break; - } -} void mcch_msg_type_c::later_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c2: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); - } -} -mcch_msg_type_c::later_c_::later_c_(const mcch_msg_type_c::later_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c2: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); - } -} -mcch_msg_type_c::later_c_& mcch_msg_type_c::later_c_::operator=(const mcch_msg_type_c::later_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c2: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mcch_msg_type_c::later_c_"); - } - - return *this; } void mcch_msg_type_c::later_c_::to_json(json_writer& j) const { @@ -2538,7 +2423,7 @@ void mcch_msg_type_c::later_c_::to_json(json_writer& j) const switch (type_) { case types::c2: j.write_fieldname("c2"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -2552,7 +2437,7 @@ SRSASN_CODE mcch_msg_type_c::later_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c2: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -2569,7 +2454,7 @@ SRSASN_CODE mcch_msg_type_c::later_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c2: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -4268,67 +4153,9 @@ std::string sc_mcch_msg_type_r13_c::c1_c_::types_opts::to_string() const return convert_enum_idx(options, 1, value, "sc_mcch_msg_type_r13_c::c1_c_::types"); } -void sc_mcch_msg_type_r13_c::msg_class_ext_c_::destroy_() -{ - switch (type_) { - case types::c2: - c.destroy(); - break; - default: - break; - } -} void sc_mcch_msg_type_r13_c::msg_class_ext_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c2: - c.init(); - break; - case types::msg_class_ext_future_r14: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); - } -} -sc_mcch_msg_type_r13_c::msg_class_ext_c_::msg_class_ext_c_(const sc_mcch_msg_type_r13_c::msg_class_ext_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c2: - c.init(other.c.get()); - break; - case types::msg_class_ext_future_r14: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); - } -} -sc_mcch_msg_type_r13_c::msg_class_ext_c_& -sc_mcch_msg_type_r13_c::msg_class_ext_c_::operator=(const sc_mcch_msg_type_r13_c::msg_class_ext_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c2: - c.set(other.c.get()); - break; - case types::msg_class_ext_future_r14: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_r13_c::msg_class_ext_c_"); - } - - return *this; } void sc_mcch_msg_type_r13_c::msg_class_ext_c_::to_json(json_writer& j) const { @@ -4336,7 +4163,7 @@ void sc_mcch_msg_type_r13_c::msg_class_ext_c_::to_json(json_writer& j) const switch (type_) { case types::c2: j.write_fieldname("c2"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext_future_r14: break; @@ -4350,7 +4177,7 @@ SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c2: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext_future_r14: break; @@ -4367,7 +4194,7 @@ SRSASN_CODE sc_mcch_msg_type_r13_c::msg_class_ext_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c2: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext_future_r14: break; @@ -4653,40 +4480,6 @@ std::string visited_cell_info_r12_s::visited_cell_id_r12_c_::types_opts::to_stri return convert_enum_idx(options, 2, value, "visited_cell_info_r12_s::visited_cell_id_r12_c_::types"); } -// FailureReportSCG-v12d0 ::= SEQUENCE -SRSASN_CODE fail_report_scg_v12d0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(meas_result_neigh_cells_v12d0_present, 1)); - - if (meas_result_neigh_cells_v12d0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_v12d0, 1, 8)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE fail_report_scg_v12d0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(meas_result_neigh_cells_v12d0_present, 1)); - - if (meas_result_neigh_cells_v12d0_present) { - HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_v12d0, bref, 1, 8)); - } - - return SRSASN_SUCCESS; -} -void fail_report_scg_v12d0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (meas_result_neigh_cells_v12d0_present) { - j.start_array("measResultNeighCells-v12d0"); - for (const auto& e1 : meas_result_neigh_cells_v12d0) { - e1.to_json(j); - } - j.end_array(); - } - j.end_obj(); -} - std::string idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types_opts::to_string() const { static const char* options[] = {"subframeConfig0-r11", "subframeConfig1-5-r11", "subframeConfig6-r11"}; @@ -4729,44 +4522,6 @@ uint8_t rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types_opts::to_numbe return map_enum_number(options, 21, value, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types"); } -// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE -SRSASN_CODE scg_fail_info_v12d0b_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(fail_report_scg_v12d0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (fail_report_scg_v12d0_present) { - HANDLE_CODE(fail_report_scg_v12d0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE scg_fail_info_v12d0b_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(fail_report_scg_v12d0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (fail_report_scg_v12d0_present) { - HANDLE_CODE(fail_report_scg_v12d0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void scg_fail_info_v12d0b_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (fail_report_scg_v12d0_present) { - j.write_fieldname("failureReportSCG-v12d0"); - fail_report_scg_v12d0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - std::string meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const { static const char* options[] = {"measResultListEUTRA", @@ -5096,6 +4851,40 @@ band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_ options, 3, value, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::types"); } +// FailureReportSCG-v12d0 ::= SEQUENCE +SRSASN_CODE fail_report_scg_v12d0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(meas_result_neigh_cells_v12d0_present, 1)); + + if (meas_result_neigh_cells_v12d0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_v12d0, 1, 8)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE fail_report_scg_v12d0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(meas_result_neigh_cells_v12d0_present, 1)); + + if (meas_result_neigh_cells_v12d0_present) { + HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_v12d0, bref, 1, 8)); + } + + return SRSASN_SUCCESS; +} +void fail_report_scg_v12d0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (meas_result_neigh_cells_v12d0_present) { + j.start_array("measResultNeighCells-v12d0"); + for (const auto& e1 : meas_result_neigh_cells_v12d0) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); +} + // MIMO-WeightedLayersCapabilities-r13 ::= SEQUENCE SRSASN_CODE mimo_weighted_layers_cap_r13_s::pack(bit_ref& bref) const { @@ -5320,34 +5109,36 @@ void phy_layer_params_v13e0_s::to_json(json_writer& j) const j.end_obj(); } -std::string mbms_params_v1470_s::mbms_max_bw_r14_c_::types_opts::to_string() const -{ - static const char* options[] = {"implicitValue", "explicitValue"}; - return convert_enum_idx(options, 2, value, "mbms_params_v1470_s::mbms_max_bw_r14_c_::types"); -} - -// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::pack(bit_ref& bref) const +// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE +SRSASN_CODE scg_fail_info_v12d0b_ies_s::pack(bit_ref& bref) const { + HANDLE_CODE(bref.pack(fail_report_scg_v12d0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(phy_layer_params_v13e0.pack(bref)); + if (fail_report_scg_v12d0_present) { + HANDLE_CODE(fail_report_scg_v12d0.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE scg_fail_info_v12d0b_ies_s::unpack(cbit_ref& bref) { + HANDLE_CODE(bref.unpack(fail_report_scg_v12d0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(phy_layer_params_v13e0.unpack(bref)); + if (fail_report_scg_v12d0_present) { + HANDLE_CODE(fail_report_scg_v12d0.unpack(bref)); + } return SRSASN_SUCCESS; } -void ue_eutra_cap_v13e0b_ies_s::to_json(json_writer& j) const +void scg_fail_info_v12d0b_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("phyLayerParameters-v13e0"); - phy_layer_params_v13e0.to_json(j); + if (fail_report_scg_v12d0_present) { + j.write_fieldname("failureReportSCG-v12d0"); + fail_report_scg_v12d0.to_json(j); + } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); @@ -5356,36 +5147,34 @@ void ue_eutra_cap_v13e0b_ies_s::to_json(json_writer& j) const j.end_obj(); } -// SCG-Config-v12i0b-IEs ::= SEQUENCE -SRSASN_CODE scg_cfg_v12i0b_ies_s::pack(bit_ref& bref) const +std::string mbms_params_v1470_s::mbms_max_bw_r14_c_::types_opts::to_string() const +{ + static const char* options[] = {"implicitValue", "explicitValue"}; + return convert_enum_idx(options, 2, value, "mbms_params_v1470_s::mbms_max_bw_r14_c_::types"); +} + +// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(scg_radio_cfg_v12i0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (scg_radio_cfg_v12i0_present) { - HANDLE_CODE(scg_radio_cfg_v12i0.pack(bref)); - } + HANDLE_CODE(phy_layer_params_v13e0.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE scg_cfg_v12i0b_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(scg_radio_cfg_v12i0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - if (scg_radio_cfg_v12i0_present) { - HANDLE_CODE(scg_radio_cfg_v12i0.unpack(bref)); - } + HANDLE_CODE(phy_layer_params_v13e0.unpack(bref)); return SRSASN_SUCCESS; } -void scg_cfg_v12i0b_ies_s::to_json(json_writer& j) const +void ue_eutra_cap_v13e0b_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (scg_radio_cfg_v12i0_present) { - j.write_fieldname("scg-RadioConfig-v12i0"); - scg_radio_cfg_v12i0.to_json(j); - } + j.write_fieldname("phyLayerParameters-v13e0"); + phy_layer_params_v13e0.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); j.start_obj(); @@ -6095,6 +5884,44 @@ void sbcch_sl_bch_msg_v2x_r14_s::to_json(json_writer& j) const j.end_array(); } +// SCG-Config-v12i0b-IEs ::= SEQUENCE +SRSASN_CODE scg_cfg_v12i0b_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(scg_radio_cfg_v12i0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (scg_radio_cfg_v12i0_present) { + HANDLE_CODE(scg_radio_cfg_v12i0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scg_cfg_v12i0b_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(scg_radio_cfg_v12i0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (scg_radio_cfg_v12i0_present) { + HANDLE_CODE(scg_radio_cfg_v12i0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void scg_cfg_v12i0b_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (scg_radio_cfg_v12i0_present) { + j.write_fieldname("scg-RadioConfig-v12i0"); + scg_radio_cfg_v12i0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + // SCG-ConfigInfo-v1530-IEs ::= SEQUENCE SRSASN_CODE scg_cfg_info_v1530_ies_s::pack(bit_ref& bref) const { @@ -6606,67 +6433,9 @@ void scg_cfg_info_r12_s::to_json(json_writer& j) const j.end_obj(); } -void scg_cfg_info_r12_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void scg_cfg_info_r12_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); - } -} -scg_cfg_info_r12_s::crit_exts_c_::crit_exts_c_(const scg_cfg_info_r12_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); - } -} -scg_cfg_info_r12_s::crit_exts_c_& -scg_cfg_info_r12_s::crit_exts_c_::operator=(const scg_cfg_info_r12_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_info_r12_s::crit_exts_c_"); - } - - return *this; } void scg_cfg_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { @@ -6674,7 +6443,7 @@ void scg_cfg_info_r12_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -6688,7 +6457,7 @@ SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -6705,7 +6474,7 @@ SRSASN_CODE scg_cfg_info_r12_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; diff --git a/lib/src/asn1/rrc/bcch_msg.cc b/lib/src/asn1/rrc/bcch_msg.cc index be646a9b9..9bfdf2575 100644 --- a/lib/src/asn1/rrc/bcch_msg.cc +++ b/lib/src/asn1/rrc/bcch_msg.cc @@ -49,91 +49,71 @@ void bcch_bch_msg_s::to_json(json_writer& j) const j.end_array(); } -// SIB-Type-v12j0 ::= ENUMERATED -std::string sib_type_v12j0_opts::to_string() const -{ - static const char* options[] = {"sibType19-v1250", - "sibType20-v1310", - "sibType21-v1430", - "sibType24-v1530", - "sibType25-v1530", - "sibType26-v1530", - "spare10", - "spare9", - "spare8", - "spare7", - "spare6", - "spare5", - "spare4", - "spare3", - "spare2", - "spare1"}; - return convert_enum_idx(options, 16, value, "sib_type_v12j0_e"); -} -uint8_t sib_type_v12j0_opts::to_number() const -{ - static const uint8_t options[] = {19, 20, 21, 24, 25, 26}; - return map_enum_number(options, 6, value, "sib_type_v12j0_e"); -} - -// NS-PmaxValue-v10l0 ::= SEQUENCE -SRSASN_CODE ns_pmax_value_v10l0_s::pack(bit_ref& bref) const +// BandClassInfoCDMA2000 ::= SEQUENCE +SRSASN_CODE band_class_info_cdma2000_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); - if (add_spec_emission_v10l0_present) { - HANDLE_CODE(pack_integer(bref, add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); + HANDLE_CODE(band_class.pack(bref)); + if (cell_resel_prio_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); } + HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)63u)); return SRSASN_SUCCESS; } -SRSASN_CODE ns_pmax_value_v10l0_s::unpack(cbit_ref& bref) +SRSASN_CODE band_class_info_cdma2000_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); - if (add_spec_emission_v10l0_present) { - HANDLE_CODE(unpack_integer(add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); + HANDLE_CODE(band_class.unpack(bref)); + if (cell_resel_prio_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); } + HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)63u)); return SRSASN_SUCCESS; } -void ns_pmax_value_v10l0_s::to_json(json_writer& j) const +void band_class_info_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); - if (add_spec_emission_v10l0_present) { - j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); + j.write_str("bandClass", band_class.to_string()); + if (cell_resel_prio_present) { + j.write_int("cellReselectionPriority", cell_resel_prio); } + j.write_int("threshX-High", thresh_x_high); + j.write_int("threshX-Low", thresh_x_low); j.end_obj(); } -// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::pack(bit_ref& bref) const +// NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360_present, 1)); - - if (cell_sel_info_ce1_v1360_present) { - HANDLE_CODE(cell_sel_info_ce1_v1360.pack(bref)); - } + HANDLE_CODE(pack_integer(bref, arfcn, (uint16_t)0u, (uint16_t)2047u)); + HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_r11, 1, 40, integer_packer(0, 511))); return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); - - if (cell_sel_info_ce1_v1360_present) { - HANDLE_CODE(cell_sel_info_ce1_v1360.unpack(bref)); - } + HANDLE_CODE(unpack_integer(arfcn, bref, (uint16_t)0u, (uint16_t)2047u)); + HANDLE_CODE(unpack_dyn_seq_of(pci_list_r11, bref, 1, 40, integer_packer(0, 511))); return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v1360_s::to_json(json_writer& j) const +void neigh_cells_per_bandclass_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); - if (cell_sel_info_ce1_v1360_present) { - j.write_fieldname("cellSelectionInfoCE1-v1360"); - cell_sel_info_ce1_v1360.to_json(j); + j.write_int("arfcn", arfcn); + j.start_array("physCellIdList-r11"); + for (const auto& e1 : pci_list_r11) { + j.write_int(e1); } + j.end_array(); j.end_obj(); } @@ -170,7222 +150,7478 @@ void ns_pmax_value_r10_s::to_json(json_writer& j) const j.end_obj(); } -// SchedulingInfo-v12j0 ::= SEQUENCE -SRSASN_CODE sched_info_v12j0_s::pack(bit_ref& bref) const +// NS-PmaxValueNR-r15 ::= SEQUENCE +SRSASN_CODE ns_pmax_value_nr_r15_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(sib_map_info_v12j0_present, 1)); + HANDLE_CODE(bref.pack(add_pmax_nr_r15_present, 1)); - if (sib_map_info_v12j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_v12j0, 1, 31)); + if (add_pmax_nr_r15_present) { + HANDLE_CODE(pack_integer(bref, add_pmax_nr_r15, (int8_t)-30, (int8_t)33)); } + HANDLE_CODE(pack_integer(bref, add_spec_emission_nr_r15, (uint8_t)0u, (uint8_t)7u)); return SRSASN_SUCCESS; } -SRSASN_CODE sched_info_v12j0_s::unpack(cbit_ref& bref) +SRSASN_CODE ns_pmax_value_nr_r15_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(sib_map_info_v12j0_present, 1)); + HANDLE_CODE(bref.unpack(add_pmax_nr_r15_present, 1)); - if (sib_map_info_v12j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_v12j0, bref, 1, 31)); + if (add_pmax_nr_r15_present) { + HANDLE_CODE(unpack_integer(add_pmax_nr_r15, bref, (int8_t)-30, (int8_t)33)); } + HANDLE_CODE(unpack_integer(add_spec_emission_nr_r15, bref, (uint8_t)0u, (uint8_t)7u)); return SRSASN_SUCCESS; } -void sched_info_v12j0_s::to_json(json_writer& j) const +void ns_pmax_value_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); - if (sib_map_info_v12j0_present) { - j.start_array("sib-MappingInfo-v12j0"); - for (const auto& e1 : sib_map_info_v12j0) { - j.write_str(e1.to_string()); - } - j.end_array(); + if (add_pmax_nr_r15_present) { + j.write_int("additionalPmaxNR-r15", add_pmax_nr_r15); } + j.write_int("additionalSpectrumEmissionNR-r15", add_spec_emission_nr_r15); j.end_obj(); } -// SchedulingInfoExt-r12 ::= SEQUENCE -SRSASN_CODE sched_info_ext_r12_s::pack(bit_ref& bref) const +// NeighCellCDMA2000-r11 ::= SEQUENCE +SRSASN_CODE neigh_cell_cdma2000_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(si_periodicity_r12.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r12, 1, 31)); + HANDLE_CODE(band_class.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_freq_info_list_r11, 1, 16)); return SRSASN_SUCCESS; } -SRSASN_CODE sched_info_ext_r12_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cell_cdma2000_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(si_periodicity_r12.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r12, bref, 1, 31)); + HANDLE_CODE(band_class.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(neigh_freq_info_list_r11, bref, 1, 16)); return SRSASN_SUCCESS; } -void sched_info_ext_r12_s::to_json(json_writer& j) const +void neigh_cell_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("si-Periodicity-r12", si_periodicity_r12.to_string()); - j.start_array("sib-MappingInfo-r12"); - for (const auto& e1 : sib_map_info_r12) { - j.write_str(e1.to_string()); + j.write_str("bandClass", band_class.to_string()); + j.start_array("neighFreqInfoList-r11"); + for (const auto& e1 : neigh_freq_info_list_r11) { + e1.to_json(j); } j.end_array(); j.end_obj(); } -// BandClassInfoCDMA2000 ::= SEQUENCE -SRSASN_CODE band_class_info_cdma2000_s::pack(bit_ref& bref) const +// NeighCellsPerBandclassCDMA2000 ::= SEQUENCE +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); - - HANDLE_CODE(band_class.pack(bref)); - if (cell_resel_prio_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); - } - HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(pack_integer(bref, arfcn, (uint16_t)0u, (uint16_t)2047u)); + HANDLE_CODE(pack_dyn_seq_of(bref, pci_list, 1, 16, integer_packer(0, 511))); return SRSASN_SUCCESS; } -SRSASN_CODE band_class_info_cdma2000_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); - - HANDLE_CODE(band_class.unpack(bref)); - if (cell_resel_prio_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); - } - HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(unpack_integer(arfcn, bref, (uint16_t)0u, (uint16_t)2047u)); + HANDLE_CODE(unpack_dyn_seq_of(pci_list, bref, 1, 16, integer_packer(0, 511))); return SRSASN_SUCCESS; } -void band_class_info_cdma2000_s::to_json(json_writer& j) const +void neigh_cells_per_bandclass_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("bandClass", band_class.to_string()); - if (cell_resel_prio_present) { - j.write_int("cellReselectionPriority", cell_resel_prio); + j.write_int("arfcn", arfcn); + j.start_array("physCellIdList"); + for (const auto& e1 : pci_list) { + j.write_int(e1); } - j.write_int("threshX-High", thresh_x_high); - j.write_int("threshX-Low", thresh_x_low); + j.end_array(); j.end_obj(); } -// NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::pack(bit_ref& bref) const +// NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, arfcn, (uint16_t)0u, (uint16_t)2047u)); - HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_r11, 1, 40, integer_packer(0, 511))); + HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_v920, 0, 24, integer_packer(0, 511))); return SRSASN_SUCCESS; } -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(arfcn, bref, (uint16_t)0u, (uint16_t)2047u)); - HANDLE_CODE(unpack_dyn_seq_of(pci_list_r11, bref, 1, 40, integer_packer(0, 511))); + HANDLE_CODE(unpack_dyn_seq_of(pci_list_v920, bref, 0, 24, integer_packer(0, 511))); return SRSASN_SUCCESS; } -void neigh_cells_per_bandclass_cdma2000_r11_s::to_json(json_writer& j) const +void neigh_cells_per_bandclass_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("arfcn", arfcn); - j.start_array("physCellIdList-r11"); - for (const auto& e1 : pci_list_r11) { + j.start_array("physCellIdList-v920"); + for (const auto& e1 : pci_list_v920) { j.write_int(e1); } j.end_array(); j.end_obj(); } -// SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v13c0_ies_s::pack(bit_ref& bref) const +// RedistributionNeighCell-r13 ::= SEQUENCE +SRSASN_CODE redist_neigh_cell_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v13c0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ul_pwr_ctrl_common_v13c0_present) { - HANDLE_CODE(ul_pwr_ctrl_common_v13c0.pack(bref)); - } + HANDLE_CODE(pack_integer(bref, pci_r13, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(pack_integer(bref, redist_factor_cell_r13, (uint8_t)1u, (uint8_t)10u)); return SRSASN_SUCCESS; } -SRSASN_CODE sib_type2_v13c0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE redist_neigh_cell_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ul_pwr_ctrl_common_v13c0_present) { - HANDLE_CODE(ul_pwr_ctrl_common_v13c0.unpack(bref)); - } + HANDLE_CODE(unpack_integer(pci_r13, bref, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(unpack_integer(redist_factor_cell_r13, bref, (uint8_t)1u, (uint8_t)10u)); return SRSASN_SUCCESS; } -void sib_type2_v13c0_ies_s::to_json(json_writer& j) const +void redist_neigh_cell_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (ul_pwr_ctrl_common_v13c0_present) { - j.write_fieldname("uplinkPowerControlCommon-v13c0"); - ul_pwr_ctrl_common_v13c0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } + j.write_int("physCellId-r13", pci_r13); + j.write_int("redistributionFactorCell-r13", redist_factor_cell_r13); j.end_obj(); } -// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::pack(bit_ref& bref) const +// AC-BarringConfig1XRTT-r9 ::= SEQUENCE +SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - - return SRSASN_SUCCESS; + HANDLE_CODE(pack_integer(bref, ac_barr0to9_r9, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(pack_integer(bref, ac_barr10_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr11_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr12_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr13_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr14_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr15_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr_msg_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr_reg_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(pack_integer(bref, ac_barr_emg_r9, (uint8_t)0u, (uint8_t)7u)); + + return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::unpack(cbit_ref& bref) +SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); - } + HANDLE_CODE(unpack_integer(ac_barr0to9_r9, bref, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(unpack_integer(ac_barr10_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr11_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr12_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr13_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr14_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr15_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr_msg_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr_reg_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(unpack_integer(ac_barr_emg_r9, bref, (uint8_t)0u, (uint8_t)7u)); return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v10l0_s::to_json(json_writer& j) const +void ac_barr_cfg1_xrtt_r9_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_info_v10l0_present) { - j.start_array("freqBandInfo-v10l0"); - for (const auto& e1 : freq_band_info_v10l0) { - e1.to_json(j); - } - j.end_array(); - } - if (multi_band_info_list_v10l0_present) { - j.start_array("multiBandInfoList-v10l0"); - for (const auto& e1 : multi_band_info_list_v10l0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } + j.write_int("ac-Barring0to9-r9", ac_barr0to9_r9); + j.write_int("ac-Barring10-r9", ac_barr10_r9); + j.write_int("ac-Barring11-r9", ac_barr11_r9); + j.write_int("ac-Barring12-r9", ac_barr12_r9); + j.write_int("ac-Barring13-r9", ac_barr13_r9); + j.write_int("ac-Barring14-r9", ac_barr14_r9); + j.write_int("ac-Barring15-r9", ac_barr15_r9); + j.write_int("ac-BarringMsg-r9", ac_barr_msg_r9); + j.write_int("ac-BarringReg-r9", ac_barr_reg_r9); + j.write_int("ac-BarringEmg-r9", ac_barr_emg_r9); j.end_obj(); } -// MultiBandInfo-v9e0 ::= SEQUENCE -SRSASN_CODE multi_band_info_v9e0_s::pack(bit_ref& bref) const +// CSFB-RegistrationParam1XRTT ::= SEQUENCE +SRSASN_CODE csfb_regist_param1_xrtt_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); - - if (freq_band_ind_v9e0_present) { - HANDLE_CODE(pack_integer(bref, freq_band_ind_v9e0, (uint16_t)65u, (uint16_t)256u)); - } + HANDLE_CODE(sid.pack(bref)); + HANDLE_CODE(nid.pack(bref)); + HANDLE_CODE(bref.pack(multiple_sid, 1)); + HANDLE_CODE(bref.pack(multiple_nid, 1)); + HANDLE_CODE(bref.pack(home_reg, 1)); + HANDLE_CODE(bref.pack(foreign_sid_reg, 1)); + HANDLE_CODE(bref.pack(foreign_nid_reg, 1)); + HANDLE_CODE(bref.pack(param_reg, 1)); + HANDLE_CODE(bref.pack(pwr_up_reg, 1)); + HANDLE_CODE(regist_period.pack(bref)); + HANDLE_CODE(regist_zone.pack(bref)); + HANDLE_CODE(total_zone.pack(bref)); + HANDLE_CODE(zone_timer.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE multi_band_info_v9e0_s::unpack(cbit_ref& bref) +SRSASN_CODE csfb_regist_param1_xrtt_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); - - if (freq_band_ind_v9e0_present) { - HANDLE_CODE(unpack_integer(freq_band_ind_v9e0, bref, (uint16_t)65u, (uint16_t)256u)); - } + HANDLE_CODE(sid.unpack(bref)); + HANDLE_CODE(nid.unpack(bref)); + HANDLE_CODE(bref.unpack(multiple_sid, 1)); + HANDLE_CODE(bref.unpack(multiple_nid, 1)); + HANDLE_CODE(bref.unpack(home_reg, 1)); + HANDLE_CODE(bref.unpack(foreign_sid_reg, 1)); + HANDLE_CODE(bref.unpack(foreign_nid_reg, 1)); + HANDLE_CODE(bref.unpack(param_reg, 1)); + HANDLE_CODE(bref.unpack(pwr_up_reg, 1)); + HANDLE_CODE(regist_period.unpack(bref)); + HANDLE_CODE(regist_zone.unpack(bref)); + HANDLE_CODE(total_zone.unpack(bref)); + HANDLE_CODE(zone_timer.unpack(bref)); return SRSASN_SUCCESS; } -void multi_band_info_v9e0_s::to_json(json_writer& j) const +void csfb_regist_param1_xrtt_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_ind_v9e0_present) { - j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); - } + j.write_str("sid", sid.to_string()); + j.write_str("nid", nid.to_string()); + j.write_bool("multipleSID", multiple_sid); + j.write_bool("multipleNID", multiple_nid); + j.write_bool("homeReg", home_reg); + j.write_bool("foreignSIDReg", foreign_sid_reg); + j.write_bool("foreignNIDReg", foreign_nid_reg); + j.write_bool("parameterReg", param_reg); + j.write_bool("powerUpReg", pwr_up_reg); + j.write_str("registrationPeriod", regist_period.to_string()); + j.write_str("registrationZone", regist_zone.to_string()); + j.write_str("totalZone", total_zone.to_string()); + j.write_str("zoneTimer", zone_timer.to_string()); j.end_obj(); } -// NS-PmaxValueNR-r15 ::= SEQUENCE -SRSASN_CODE ns_pmax_value_nr_r15_s::pack(bit_ref& bref) const +// CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE +SRSASN_CODE csfb_regist_param1_xrtt_v920_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(add_pmax_nr_r15_present, 1)); - - if (add_pmax_nr_r15_present) { - HANDLE_CODE(pack_integer(bref, add_pmax_nr_r15, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(pack_integer(bref, add_spec_emission_nr_r15, (uint8_t)0u, (uint8_t)7u)); - return SRSASN_SUCCESS; } -SRSASN_CODE ns_pmax_value_nr_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE csfb_regist_param1_xrtt_v920_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(add_pmax_nr_r15_present, 1)); - - if (add_pmax_nr_r15_present) { - HANDLE_CODE(unpack_integer(add_pmax_nr_r15, bref, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(unpack_integer(add_spec_emission_nr_r15, bref, (uint8_t)0u, (uint8_t)7u)); - return SRSASN_SUCCESS; } -void ns_pmax_value_nr_r15_s::to_json(json_writer& j) const +void csfb_regist_param1_xrtt_v920_s::to_json(json_writer& j) const { j.start_obj(); - if (add_pmax_nr_r15_present) { - j.write_int("additionalPmaxNR-r15", add_pmax_nr_r15); - } - j.write_int("additionalSpectrumEmissionNR-r15", add_spec_emission_nr_r15); + j.write_str("powerDownReg-r9", "true"); j.end_obj(); } -// NeighCellCDMA2000-r11 ::= SEQUENCE -SRSASN_CODE neigh_cell_cdma2000_r11_s::pack(bit_ref& bref) const +// CellReselectionParametersCDMA2000-r11 ::= SEQUENCE +SRSASN_CODE cell_resel_params_cdma2000_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(band_class.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_freq_info_list_r11, 1, 16)); + HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_r11, 1, 16)); + HANDLE_CODE(pack_integer(bref, t_resel_cdma2000, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_cdma2000_sf_present) { + HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE neigh_cell_cdma2000_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE cell_resel_params_cdma2000_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(band_class.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(neigh_freq_info_list_r11, bref, 1, 16)); + HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); + HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_r11, bref, 1, 16)); + HANDLE_CODE(unpack_integer(t_resel_cdma2000, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_cdma2000_sf_present) { + HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); + } return SRSASN_SUCCESS; } -void neigh_cell_cdma2000_r11_s::to_json(json_writer& j) const +void cell_resel_params_cdma2000_r11_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("bandClass", band_class.to_string()); - j.start_array("neighFreqInfoList-r11"); - for (const auto& e1 : neigh_freq_info_list_r11) { + j.start_array("bandClassList"); + for (const auto& e1 : band_class_list) { e1.to_json(j); } j.end_array(); - j.end_obj(); -} - -// NeighCellsPerBandclassCDMA2000 ::= SEQUENCE -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, arfcn, (uint16_t)0u, (uint16_t)2047u)); - HANDLE_CODE(pack_dyn_seq_of(bref, pci_list, 1, 16, integer_packer(0, 511))); - - return SRSASN_SUCCESS; -} -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(arfcn, bref, (uint16_t)0u, (uint16_t)2047u)); - HANDLE_CODE(unpack_dyn_seq_of(pci_list, bref, 1, 16, integer_packer(0, 511))); - - return SRSASN_SUCCESS; -} -void neigh_cells_per_bandclass_cdma2000_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("arfcn", arfcn); - j.start_array("physCellIdList"); - for (const auto& e1 : pci_list) { - j.write_int(e1); + j.start_array("neighCellList-r11"); + for (const auto& e1 : neigh_cell_list_r11) { + e1.to_json(j); } j.end_array(); + j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); + if (t_resel_cdma2000_sf_present) { + j.write_fieldname("t-ReselectionCDMA2000-SF"); + t_resel_cdma2000_sf.to_json(j); + } j.end_obj(); } -// NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::pack(bit_ref& bref) const +// InterFreqNeighCellInfo ::= SEQUENCE +SRSASN_CODE inter_freq_neigh_cell_info_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_dyn_seq_of(bref, pci_list_v920, 0, 24, integer_packer(0, 511))); + HANDLE_CODE(pack_integer(bref, pci, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(q_offset_cell.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE neigh_cells_per_bandclass_cdma2000_v920_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_neigh_cell_info_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_dyn_seq_of(pci_list_v920, bref, 0, 24, integer_packer(0, 511))); + HANDLE_CODE(unpack_integer(pci, bref, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(q_offset_cell.unpack(bref)); return SRSASN_SUCCESS; } -void neigh_cells_per_bandclass_cdma2000_v920_s::to_json(json_writer& j) const +void inter_freq_neigh_cell_info_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("physCellIdList-v920"); - for (const auto& e1 : pci_list_v920) { - j.write_int(e1); - } - j.end_array(); + j.write_int("physCellId", pci); + j.write_str("q-OffsetCell", q_offset_cell.to_string()); j.end_obj(); } -// RedistributionNeighCell-r13 ::= SEQUENCE -SRSASN_CODE redist_neigh_cell_r13_s::pack(bit_ref& bref) const +// PLMN-IdentityInfo2-r12 ::= CHOICE +void plmn_id_info2_r12_c::destroy_() { - HANDLE_CODE(pack_integer(bref, pci_r13, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(pack_integer(bref, redist_factor_cell_r13, (uint8_t)1u, (uint8_t)10u)); - - return SRSASN_SUCCESS; + switch (type_) { + case types::plmn_id_r12: + c.destroy(); + break; + default: + break; + } } -SRSASN_CODE redist_neigh_cell_r13_s::unpack(cbit_ref& bref) +void plmn_id_info2_r12_c::set(types::options e) { - HANDLE_CODE(unpack_integer(pci_r13, bref, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(unpack_integer(redist_factor_cell_r13, bref, (uint8_t)1u, (uint8_t)10u)); - - return SRSASN_SUCCESS; -} -void redist_neigh_cell_r13_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("physCellId-r13", pci_r13); - j.write_int("redistributionFactorCell-r13", redist_factor_cell_r13); - j.end_obj(); + destroy_(); + type_ = e; + switch (type_) { + case types::plmn_idx_r12: + break; + case types::plmn_id_r12: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + } } - -// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v12j0_ies_s::pack(bit_ref& bref) const +plmn_id_info2_r12_c::plmn_id_info2_r12_c(const plmn_id_info2_r12_c& other) { - HANDLE_CODE(bref.pack(sched_info_list_v12j0_present, 1)); - HANDLE_CODE(bref.pack(sched_info_list_ext_r12_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (sched_info_list_v12j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_v12j0, 1, 32)); - } - if (sched_info_list_ext_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_ext_r12, 1, 32)); + type_ = other.type(); + switch (type_) { + case types::plmn_idx_r12: + c.init(other.c.get()); + break; + case types::plmn_id_r12: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } - - return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_v12j0_ies_s::unpack(cbit_ref& bref) +plmn_id_info2_r12_c& plmn_id_info2_r12_c::operator=(const plmn_id_info2_r12_c& other) { - HANDLE_CODE(bref.unpack(sched_info_list_v12j0_present, 1)); - HANDLE_CODE(bref.unpack(sched_info_list_ext_r12_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (sched_info_list_v12j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_v12j0, bref, 1, 32)); + if (this == &other) { + return *this; } - if (sched_info_list_ext_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_ext_r12, bref, 1, 32)); + set(other.type()); + switch (type_) { + case types::plmn_idx_r12: + c.set(other.c.get()); + break; + case types::plmn_id_r12: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } - return SRSASN_SUCCESS; + return *this; } -void sib_type1_v12j0_ies_s::to_json(json_writer& j) const +void plmn_id_info2_r12_c::to_json(json_writer& j) const { j.start_obj(); - if (sched_info_list_v12j0_present) { - j.start_array("schedulingInfoList-v12j0"); - for (const auto& e1 : sched_info_list_v12j0) { - e1.to_json(j); - } - j.end_array(); - } - if (sched_info_list_ext_r12_present) { - j.start_array("schedulingInfoListExt-r12"); - for (const auto& e1 : sched_info_list_ext_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); + switch (type_) { + case types::plmn_idx_r12: + j.write_int("plmn-Index-r12", c.get()); + break; + case types::plmn_id_r12: + j.write_fieldname("plmnIdentity-r12"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); } j.end_obj(); } - -// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v10n0_ies_s::pack(bit_ref& bref) const +SRSASN_CODE plmn_id_info2_r12_c::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + type_.pack(bref); + switch (type_) { + case types::plmn_idx_r12: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)1u, (uint8_t)6u)); + break; + case types::plmn_id_r12: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE sib_type2_v10n0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE plmn_id_info2_r12_c::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::plmn_idx_r12: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)1u, (uint8_t)6u)); + break; + case types::plmn_id_r12: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void sib_type2_v10n0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} -// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE -SRSASN_CODE sib_type5_v13a0_ies_s::pack(bit_ref& bref) const +// SystemTimeInfoCDMA2000 ::= SEQUENCE +SRSASN_CODE sys_time_info_cdma2000_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v13a0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (inter_freq_carrier_freq_list_v13a0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v13a0, 1, 8)); - } + HANDLE_CODE(bref.pack(cdma_eutra_synchronisation, 1)); + HANDLE_CODE(cdma_sys_time.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE sib_type5_v13a0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sys_time_info_cdma2000_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v13a0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (inter_freq_carrier_freq_list_v13a0_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v13a0, bref, 1, 8)); - } + HANDLE_CODE(bref.unpack(cdma_eutra_synchronisation, 1)); + HANDLE_CODE(cdma_sys_time.unpack(bref)); return SRSASN_SUCCESS; } -void sib_type5_v13a0_ies_s::to_json(json_writer& j) const +void sys_time_info_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (inter_freq_carrier_freq_list_v13a0_present) { - j.start_array("interFreqCarrierFreqList-v13a0"); - for (const auto& e1 : inter_freq_carrier_freq_list_v13a0) { - e1.to_json(j); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } + j.write_bool("cdma-EUTRA-Synchronisation", cdma_eutra_synchronisation); + j.write_fieldname("cdma-SystemTime"); + cdma_sys_time.to_json(j); j.end_obj(); } -// AC-BarringConfig1XRTT-r9 ::= SEQUENCE -SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::pack(bit_ref& bref) const +void sys_time_info_cdma2000_s::cdma_sys_time_c_::destroy_() { - HANDLE_CODE(pack_integer(bref, ac_barr0to9_r9, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(pack_integer(bref, ac_barr10_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr11_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr12_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr13_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr14_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr15_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr_msg_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr_reg_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(pack_integer(bref, ac_barr_emg_r9, (uint8_t)0u, (uint8_t)7u)); - - return SRSASN_SUCCESS; + switch (type_) { + case types::sync_sys_time: + c.destroy >(); + break; + case types::async_sys_time: + c.destroy >(); + break; + default: + break; + } } -SRSASN_CODE ac_barr_cfg1_xrtt_r9_s::unpack(cbit_ref& bref) +void sys_time_info_cdma2000_s::cdma_sys_time_c_::set(types::options e) { - HANDLE_CODE(unpack_integer(ac_barr0to9_r9, bref, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(unpack_integer(ac_barr10_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr11_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr12_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr13_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr14_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr15_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr_msg_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr_reg_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(unpack_integer(ac_barr_emg_r9, bref, (uint8_t)0u, (uint8_t)7u)); - - return SRSASN_SUCCESS; -} -void ac_barr_cfg1_xrtt_r9_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("ac-Barring0to9-r9", ac_barr0to9_r9); - j.write_int("ac-Barring10-r9", ac_barr10_r9); - j.write_int("ac-Barring11-r9", ac_barr11_r9); - j.write_int("ac-Barring12-r9", ac_barr12_r9); - j.write_int("ac-Barring13-r9", ac_barr13_r9); - j.write_int("ac-Barring14-r9", ac_barr14_r9); - j.write_int("ac-Barring15-r9", ac_barr15_r9); - j.write_int("ac-BarringMsg-r9", ac_barr_msg_r9); - j.write_int("ac-BarringReg-r9", ac_barr_reg_r9); - j.write_int("ac-BarringEmg-r9", ac_barr_emg_r9); - j.end_obj(); + destroy_(); + type_ = e; + switch (type_) { + case types::sync_sys_time: + c.init >(); + break; + case types::async_sys_time: + c.init >(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + } } - -// CSFB-RegistrationParam1XRTT ::= SEQUENCE -SRSASN_CODE csfb_regist_param1_xrtt_s::pack(bit_ref& bref) const +sys_time_info_cdma2000_s::cdma_sys_time_c_::cdma_sys_time_c_(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) { - HANDLE_CODE(sid.pack(bref)); - HANDLE_CODE(nid.pack(bref)); - HANDLE_CODE(bref.pack(multiple_sid, 1)); - HANDLE_CODE(bref.pack(multiple_nid, 1)); - HANDLE_CODE(bref.pack(home_reg, 1)); - HANDLE_CODE(bref.pack(foreign_sid_reg, 1)); - HANDLE_CODE(bref.pack(foreign_nid_reg, 1)); - HANDLE_CODE(bref.pack(param_reg, 1)); - HANDLE_CODE(bref.pack(pwr_up_reg, 1)); - HANDLE_CODE(regist_period.pack(bref)); - HANDLE_CODE(regist_zone.pack(bref)); - HANDLE_CODE(total_zone.pack(bref)); - HANDLE_CODE(zone_timer.pack(bref)); - - return SRSASN_SUCCESS; + type_ = other.type(); + switch (type_) { + case types::sync_sys_time: + c.init(other.c.get >()); + break; + case types::async_sys_time: + c.init(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + } } -SRSASN_CODE csfb_regist_param1_xrtt_s::unpack(cbit_ref& bref) +sys_time_info_cdma2000_s::cdma_sys_time_c_& +sys_time_info_cdma2000_s::cdma_sys_time_c_::operator=(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) { - HANDLE_CODE(sid.unpack(bref)); - HANDLE_CODE(nid.unpack(bref)); - HANDLE_CODE(bref.unpack(multiple_sid, 1)); - HANDLE_CODE(bref.unpack(multiple_nid, 1)); - HANDLE_CODE(bref.unpack(home_reg, 1)); - HANDLE_CODE(bref.unpack(foreign_sid_reg, 1)); - HANDLE_CODE(bref.unpack(foreign_nid_reg, 1)); - HANDLE_CODE(bref.unpack(param_reg, 1)); - HANDLE_CODE(bref.unpack(pwr_up_reg, 1)); - HANDLE_CODE(regist_period.unpack(bref)); - HANDLE_CODE(regist_zone.unpack(bref)); - HANDLE_CODE(total_zone.unpack(bref)); - HANDLE_CODE(zone_timer.unpack(bref)); + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::sync_sys_time: + c.set(other.c.get >()); + break; + case types::async_sys_time: + c.set(other.c.get >()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + } - return SRSASN_SUCCESS; + return *this; } -void csfb_regist_param1_xrtt_s::to_json(json_writer& j) const +void sys_time_info_cdma2000_s::cdma_sys_time_c_::to_json(json_writer& j) const { j.start_obj(); - j.write_str("sid", sid.to_string()); - j.write_str("nid", nid.to_string()); - j.write_bool("multipleSID", multiple_sid); - j.write_bool("multipleNID", multiple_nid); - j.write_bool("homeReg", home_reg); - j.write_bool("foreignSIDReg", foreign_sid_reg); - j.write_bool("foreignNIDReg", foreign_nid_reg); - j.write_bool("parameterReg", param_reg); - j.write_bool("powerUpReg", pwr_up_reg); - j.write_str("registrationPeriod", regist_period.to_string()); - j.write_str("registrationZone", regist_zone.to_string()); - j.write_str("totalZone", total_zone.to_string()); - j.write_str("zoneTimer", zone_timer.to_string()); + switch (type_) { + case types::sync_sys_time: + j.write_str("synchronousSystemTime", c.get >().to_string()); + break; + case types::async_sys_time: + j.write_str("asynchronousSystemTime", c.get >().to_string()); + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + } j.end_obj(); } +SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::sync_sys_time: + HANDLE_CODE(c.get >().pack(bref)); + break; + case types::async_sys_time: + HANDLE_CODE(c.get >().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sync_sys_time: + HANDLE_CODE(c.get >().unpack(bref)); + break; + case types::async_sys_time: + HANDLE_CODE(c.get >().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} -// CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE -SRSASN_CODE csfb_regist_param1_xrtt_v920_s::pack(bit_ref& bref) const +// UAC-BarringPerCat-r15 ::= SEQUENCE +SRSASN_CODE uac_barr_per_cat_r15_s::pack(bit_ref& bref) const { + HANDLE_CODE(pack_integer(bref, access_category_r15, (uint8_t)1u, (uint8_t)63u)); + HANDLE_CODE(pack_integer(bref, uac_barr_info_set_idx_r15, (uint8_t)1u, (uint8_t)8u)); + return SRSASN_SUCCESS; } -SRSASN_CODE csfb_regist_param1_xrtt_v920_s::unpack(cbit_ref& bref) +SRSASN_CODE uac_barr_per_cat_r15_s::unpack(cbit_ref& bref) { + HANDLE_CODE(unpack_integer(access_category_r15, bref, (uint8_t)1u, (uint8_t)63u)); + HANDLE_CODE(unpack_integer(uac_barr_info_set_idx_r15, bref, (uint8_t)1u, (uint8_t)8u)); + return SRSASN_SUCCESS; } -void csfb_regist_param1_xrtt_v920_s::to_json(json_writer& j) const +void uac_barr_per_cat_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("powerDownReg-r9", "true"); + j.write_int("accessCategory-r15", access_category_r15); + j.write_int("uac-barringInfoSetIndex-r15", uac_barr_info_set_idx_r15); j.end_obj(); } -// CellReselectionParametersCDMA2000-r11 ::= SEQUENCE -SRSASN_CODE cell_resel_params_cdma2000_r11_s::pack(bit_ref& bref) const +// NeighCellCDMA2000 ::= SEQUENCE +SRSASN_CODE neigh_cell_cdma2000_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); - - HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_r11, 1, 16)); - HANDLE_CODE(pack_integer(bref, t_resel_cdma2000, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_cdma2000_sf_present) { - HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); - } + HANDLE_CODE(band_class.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list, 1, 16)); return SRSASN_SUCCESS; } -SRSASN_CODE cell_resel_params_cdma2000_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cell_cdma2000_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); - - HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); - HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_r11, bref, 1, 16)); - HANDLE_CODE(unpack_integer(t_resel_cdma2000, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_cdma2000_sf_present) { - HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); - } + HANDLE_CODE(band_class.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list, bref, 1, 16)); return SRSASN_SUCCESS; } -void cell_resel_params_cdma2000_r11_s::to_json(json_writer& j) const +void neigh_cell_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("bandClassList"); - for (const auto& e1 : band_class_list) { - e1.to_json(j); - } - j.end_array(); - j.start_array("neighCellList-r11"); - for (const auto& e1 : neigh_cell_list_r11) { + j.write_str("bandClass", band_class.to_string()); + j.start_array("neighCellsPerFreqList"); + for (const auto& e1 : neigh_cells_per_freq_list) { e1.to_json(j); } j.end_array(); - j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); - if (t_resel_cdma2000_sf_present) { - j.write_fieldname("t-ReselectionCDMA2000-SF"); - t_resel_cdma2000_sf.to_json(j); - } j.end_obj(); } -// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::pack(bit_ref& bref) const +// NeighCellCDMA2000-v920 ::= SEQUENCE +SRSASN_CODE neigh_cell_cdma2000_v920_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); - - if (freq_band_info_r10_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); - } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); - } + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list_v920, 1, 16)); return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::unpack(cbit_ref& bref) +SRSASN_CODE neigh_cell_cdma2000_v920_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); - - if (freq_band_info_r10_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); - } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); - } + HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list_v920, bref, 1, 16)); return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v10j0_s::to_json(json_writer& j) const +void neigh_cell_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_info_r10_present) { - j.start_array("freqBandInfo-r10"); - for (const auto& e1 : freq_band_info_r10) { - e1.to_json(j); - } - j.end_array(); - } - if (multi_band_info_list_v10j0_present) { - j.start_array("multiBandInfoList-v10j0"); - for (const auto& e1 : multi_band_info_list_v10j0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); + j.start_array("neighCellsPerFreqList-v920"); + for (const auto& e1 : neigh_cells_per_freq_list_v920) { + e1.to_json(j); } + j.end_array(); j.end_obj(); } -// InterFreqNeighCellInfo ::= SEQUENCE -SRSASN_CODE inter_freq_neigh_cell_info_s::pack(bit_ref& bref) const +// ParametersCDMA2000-r11 ::= SEQUENCE +SRSASN_CODE params_cdma2000_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, pci, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(q_offset_cell.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(sys_time_info_r11_present, 1)); + HANDLE_CODE(bref.pack(params_hrpd_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11_present, 1)); - return SRSASN_SUCCESS; -} -SRSASN_CODE inter_freq_neigh_cell_info_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(pci, bref, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(q_offset_cell.unpack(bref)); + if (sys_time_info_r11_present) { + HANDLE_CODE(sys_time_info_r11.pack(bref)); + } + HANDLE_CODE(pack_integer(bref, search_win_size_r11, (uint8_t)0u, (uint8_t)15u)); + if (params_hrpd_r11_present) { + HANDLE_CODE(bref.pack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); + HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.pack(bref)); + if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { + HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.pack(bref)); + } + } + if (params1_xrtt_r11_present) { + HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); + if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.pack(bref)); + } + if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { + HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.pack(bref)); + } + if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.pack(bref)); + } + if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.pack(bref)); + } + if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.pack(bref)); + } + if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { + HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); + } + } return SRSASN_SUCCESS; } -void inter_freq_neigh_cell_info_s::to_json(json_writer& j) const +SRSASN_CODE params_cdma2000_r11_s::unpack(cbit_ref& bref) { - j.start_obj(); - j.write_int("physCellId", pci); - j.write_str("q-OffsetCell", q_offset_cell.to_string()); - j.end_obj(); -} + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(sys_time_info_r11_present, 1)); + HANDLE_CODE(bref.unpack(params_hrpd_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11_present, 1)); -// PLMN-IdentityInfo2-r12 ::= CHOICE -void plmn_id_info2_r12_c::destroy_() -{ - switch (type_) { - case types::plmn_id_r12: - c.destroy(); - break; - default: - break; + if (sys_time_info_r11_present) { + HANDLE_CODE(sys_time_info_r11.unpack(bref)); } -} -void plmn_id_info2_r12_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::plmn_idx_r12: - break; - case types::plmn_id_r12: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + HANDLE_CODE(unpack_integer(search_win_size_r11, bref, (uint8_t)0u, (uint8_t)15u)); + if (params_hrpd_r11_present) { + HANDLE_CODE(bref.unpack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); + HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.unpack(bref)); + if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { + HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.unpack(bref)); + } } -} -plmn_id_info2_r12_c::plmn_id_info2_r12_c(const plmn_id_info2_r12_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::plmn_idx_r12: - c.init(other.c.get()); - break; - case types::plmn_id_r12: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + if (params1_xrtt_r11_present) { + HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); + if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.unpack(bref)); + } + if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { + HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.unpack(bref)); + } + if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.unpack(bref)); + } + if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.unpack(bref)); + } + if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { + HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.unpack(bref)); + } + if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { + HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); + } } + + return SRSASN_SUCCESS; } -plmn_id_info2_r12_c& plmn_id_info2_r12_c::operator=(const plmn_id_info2_r12_c& other) +void params_cdma2000_r11_s::to_json(json_writer& j) const { - if (this == &other) { - return *this; + j.start_obj(); + if (sys_time_info_r11_present) { + j.write_fieldname("systemTimeInfo-r11"); + sys_time_info_r11.to_json(j); } - set(other.type()); - switch (type_) { - case types::plmn_idx_r12: - c.set(other.c.get()); - break; - case types::plmn_id_r12: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + j.write_int("searchWindowSize-r11", search_win_size_r11); + if (params_hrpd_r11_present) { + j.write_fieldname("parametersHRPD-r11"); + j.start_obj(); + j.write_fieldname("preRegistrationInfoHRPD-r11"); + params_hrpd_r11.pre_regist_info_hrpd_r11.to_json(j); + if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { + j.write_fieldname("cellReselectionParametersHRPD-r11"); + params_hrpd_r11.cell_resel_params_hrpd_r11.to_json(j); + } + j.end_obj(); + } + if (params1_xrtt_r11_present) { + j.write_fieldname("parameters1XRTT-r11"); + j.start_obj(); + if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { + j.write_fieldname("csfb-RegistrationParam1XRTT-r11"); + params1_xrtt_r11.csfb_regist_param1_xrtt_r11.to_json(j); + } + if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { + j.write_fieldname("csfb-RegistrationParam1XRTT-Ext-r11"); + params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.to_json(j); + } + if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { + j.write_str("longCodeState1XRTT-r11", params1_xrtt_r11.long_code_state1_xrtt_r11.to_string()); + } + if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { + j.write_fieldname("cellReselectionParameters1XRTT-r11"); + params1_xrtt_r11.cell_resel_params1_xrtt_r11.to_json(j); + } + if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { + j.write_fieldname("ac-BarringConfig1XRTT-r11"); + params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.to_json(j); + } + if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { + j.write_bool("csfb-SupportForDualRxUEs-r11", params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11); + } + if (params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present) { + j.write_str("csfb-DualRxTxSupport-r11", "true"); + } + j.end_obj(); } + j.end_obj(); +} - return *this; +void params_cdma2000_r11_s::sys_time_info_r11_c_::set(types::options e) +{ + type_ = e; } -void plmn_id_info2_r12_c::to_json(json_writer& j) const +void params_cdma2000_r11_s::sys_time_info_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::plmn_idx_r12: - j.write_int("plmn-Index-r12", c.get()); + case types::explicit_value: + j.write_fieldname("explicitValue"); + c.to_json(j); break; - case types::plmn_id_r12: - j.write_fieldname("plmnIdentity-r12"); - c.get().to_json(j); + case types::default_value: break; default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); } j.end_obj(); } -SRSASN_CODE plmn_id_info2_r12_c::pack(bit_ref& bref) const +SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::plmn_idx_r12: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)1u, (uint8_t)6u)); + case types::explicit_value: + HANDLE_CODE(c.pack(bref)); break; - case types::plmn_id_r12: - HANDLE_CODE(c.get().pack(bref)); + case types::default_value: break; default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE plmn_id_info2_r12_c::unpack(cbit_ref& bref) +SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::plmn_idx_r12: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)1u, (uint8_t)6u)); + case types::explicit_value: + HANDLE_CODE(c.unpack(bref)); break; - case types::plmn_id_r12: - HANDLE_CODE(c.get().unpack(bref)); + case types::default_value: break; default: - log_invalid_choice_id(type_, "plmn_id_info2_r12_c"); + log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v10x0_ies_s::pack(bit_ref& bref) const +// RedistributionInterFreqInfo-r13 ::= SEQUENCE +SRSASN_CODE redist_inter_freq_info_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(redist_factor_freq_r13_present, 1)); + HANDLE_CODE(bref.pack(redist_neigh_cell_list_r13_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (redist_factor_freq_r13_present) { + HANDLE_CODE(pack_integer(bref, redist_factor_freq_r13, (uint8_t)1u, (uint8_t)10u)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (redist_neigh_cell_list_r13_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, redist_neigh_cell_list_r13, 1, 16)); } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_v10x0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE redist_inter_freq_info_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(redist_factor_freq_r13_present, 1)); + HANDLE_CODE(bref.unpack(redist_neigh_cell_list_r13_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (redist_factor_freq_r13_present) { + HANDLE_CODE(unpack_integer(redist_factor_freq_r13, bref, (uint8_t)1u, (uint8_t)10u)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (redist_neigh_cell_list_r13_present) { + HANDLE_CODE(unpack_dyn_seq_of(redist_neigh_cell_list_r13, bref, 1, 16)); } return SRSASN_SUCCESS; } -void sib_type1_v10x0_ies_s::to_json(json_writer& j) const +void redist_inter_freq_info_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (redist_factor_freq_r13_present) { + j.write_int("redistributionFactorFreq-r13", redist_factor_freq_r13); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (redist_neigh_cell_list_r13_present) { + j.start_array("redistributionNeighCellList-r13"); + for (const auto& e1 : redist_neigh_cell_list_r13) { + e1.to_json(j); + } + j.end_array(); } j.end_obj(); } -// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v10m0_ies_s::pack(bit_ref& bref) const +// SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE +SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_info_v10l0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(tx_pwr_info_r13_present, 1)); + HANDLE_CODE(bref.pack(ref_carrier_common_r13_present, 1)); + HANDLE_CODE(bref.pack(disc_sync_cfg_r13_present, 1)); + HANDLE_CODE(bref.pack(disc_cell_sel_info_r13_present, 1)); - if (freq_info_v10l0_present) { - HANDLE_CODE(pack_integer(bref, freq_info_v10l0.add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); + if (tx_pwr_info_r13_present) { + HANDLE_CODE(pack_fixed_seq_of(bref, &(tx_pwr_info_r13)[0], tx_pwr_info_r13.size())); } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, integer_packer(33, 288))); + if (disc_sync_cfg_r13_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_sync_cfg_r13, 1, 16)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (disc_cell_sel_info_r13_present) { + HANDLE_CODE(disc_cell_sel_info_r13.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type2_v10m0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_info_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(tx_pwr_info_r13_present, 1)); + HANDLE_CODE(bref.unpack(ref_carrier_common_r13_present, 1)); + HANDLE_CODE(bref.unpack(disc_sync_cfg_r13_present, 1)); + HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13_present, 1)); - if (freq_info_v10l0_present) { - HANDLE_CODE(unpack_integer(freq_info_v10l0.add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); + if (tx_pwr_info_r13_present) { + HANDLE_CODE(unpack_fixed_seq_of(&(tx_pwr_info_r13)[0], bref, tx_pwr_info_r13.size())); } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, integer_packer(33, 288))); + if (disc_sync_cfg_r13_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_sync_cfg_r13, bref, 1, 16)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (disc_cell_sel_info_r13_present) { + HANDLE_CODE(disc_cell_sel_info_r13.unpack(bref)); } return SRSASN_SUCCESS; } -void sib_type2_v10m0_ies_s::to_json(json_writer& j) const +void sl_disc_cfg_other_inter_freq_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_info_v10l0_present) { - j.write_fieldname("freqInfo-v10l0"); - j.start_obj(); - j.write_int("additionalSpectrumEmission-v10l0", freq_info_v10l0.add_spec_emission_v10l0); - j.end_obj(); + if (tx_pwr_info_r13_present) { + j.start_array("txPowerInfo-r13"); + for (const auto& e1 : tx_pwr_info_r13) { + e1.to_json(j); + } + j.end_array(); } - if (multi_band_info_list_v10l0_present) { - j.start_array("multiBandInfoList-v10l0"); - for (const auto& e1 : multi_band_info_list_v10l0) { - j.write_int(e1); + if (ref_carrier_common_r13_present) { + j.write_str("refCarrierCommon-r13", "pCell"); + } + if (disc_sync_cfg_r13_present) { + j.start_array("discSyncConfig-r13"); + for (const auto& e1 : disc_sync_cfg_r13) { + e1.to_json(j); } j.end_array(); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (disc_cell_sel_info_r13_present) { + j.write_fieldname("discCellSelectionInfo-r13"); + disc_cell_sel_info_r13.to_json(j); } j.end_obj(); } -// SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE -SRSASN_CODE sib_type5_v10l0_ies_s::pack(bit_ref& bref) const +// CarrierFreqNR-r15 ::= SEQUENCE +SRSASN_CODE carrier_freq_nr_r15_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10l0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(multi_band_info_list_r15_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_sul_r15_present, 1)); + HANDLE_CODE(bref.pack(meas_timing_cfg_r15_present, 1)); + HANDLE_CODE(bref.pack(ss_rssi_meas_r15_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_prio_r15_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_sub_prio_r15_present, 1)); + HANDLE_CODE(bref.pack(thresh_x_q_r15_present, 1)); + HANDLE_CODE(bref.pack(q_rx_lev_min_sul_r15_present, 1)); + HANDLE_CODE(bref.pack(ns_pmax_list_nr_r15_present, 1)); + HANDLE_CODE(bref.pack(q_qual_min_r15_present, 1)); + HANDLE_CODE(bref.pack(max_rs_idx_cell_qual_r15_present, 1)); + HANDLE_CODE(bref.pack(thresh_rs_idx_r15_present, 1)); - if (inter_freq_carrier_freq_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10l0, 1, 8)); + HANDLE_CODE(pack_integer(bref, carrier_freq_r15, (uint32_t)0u, (uint32_t)3279165u)); + if (multi_band_info_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r15, 1, 32, integer_packer(1, 1024))); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (multi_band_info_list_sul_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_sul_r15, 1, 32, integer_packer(1, 1024))); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type5_v10l0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10l0, bref, 1, 8)); + if (meas_timing_cfg_r15_present) { + HANDLE_CODE(meas_timing_cfg_r15.pack(bref)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + HANDLE_CODE(subcarrier_spacing_ssb_r15.pack(bref)); + if (ss_rssi_meas_r15_present) { + HANDLE_CODE(ss_rssi_meas_r15.pack(bref)); } - - return SRSASN_SUCCESS; -} -void sib_type5_v10l0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (inter_freq_carrier_freq_list_v10l0_present) { - j.start_array("interFreqCarrierFreqList-v10l0"); - for (const auto& e1 : inter_freq_carrier_freq_list_v10l0) { - e1.to_json(j); - } - j.end_array(); + if (cell_resel_prio_r15_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio_r15, (uint8_t)0u, (uint8_t)7u)); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (cell_resel_sub_prio_r15_present) { + HANDLE_CODE(cell_resel_sub_prio_r15.pack(bref)); + } + HANDLE_CODE(pack_integer(bref, thresh_x_high_r15, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low_r15, (uint8_t)0u, (uint8_t)31u)); + if (thresh_x_q_r15_present) { + HANDLE_CODE(pack_integer(bref, thresh_x_q_r15.thresh_x_high_q_r15, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_q_r15.thresh_x_low_q_r15, (uint8_t)0u, (uint8_t)31u)); + } + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r15, (int8_t)-70, (int8_t)-22)); + if (q_rx_lev_min_sul_r15_present) { + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_sul_r15, (int8_t)-70, (int8_t)-22)); + } + HANDLE_CODE(pack_integer(bref, p_max_nr_r15, (int8_t)-30, (int8_t)33)); + if (ns_pmax_list_nr_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, ns_pmax_list_nr_r15, 1, 8)); + } + if (q_qual_min_r15_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_r15, (int8_t)-43, (int8_t)-12)); + } + HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15, 1)); + if (max_rs_idx_cell_qual_r15_present) { + HANDLE_CODE(pack_integer(bref, max_rs_idx_cell_qual_r15, (uint8_t)1u, (uint8_t)16u)); + } + if (thresh_rs_idx_r15_present) { + HANDLE_CODE(thresh_rs_idx_r15.pack(bref)); } - j.end_obj(); -} -// SystemTimeInfoCDMA2000 ::= SEQUENCE -SRSASN_CODE sys_time_info_cdma2000_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(cdma_eutra_synchronisation, 1)); - HANDLE_CODE(cdma_sys_time.pack(bref)); + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= multi_band_ns_pmax_list_nr_v1550.is_present(); + group_flags[0] |= multi_band_ns_pmax_list_nr_sul_v1550.is_present(); + group_flags[0] |= ssb_to_measure_r15.is_present(); + group_flags.pack(bref); - return SRSASN_SUCCESS; -} -SRSASN_CODE sys_time_info_cdma2000_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(cdma_eutra_synchronisation, 1)); - HANDLE_CODE(cdma_sys_time.unpack(bref)); + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_v1550.is_present(), 1)); + HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_sul_v1550.is_present(), 1)); + HANDLE_CODE(bref.pack(ssb_to_measure_r15.is_present(), 1)); + if (multi_band_ns_pmax_list_nr_v1550.is_present()) { + HANDLE_CODE( + pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_v1550, 1, 31, SeqOfPacker(1, 8, Packer()))); + } + if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { + HANDLE_CODE( + pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_sul_v1550, 1, 32, SeqOfPacker(1, 8, Packer()))); + } + if (ssb_to_measure_r15.is_present()) { + HANDLE_CODE(ssb_to_measure_r15->pack(bref)); + } + } + } return SRSASN_SUCCESS; } -void sys_time_info_cdma2000_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_bool("cdma-EUTRA-Synchronisation", cdma_eutra_synchronisation); - j.write_fieldname("cdma-SystemTime"); - cdma_sys_time.to_json(j); - j.end_obj(); -} - -void sys_time_info_cdma2000_s::cdma_sys_time_c_::destroy_() +SRSASN_CODE carrier_freq_nr_r15_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::sync_sys_time: - c.destroy >(); - break; - case types::async_sys_time: - c.destroy >(); - break; - default: - break; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(multi_band_info_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_sul_r15_present, 1)); + HANDLE_CODE(bref.unpack(meas_timing_cfg_r15_present, 1)); + HANDLE_CODE(bref.unpack(ss_rssi_meas_r15_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_prio_r15_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r15_present, 1)); + HANDLE_CODE(bref.unpack(thresh_x_q_r15_present, 1)); + HANDLE_CODE(bref.unpack(q_rx_lev_min_sul_r15_present, 1)); + HANDLE_CODE(bref.unpack(ns_pmax_list_nr_r15_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_r15_present, 1)); + HANDLE_CODE(bref.unpack(max_rs_idx_cell_qual_r15_present, 1)); + HANDLE_CODE(bref.unpack(thresh_rs_idx_r15_present, 1)); + + HANDLE_CODE(unpack_integer(carrier_freq_r15, bref, (uint32_t)0u, (uint32_t)3279165u)); + if (multi_band_info_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r15, bref, 1, 32, integer_packer(1, 1024))); } -} -void sys_time_info_cdma2000_s::cdma_sys_time_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::sync_sys_time: - c.init >(); - break; - case types::async_sys_time: - c.init >(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + if (multi_band_info_list_sul_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_sul_r15, bref, 1, 32, integer_packer(1, 1024))); } -} -sys_time_info_cdma2000_s::cdma_sys_time_c_::cdma_sys_time_c_(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::sync_sys_time: - c.init(other.c.get >()); - break; - case types::async_sys_time: - c.init(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + if (meas_timing_cfg_r15_present) { + HANDLE_CODE(meas_timing_cfg_r15.unpack(bref)); } -} -sys_time_info_cdma2000_s::cdma_sys_time_c_& -sys_time_info_cdma2000_s::cdma_sys_time_c_::operator=(const sys_time_info_cdma2000_s::cdma_sys_time_c_& other) -{ - if (this == &other) { - return *this; + HANDLE_CODE(subcarrier_spacing_ssb_r15.unpack(bref)); + if (ss_rssi_meas_r15_present) { + HANDLE_CODE(ss_rssi_meas_r15.unpack(bref)); } - set(other.type()); - switch (type_) { - case types::sync_sys_time: - c.set(other.c.get >()); - break; - case types::async_sys_time: - c.set(other.c.get >()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + if (cell_resel_prio_r15_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio_r15, bref, (uint8_t)0u, (uint8_t)7u)); } - - return *this; -} -void sys_time_info_cdma2000_s::cdma_sys_time_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::sync_sys_time: - j.write_str("synchronousSystemTime", c.get >().to_string()); - break; - case types::async_sys_time: - j.write_str("asynchronousSystemTime", c.get >().to_string()); - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); + if (cell_resel_sub_prio_r15_present) { + HANDLE_CODE(cell_resel_sub_prio_r15.unpack(bref)); } - j.end_obj(); -} -SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::sync_sys_time: - HANDLE_CODE(c.get >().pack(bref)); - break; - case types::async_sys_time: - HANDLE_CODE(c.get >().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(unpack_integer(thresh_x_high_r15, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low_r15, bref, (uint8_t)0u, (uint8_t)31u)); + if (thresh_x_q_r15_present) { + HANDLE_CODE(unpack_integer(thresh_x_q_r15.thresh_x_high_q_r15, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_q_r15.thresh_x_low_q_r15, bref, (uint8_t)0u, (uint8_t)31u)); } - return SRSASN_SUCCESS; -} -SRSASN_CODE sys_time_info_cdma2000_s::cdma_sys_time_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sync_sys_time: - HANDLE_CODE(c.get >().unpack(bref)); - break; - case types::async_sys_time: - HANDLE_CODE(c.get >().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "sys_time_info_cdma2000_s::cdma_sys_time_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(unpack_integer(q_rx_lev_min_r15, bref, (int8_t)-70, (int8_t)-22)); + if (q_rx_lev_min_sul_r15_present) { + HANDLE_CODE(unpack_integer(q_rx_lev_min_sul_r15, bref, (int8_t)-70, (int8_t)-22)); } - return SRSASN_SUCCESS; -} - -// UAC-BarringPerCat-r15 ::= SEQUENCE -SRSASN_CODE uac_barr_per_cat_r15_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, access_category_r15, (uint8_t)1u, (uint8_t)63u)); - HANDLE_CODE(pack_integer(bref, uac_barr_info_set_idx_r15, (uint8_t)1u, (uint8_t)8u)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE uac_barr_per_cat_r15_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(access_category_r15, bref, (uint8_t)1u, (uint8_t)63u)); - HANDLE_CODE(unpack_integer(uac_barr_info_set_idx_r15, bref, (uint8_t)1u, (uint8_t)8u)); - - return SRSASN_SUCCESS; -} -void uac_barr_per_cat_r15_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("accessCategory-r15", access_category_r15); - j.write_int("uac-barringInfoSetIndex-r15", uac_barr_info_set_idx_r15); - j.end_obj(); -} - -// InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(dl_carrier_freq_v9e0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); - - if (dl_carrier_freq_v9e0_present) { - HANDLE_CODE(pack_integer(bref, dl_carrier_freq_v9e0, (uint32_t)65536u, (uint32_t)262143u)); + HANDLE_CODE(unpack_integer(p_max_nr_r15, bref, (int8_t)-30, (int8_t)33)); + if (ns_pmax_list_nr_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(ns_pmax_list_nr_r15, bref, 1, 8)); } - if (multi_band_info_list_v9e0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); + if (q_qual_min_r15_present) { + HANDLE_CODE(unpack_integer(q_qual_min_r15, bref, (int8_t)-43, (int8_t)-12)); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(dl_carrier_freq_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); - - if (dl_carrier_freq_v9e0_present) { - HANDLE_CODE(unpack_integer(dl_carrier_freq_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); + HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15, 1)); + if (max_rs_idx_cell_qual_r15_present) { + HANDLE_CODE(unpack_integer(max_rs_idx_cell_qual_r15, bref, (uint8_t)1u, (uint8_t)16u)); } - if (multi_band_info_list_v9e0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); + if (thresh_rs_idx_r15_present) { + HANDLE_CODE(thresh_rs_idx_r15.unpack(bref)); } + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool multi_band_ns_pmax_list_nr_v1550_present; + HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_v1550_present, 1)); + multi_band_ns_pmax_list_nr_v1550.set_present(multi_band_ns_pmax_list_nr_v1550_present); + bool multi_band_ns_pmax_list_nr_sul_v1550_present; + HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_sul_v1550_present, 1)); + multi_band_ns_pmax_list_nr_sul_v1550.set_present(multi_band_ns_pmax_list_nr_sul_v1550_present); + bool ssb_to_measure_r15_present; + HANDLE_CODE(bref.unpack(ssb_to_measure_r15_present, 1)); + ssb_to_measure_r15.set_present(ssb_to_measure_r15_present); + if (multi_band_ns_pmax_list_nr_v1550.is_present()) { + HANDLE_CODE( + unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_v1550, bref, 1, 31, SeqOfPacker(1, 8, Packer()))); + } + if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { + HANDLE_CODE( + unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_sul_v1550, bref, 1, 32, SeqOfPacker(1, 8, Packer()))); + } + if (ssb_to_measure_r15.is_present()) { + HANDLE_CODE(ssb_to_measure_r15->unpack(bref)); + } + } + } return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v9e0_s::to_json(json_writer& j) const +void carrier_freq_nr_r15_s::to_json(json_writer& j) const { j.start_obj(); - if (dl_carrier_freq_v9e0_present) { - j.write_int("dl-CarrierFreq-v9e0", dl_carrier_freq_v9e0); + j.write_int("carrierFreq-r15", carrier_freq_r15); + if (multi_band_info_list_r15_present) { + j.start_array("multiBandInfoList-r15"); + for (const auto& e1 : multi_band_info_list_r15) { + j.write_int(e1); + } + j.end_array(); } - if (multi_band_info_list_v9e0_present) { - j.start_array("multiBandInfoList-v9e0"); - for (const auto& e1 : multi_band_info_list_v9e0) { - e1.to_json(j); + if (multi_band_info_list_sul_r15_present) { + j.start_array("multiBandInfoListSUL-r15"); + for (const auto& e1 : multi_band_info_list_sul_r15) { + j.write_int(e1); } j.end_array(); } - j.end_obj(); -} - -// NeighCellCDMA2000 ::= SEQUENCE -SRSASN_CODE neigh_cell_cdma2000_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(band_class.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list, 1, 16)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE neigh_cell_cdma2000_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(band_class.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list, bref, 1, 16)); - - return SRSASN_SUCCESS; -} -void neigh_cell_cdma2000_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("bandClass", band_class.to_string()); - j.start_array("neighCellsPerFreqList"); - for (const auto& e1 : neigh_cells_per_freq_list) { - e1.to_json(j); + if (meas_timing_cfg_r15_present) { + j.write_fieldname("measTimingConfig-r15"); + meas_timing_cfg_r15.to_json(j); + } + j.write_str("subcarrierSpacingSSB-r15", subcarrier_spacing_ssb_r15.to_string()); + if (ss_rssi_meas_r15_present) { + j.write_fieldname("ss-RSSI-Measurement-r15"); + ss_rssi_meas_r15.to_json(j); + } + if (cell_resel_prio_r15_present) { + j.write_int("cellReselectionPriority-r15", cell_resel_prio_r15); + } + if (cell_resel_sub_prio_r15_present) { + j.write_str("cellReselectionSubPriority-r15", cell_resel_sub_prio_r15.to_string()); + } + j.write_int("threshX-High-r15", thresh_x_high_r15); + j.write_int("threshX-Low-r15", thresh_x_low_r15); + if (thresh_x_q_r15_present) { + j.write_fieldname("threshX-Q-r15"); + j.start_obj(); + j.write_int("threshX-HighQ-r15", thresh_x_q_r15.thresh_x_high_q_r15); + j.write_int("threshX-LowQ-r15", thresh_x_q_r15.thresh_x_low_q_r15); + j.end_obj(); + } + j.write_int("q-RxLevMin-r15", q_rx_lev_min_r15); + if (q_rx_lev_min_sul_r15_present) { + j.write_int("q-RxLevMinSUL-r15", q_rx_lev_min_sul_r15); + } + j.write_int("p-MaxNR-r15", p_max_nr_r15); + if (ns_pmax_list_nr_r15_present) { + j.start_array("ns-PmaxListNR-r15"); + for (const auto& e1 : ns_pmax_list_nr_r15) { + e1.to_json(j); + } + j.end_array(); + } + if (q_qual_min_r15_present) { + j.write_int("q-QualMin-r15", q_qual_min_r15); + } + j.write_bool("deriveSSB-IndexFromCell-r15", derive_ssb_idx_from_cell_r15); + if (max_rs_idx_cell_qual_r15_present) { + j.write_int("maxRS-IndexCellQual-r15", max_rs_idx_cell_qual_r15); + } + if (thresh_rs_idx_r15_present) { + j.write_fieldname("threshRS-Index-r15"); + thresh_rs_idx_r15.to_json(j); + } + if (ext) { + if (multi_band_ns_pmax_list_nr_v1550.is_present()) { + j.start_array("multiBandNsPmaxListNR-v1550"); + for (const auto& e1 : *multi_band_ns_pmax_list_nr_v1550) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { + j.start_array("multiBandNsPmaxListNR-SUL-v1550"); + for (const auto& e1 : *multi_band_ns_pmax_list_nr_sul_v1550) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (ssb_to_measure_r15.is_present()) { + j.write_fieldname("ssb-ToMeasure-r15"); + ssb_to_measure_r15->to_json(j); + } } - j.end_array(); j.end_obj(); } -// NeighCellCDMA2000-v920 ::= SEQUENCE -SRSASN_CODE neigh_cell_cdma2000_v920_s::pack(bit_ref& bref) const +std::string carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const { - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cells_per_freq_list_v920, 1, 16)); + static const char* options[] = {"kHz15", "kHz30", "kHz120", "kHz240"}; + return convert_enum_idx(options, 4, value, "carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); +} +uint8_t carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_number() const +{ + static const uint8_t options[] = {15, 30, 120, 240}; + return map_enum_number(options, 4, value, "carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); +} + +// CarrierFreqUTRA-FDD ::= SEQUENCE +SRSASN_CODE carrier_freq_utra_fdd_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); + + HANDLE_CODE(pack_integer(bref, carrier_freq, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); + } + HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(pack_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); + HANDLE_CODE(pack_integer(bref, q_qual_min, (int8_t)-24, (int8_t)0)); + + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= thresh_x_q_r9.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.pack(thresh_x_q_r9.is_present(), 1)); + if (thresh_x_q_r9.is_present()) { + HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0u, (uint8_t)31u)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE neigh_cell_cdma2000_v920_s::unpack(cbit_ref& bref) +SRSASN_CODE carrier_freq_utra_fdd_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_dyn_seq_of(neigh_cells_per_freq_list_v920, bref, 1, 16)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); + + HANDLE_CODE(unpack_integer(carrier_freq, bref, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + } + HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(unpack_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); + HANDLE_CODE(unpack_integer(q_qual_min, bref, (int8_t)-24, (int8_t)0)); + + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool thresh_x_q_r9_present; + HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); + thresh_x_q_r9.set_present(thresh_x_q_r9_present); + if (thresh_x_q_r9.is_present()) { + HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + } + } + } return SRSASN_SUCCESS; } -void neigh_cell_cdma2000_v920_s::to_json(json_writer& j) const +void carrier_freq_utra_fdd_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("neighCellsPerFreqList-v920"); - for (const auto& e1 : neigh_cells_per_freq_list_v920) { - e1.to_json(j); + j.write_int("carrierFreq", carrier_freq); + if (cell_resel_prio_present) { + j.write_int("cellReselectionPriority", cell_resel_prio); + } + j.write_int("threshX-High", thresh_x_high); + j.write_int("threshX-Low", thresh_x_low); + j.write_int("q-RxLevMin", q_rx_lev_min); + j.write_int("p-MaxUTRA", p_max_utra); + j.write_int("q-QualMin", q_qual_min); + if (ext) { + if (thresh_x_q_r9.is_present()) { + j.write_fieldname("threshX-Q-r9"); + j.start_obj(); + j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); + j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); + j.end_obj(); + } } - j.end_array(); j.end_obj(); } -// ParametersCDMA2000-r11 ::= SEQUENCE -SRSASN_CODE params_cdma2000_r11_s::pack(bit_ref& bref) const +// CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE +SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(sys_time_info_r11_present, 1)); - HANDLE_CODE(bref.pack(params_hrpd_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); + HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); - if (sys_time_info_r11_present) { - HANDLE_CODE(sys_time_info_r11.pack(bref)); + HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); } - HANDLE_CODE(pack_integer(bref, search_win_size_r11, (uint8_t)0u, (uint8_t)15u)); - if (params_hrpd_r11_present) { - HANDLE_CODE(bref.pack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); - HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.pack(bref)); - if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { - HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.pack(bref)); - } + HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(pack_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); + HANDLE_CODE(pack_integer(bref, q_qual_min_r12, (int8_t)-24, (int8_t)0)); + if (thresh_x_q_r12_present) { + HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0u, (uint8_t)31u)); } - if (params1_xrtt_r11_present) { - HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); - if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.pack(bref)); - } - if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { - HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.pack(bref)); - } - if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.pack(bref)); - } - if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.pack(bref)); - } - if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.pack(bref)); - } - if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { - HANDLE_CODE(bref.pack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); - } + if (multi_band_info_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, integer_packer(1, 86))); } return SRSASN_SUCCESS; } -SRSASN_CODE params_cdma2000_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(sys_time_info_r11_present, 1)); - HANDLE_CODE(bref.unpack(params_hrpd_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); - if (sys_time_info_r11_present) { - HANDLE_CODE(sys_time_info_r11.unpack(bref)); + HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); } - HANDLE_CODE(unpack_integer(search_win_size_r11, bref, (uint8_t)0u, (uint8_t)15u)); - if (params_hrpd_r11_present) { - HANDLE_CODE(bref.unpack(params_hrpd_r11.cell_resel_params_hrpd_r11_present, 1)); - HANDLE_CODE(params_hrpd_r11.pre_regist_info_hrpd_r11.unpack(bref)); - if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { - HANDLE_CODE(params_hrpd_r11.cell_resel_params_hrpd_r11.unpack(bref)); - } + HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(unpack_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); + HANDLE_CODE(unpack_integer(q_qual_min_r12, bref, (int8_t)-24, (int8_t)0)); + if (thresh_x_q_r12_present) { + HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); } - if (params1_xrtt_r11_present) { - HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.long_code_state1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.cell_resel_params1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present, 1)); - if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_r11.unpack(bref)); - } - if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { - HANDLE_CODE(params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.unpack(bref)); - } - if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.long_code_state1_xrtt_r11.unpack(bref)); - } - if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.cell_resel_params1_xrtt_r11.unpack(bref)); - } - if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { - HANDLE_CODE(params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.unpack(bref)); - } - if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { - HANDLE_CODE(bref.unpack(params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11, 1)); - } + if (multi_band_info_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, integer_packer(1, 86))); } return SRSASN_SUCCESS; } -void params_cdma2000_r11_s::to_json(json_writer& j) const +void carrier_freq_utra_fdd_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); - if (sys_time_info_r11_present) { - j.write_fieldname("systemTimeInfo-r11"); - sys_time_info_r11.to_json(j); + j.write_int("carrierFreq-r12", carrier_freq_r12); + if (cell_resel_prio_r12_present) { + j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); } - j.write_int("searchWindowSize-r11", search_win_size_r11); - if (params_hrpd_r11_present) { - j.write_fieldname("parametersHRPD-r11"); + j.write_int("threshX-High-r12", thresh_x_high_r12); + j.write_int("threshX-Low-r12", thresh_x_low_r12); + j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); + j.write_int("p-MaxUTRA-r12", p_max_utra_r12); + j.write_int("q-QualMin-r12", q_qual_min_r12); + if (thresh_x_q_r12_present) { + j.write_fieldname("threshX-Q-r12"); j.start_obj(); - j.write_fieldname("preRegistrationInfoHRPD-r11"); - params_hrpd_r11.pre_regist_info_hrpd_r11.to_json(j); - if (params_hrpd_r11.cell_resel_params_hrpd_r11_present) { - j.write_fieldname("cellReselectionParametersHRPD-r11"); - params_hrpd_r11.cell_resel_params_hrpd_r11.to_json(j); - } + j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); + j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); j.end_obj(); } - if (params1_xrtt_r11_present) { - j.write_fieldname("parameters1XRTT-r11"); - j.start_obj(); - if (params1_xrtt_r11.csfb_regist_param1_xrtt_r11_present) { - j.write_fieldname("csfb-RegistrationParam1XRTT-r11"); - params1_xrtt_r11.csfb_regist_param1_xrtt_r11.to_json(j); - } - if (params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11_present) { - j.write_fieldname("csfb-RegistrationParam1XRTT-Ext-r11"); - params1_xrtt_r11.csfb_regist_param1_xrtt_ext_r11.to_json(j); - } - if (params1_xrtt_r11.long_code_state1_xrtt_r11_present) { - j.write_str("longCodeState1XRTT-r11", params1_xrtt_r11.long_code_state1_xrtt_r11.to_string()); - } - if (params1_xrtt_r11.cell_resel_params1_xrtt_r11_present) { - j.write_fieldname("cellReselectionParameters1XRTT-r11"); - params1_xrtt_r11.cell_resel_params1_xrtt_r11.to_json(j); - } - if (params1_xrtt_r11.ac_barr_cfg1_xrtt_r11_present) { - j.write_fieldname("ac-BarringConfig1XRTT-r11"); - params1_xrtt_r11.ac_barr_cfg1_xrtt_r11.to_json(j); - } - if (params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11_present) { - j.write_bool("csfb-SupportForDualRxUEs-r11", params1_xrtt_r11.csfb_support_for_dual_rx_ues_r11); - } - if (params1_xrtt_r11.csfb_dual_rx_tx_support_r11_present) { - j.write_str("csfb-DualRxTxSupport-r11", "true"); + if (multi_band_info_list_r12_present) { + j.start_array("multiBandInfoList-r12"); + for (const auto& e1 : multi_band_info_list_r12) { + j.write_int(e1); } - j.end_obj(); + j.end_array(); + } + if (reduced_meas_performance_r12_present) { + j.write_str("reducedMeasPerformance-r12", "true"); } j.end_obj(); } -void params_cdma2000_r11_s::sys_time_info_r11_c_::set(types::options e) -{ - type_ = e; -} -void params_cdma2000_r11_s::sys_time_info_r11_c_::to_json(json_writer& j) const +// CarrierFreqUTRA-TDD ::= SEQUENCE +SRSASN_CODE carrier_freq_utra_tdd_s::pack(bit_ref& bref) const { - j.start_obj(); - switch (type_) { - case types::explicit_value: - j.write_fieldname("explicitValue"); - c.to_json(j); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); + + HANDLE_CODE(pack_integer(bref, carrier_freq, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); } - j.end_obj(); + HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(pack_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); + + return SRSASN_SUCCESS; } -SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::pack(bit_ref& bref) const +SRSASN_CODE carrier_freq_utra_tdd_s::unpack(cbit_ref& bref) { - type_.pack(bref); - switch (type_) { - case types::explicit_value: - HANDLE_CODE(c.pack(bref)); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); + + HANDLE_CODE(unpack_integer(carrier_freq, bref, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); } + HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(unpack_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); + return SRSASN_SUCCESS; } -SRSASN_CODE params_cdma2000_r11_s::sys_time_info_r11_c_::unpack(cbit_ref& bref) +void carrier_freq_utra_tdd_s::to_json(json_writer& j) const { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::explicit_value: - HANDLE_CODE(c.unpack(bref)); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "params_cdma2000_r11_s::sys_time_info_r11_c_"); - return SRSASN_ERROR_DECODE_FAIL; + j.start_obj(); + j.write_int("carrierFreq", carrier_freq); + if (cell_resel_prio_present) { + j.write_int("cellReselectionPriority", cell_resel_prio); } - return SRSASN_SUCCESS; + j.write_int("threshX-High", thresh_x_high); + j.write_int("threshX-Low", thresh_x_low); + j.write_int("q-RxLevMin", q_rx_lev_min); + j.write_int("p-MaxUTRA", p_max_utra); + j.end_obj(); } -// RedistributionInterFreqInfo-r13 ::= SEQUENCE -SRSASN_CODE redist_inter_freq_info_r13_s::pack(bit_ref& bref) const +// CarrierFreqUTRA-TDD-r12 ::= SEQUENCE +SRSASN_CODE carrier_freq_utra_tdd_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(redist_factor_freq_r13_present, 1)); - HANDLE_CODE(bref.pack(redist_neigh_cell_list_r13_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); - if (redist_factor_freq_r13_present) { - HANDLE_CODE(pack_integer(bref, redist_factor_freq_r13, (uint8_t)1u, (uint8_t)10u)); - } - if (redist_neigh_cell_list_r13_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, redist_neigh_cell_list_r13, 1, 16)); + HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); } + HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(pack_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -SRSASN_CODE redist_inter_freq_info_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE carrier_freq_utra_tdd_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(redist_factor_freq_r13_present, 1)); - HANDLE_CODE(bref.unpack(redist_neigh_cell_list_r13_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); - if (redist_factor_freq_r13_present) { - HANDLE_CODE(unpack_integer(redist_factor_freq_r13, bref, (uint8_t)1u, (uint8_t)10u)); - } - if (redist_neigh_cell_list_r13_present) { - HANDLE_CODE(unpack_dyn_seq_of(redist_neigh_cell_list_r13, bref, 1, 16)); + HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint16_t)0u, (uint16_t)16383u)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); } + HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); + HANDLE_CODE(unpack_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -void redist_inter_freq_info_r13_s::to_json(json_writer& j) const +void carrier_freq_utra_tdd_r12_s::to_json(json_writer& j) const { j.start_obj(); - if (redist_factor_freq_r13_present) { - j.write_int("redistributionFactorFreq-r13", redist_factor_freq_r13); + j.write_int("carrierFreq-r12", carrier_freq_r12); + if (cell_resel_prio_r12_present) { + j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); } - if (redist_neigh_cell_list_r13_present) { - j.start_array("redistributionNeighCellList-r13"); - for (const auto& e1 : redist_neigh_cell_list_r13) { - e1.to_json(j); - } - j.end_array(); + j.write_int("threshX-High-r12", thresh_x_high_r12); + j.write_int("threshX-Low-r12", thresh_x_low_r12); + j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); + j.write_int("p-MaxUTRA-r12", p_max_utra_r12); + if (reduced_meas_performance_r12_present) { + j.write_str("reducedMeasPerformance-r12", "true"); } j.end_obj(); } -// SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE -SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::pack(bit_ref& bref) const +// CarrierFreqsInfoGERAN ::= SEQUENCE +SRSASN_CODE carrier_freqs_info_geran_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(tx_pwr_info_r13_present, 1)); - HANDLE_CODE(bref.pack(ref_carrier_common_r13_present, 1)); - HANDLE_CODE(bref.pack(disc_sync_cfg_r13_present, 1)); - HANDLE_CODE(bref.pack(disc_cell_sel_info_r13_present, 1)); - - if (tx_pwr_info_r13_present) { - HANDLE_CODE(pack_fixed_seq_of(bref, &(tx_pwr_info_r13)[0], tx_pwr_info_r13.size())); + bref.pack(ext, 1); + HANDLE_CODE(carrier_freqs.pack(bref)); + HANDLE_CODE(bref.pack(common_info.cell_resel_prio_present, 1)); + HANDLE_CODE(bref.pack(common_info.p_max_geran_present, 1)); + if (common_info.cell_resel_prio_present) { + HANDLE_CODE(pack_integer(bref, common_info.cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); } - if (disc_sync_cfg_r13_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_sync_cfg_r13, 1, 16)); - } - if (disc_cell_sel_info_r13_present) { - HANDLE_CODE(disc_cell_sel_info_r13.pack(bref)); + HANDLE_CODE(common_info.ncc_permitted.pack(bref)); + HANDLE_CODE(pack_integer(bref, common_info.q_rx_lev_min, (uint8_t)0u, (uint8_t)45u)); + if (common_info.p_max_geran_present) { + HANDLE_CODE(pack_integer(bref, common_info.p_max_geran, (uint8_t)0u, (uint8_t)39u)); } + HANDLE_CODE(pack_integer(bref, common_info.thresh_x_high, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, common_info.thresh_x_low, (uint8_t)0u, (uint8_t)31u)); return SRSASN_SUCCESS; } -SRSASN_CODE sl_disc_cfg_other_inter_freq_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE carrier_freqs_info_geran_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(tx_pwr_info_r13_present, 1)); - HANDLE_CODE(bref.unpack(ref_carrier_common_r13_present, 1)); - HANDLE_CODE(bref.unpack(disc_sync_cfg_r13_present, 1)); - HANDLE_CODE(bref.unpack(disc_cell_sel_info_r13_present, 1)); - - if (tx_pwr_info_r13_present) { - HANDLE_CODE(unpack_fixed_seq_of(&(tx_pwr_info_r13)[0], bref, tx_pwr_info_r13.size())); - } - if (disc_sync_cfg_r13_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_sync_cfg_r13, bref, 1, 16)); + bref.unpack(ext, 1); + HANDLE_CODE(carrier_freqs.unpack(bref)); + HANDLE_CODE(bref.unpack(common_info.cell_resel_prio_present, 1)); + HANDLE_CODE(bref.unpack(common_info.p_max_geran_present, 1)); + if (common_info.cell_resel_prio_present) { + HANDLE_CODE(unpack_integer(common_info.cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); } - if (disc_cell_sel_info_r13_present) { - HANDLE_CODE(disc_cell_sel_info_r13.unpack(bref)); + HANDLE_CODE(common_info.ncc_permitted.unpack(bref)); + HANDLE_CODE(unpack_integer(common_info.q_rx_lev_min, bref, (uint8_t)0u, (uint8_t)45u)); + if (common_info.p_max_geran_present) { + HANDLE_CODE(unpack_integer(common_info.p_max_geran, bref, (uint8_t)0u, (uint8_t)39u)); } + HANDLE_CODE(unpack_integer(common_info.thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(common_info.thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); return SRSASN_SUCCESS; } -void sl_disc_cfg_other_inter_freq_r13_s::to_json(json_writer& j) const +void carrier_freqs_info_geran_s::to_json(json_writer& j) const { j.start_obj(); - if (tx_pwr_info_r13_present) { - j.start_array("txPowerInfo-r13"); - for (const auto& e1 : tx_pwr_info_r13) { - e1.to_json(j); - } - j.end_array(); - } - if (ref_carrier_common_r13_present) { - j.write_str("refCarrierCommon-r13", "pCell"); - } - if (disc_sync_cfg_r13_present) { - j.start_array("discSyncConfig-r13"); - for (const auto& e1 : disc_sync_cfg_r13) { - e1.to_json(j); - } - j.end_array(); + j.write_fieldname("carrierFreqs"); + carrier_freqs.to_json(j); + j.write_fieldname("commonInfo"); + j.start_obj(); + if (common_info.cell_resel_prio_present) { + j.write_int("cellReselectionPriority", common_info.cell_resel_prio); } - if (disc_cell_sel_info_r13_present) { - j.write_fieldname("discCellSelectionInfo-r13"); - disc_cell_sel_info_r13.to_json(j); + j.write_str("ncc-Permitted", common_info.ncc_permitted.to_string()); + j.write_int("q-RxLevMin", common_info.q_rx_lev_min); + if (common_info.p_max_geran_present) { + j.write_int("p-MaxGERAN", common_info.p_max_geran); } + j.write_int("threshX-High", common_info.thresh_x_high); + j.write_int("threshX-Low", common_info.thresh_x_low); + j.end_obj(); j.end_obj(); } -// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v10l0_ies_s::pack(bit_ref& bref) const +// EAB-Config-r11 ::= SEQUENCE +SRSASN_CODE eab_cfg_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } + HANDLE_CODE(eab_category_r11.pack(bref)); + HANDLE_CODE(eab_barr_bitmap_r11.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_v10l0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE eab_cfg_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } + HANDLE_CODE(eab_category_r11.unpack(bref)); + HANDLE_CODE(eab_barr_bitmap_r11.unpack(bref)); return SRSASN_SUCCESS; } -void sib_type1_v10l0_ies_s::to_json(json_writer& j) const +void eab_cfg_r11_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_info_v10l0_present) { - j.start_array("freqBandInfo-v10l0"); - for (const auto& e1 : freq_band_info_v10l0) { - e1.to_json(j); - } - j.end_array(); - } - if (multi_band_info_list_v10l0_present) { - j.start_array("multiBandInfoList-v10l0"); - for (const auto& e1 : multi_band_info_list_v10l0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } + j.write_str("eab-Category-r11", eab_category_r11.to_string()); + j.write_str("eab-BarringBitmap-r11", eab_barr_bitmap_r11.to_string()); j.end_obj(); } -// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v9i0_ies_s::pack(bit_ref& bref) const +std::string eab_cfg_r11_s::eab_category_r11_opts::to_string() const { - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(dummy_present, 1)); - - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"a", "b", "c"}; + return convert_enum_idx(options, 3, value, "eab_cfg_r11_s::eab_category_r11_e_"); } -SRSASN_CODE sib_type2_v9i0_ies_s::unpack(cbit_ref& bref) + +// InterFreqCarrierFreqInfo ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(dummy_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(p_max_present, 1)); + HANDLE_CODE(bref.pack(t_resel_eutra_sf_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.pack(q_offset_freq_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_black_cell_list_present, 1)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + HANDLE_CODE(pack_integer(bref, dl_carrier_freq, (uint32_t)0u, (uint32_t)65535u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-70, (int8_t)-22)); + if (p_max_present) { + HANDLE_CODE(pack_integer(bref, p_max, (int8_t)-30, (int8_t)33)); } - - return SRSASN_SUCCESS; -} -void sib_type2_v9i0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (non_crit_ext_present) { - j.write_str("nonCriticalExtension", non_crit_ext.to_string()); + HANDLE_CODE(pack_integer(bref, t_resel_eutra, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_eutra_sf_present) { + HANDLE_CODE(t_resel_eutra_sf.pack(bref)); } - if (dummy_present) { - j.write_fieldname("dummy"); - j.start_obj(); - j.end_obj(); + HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(allowed_meas_bw.pack(bref)); + HANDLE_CODE(bref.pack(presence_ant_port1, 1)); + if (cell_resel_prio_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); } - j.end_obj(); -} - -// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE -SRSASN_CODE sib_type5_v10j0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10j0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v10j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10j0, 1, 8)); + HANDLE_CODE(neigh_cell_cfg.pack(bref)); + if (q_offset_freq_present) { + HANDLE_CODE(q_offset_freq.pack(bref)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (inter_freq_neigh_cell_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list, 1, 16)); + } + if (inter_freq_black_cell_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list, 1, 16)); } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= q_qual_min_r9_present; + group_flags[0] |= thresh_x_q_r9.is_present(); + group_flags[1] |= q_qual_min_wb_r11_present; + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); + HANDLE_CODE(bref.pack(thresh_x_q_r9.is_present(), 1)); + if (q_qual_min_r9_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); + } + if (thresh_x_q_r9.is_present()) { + HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0u, (uint8_t)31u)); + } + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); + if (q_qual_min_wb_r11_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type5_v10j0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10j0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(p_max_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_eutra_sf_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.unpack(q_offset_freq_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_present, 1)); - if (inter_freq_carrier_freq_list_v10j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10j0, bref, 1, 8)); + HANDLE_CODE(unpack_integer(dl_carrier_freq, bref, (uint32_t)0u, (uint32_t)65535u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); + if (p_max_present) { + HANDLE_CODE(unpack_integer(p_max, bref, (int8_t)-30, (int8_t)33)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + HANDLE_CODE(unpack_integer(t_resel_eutra, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_eutra_sf_present) { + HANDLE_CODE(t_resel_eutra_sf.unpack(bref)); } - - return SRSASN_SUCCESS; -} -void sib_type5_v10j0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (inter_freq_carrier_freq_list_v10j0_present) { - j.start_array("interFreqCarrierFreqList-v10j0"); - for (const auto& e1 : inter_freq_carrier_freq_list_v10j0) { - e1.to_json(j); - } - j.end_array(); + HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(allowed_meas_bw.unpack(bref)); + HANDLE_CODE(bref.unpack(presence_ant_port1, 1)); + if (cell_resel_prio_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + HANDLE_CODE(neigh_cell_cfg.unpack(bref)); + if (q_offset_freq_present) { + HANDLE_CODE(q_offset_freq.unpack(bref)); + } + if (inter_freq_neigh_cell_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list, bref, 1, 16)); + } + if (inter_freq_black_cell_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list, bref, 1, 16)); } - j.end_obj(); -} -// CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE -SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + if (ext) { + ext_groups_unpacker_guard group_flags(2); + group_flags.unpack(bref); - if (multi_band_info_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 86))); - } + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); - return SRSASN_SUCCESS; -} -SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); + bool thresh_x_q_r9_present; + HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); + thresh_x_q_r9.set_present(thresh_x_q_r9_present); + if (q_qual_min_r9_present) { + HANDLE_CODE(unpack_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); + } + if (thresh_x_q_r9.is_present()) { + HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + } + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (multi_band_info_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 86))); + HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); + if (q_qual_min_wb_r11_present) { + HANDLE_CODE(unpack_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); + } + } } - return SRSASN_SUCCESS; } -void carrier_freq_info_utra_fdd_v8h0_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_band_info_list_present) { - j.start_array("multiBandInfoList"); - for (const auto& e1 : multi_band_info_list) { - j.write_int(e1); + j.write_int("dl-CarrierFreq", dl_carrier_freq); + j.write_int("q-RxLevMin", q_rx_lev_min); + if (p_max_present) { + j.write_int("p-Max", p_max); + } + j.write_int("t-ReselectionEUTRA", t_resel_eutra); + if (t_resel_eutra_sf_present) { + j.write_fieldname("t-ReselectionEUTRA-SF"); + t_resel_eutra_sf.to_json(j); + } + j.write_int("threshX-High", thresh_x_high); + j.write_int("threshX-Low", thresh_x_low); + j.write_str("allowedMeasBandwidth", allowed_meas_bw.to_string()); + j.write_bool("presenceAntennaPort1", presence_ant_port1); + if (cell_resel_prio_present) { + j.write_int("cellReselectionPriority", cell_resel_prio); + } + j.write_str("neighCellConfig", neigh_cell_cfg.to_string()); + if (q_offset_freq_present) { + j.write_str("q-OffsetFreq", q_offset_freq.to_string()); + } + if (inter_freq_neigh_cell_list_present) { + j.start_array("interFreqNeighCellList"); + for (const auto& e1 : inter_freq_neigh_cell_list) { + e1.to_json(j); + } + j.end_array(); + } + if (inter_freq_black_cell_list_present) { + j.start_array("interFreqBlackCellList"); + for (const auto& e1 : inter_freq_black_cell_list) { + e1.to_json(j); } j.end_array(); } + if (ext) { + if (q_qual_min_r9_present) { + j.write_int("q-QualMin-r9", q_qual_min_r9); + } + if (thresh_x_q_r9.is_present()) { + j.write_fieldname("threshX-Q-r9"); + j.start_obj(); + j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); + j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); + j.end_obj(); + } + if (q_qual_min_wb_r11_present) { + j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); + } + } j.end_obj(); } -// CarrierFreqNR-r15 ::= SEQUENCE -SRSASN_CODE carrier_freq_nr_r15_s::pack(bit_ref& bref) const +// InterFreqCarrierFreqInfo-r12 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_r12_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(multi_band_info_list_r15_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_sul_r15_present, 1)); - HANDLE_CODE(bref.pack(meas_timing_cfg_r15_present, 1)); - HANDLE_CODE(bref.pack(ss_rssi_meas_r15_present, 1)); - HANDLE_CODE(bref.pack(cell_resel_prio_r15_present, 1)); - HANDLE_CODE(bref.pack(cell_resel_sub_prio_r15_present, 1)); - HANDLE_CODE(bref.pack(thresh_x_q_r15_present, 1)); - HANDLE_CODE(bref.pack(q_rx_lev_min_sul_r15_present, 1)); - HANDLE_CODE(bref.pack(ns_pmax_list_nr_r15_present, 1)); - HANDLE_CODE(bref.pack(q_qual_min_r15_present, 1)); - HANDLE_CODE(bref.pack(max_rs_idx_cell_qual_r15_present, 1)); - HANDLE_CODE(bref.pack(thresh_rs_idx_r15_present, 1)); + HANDLE_CODE(bref.pack(p_max_r12_present, 1)); + HANDLE_CODE(bref.pack(t_resel_eutra_sf_r12_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.pack(q_offset_freq_r12_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_r12_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_black_cell_list_r12_present, 1)); + HANDLE_CODE(bref.pack(q_qual_min_r12_present, 1)); + HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); + HANDLE_CODE(bref.pack(q_qual_min_wb_r12_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); + HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - HANDLE_CODE(pack_integer(bref, carrier_freq_r15, (uint32_t)0u, (uint32_t)3279165u)); - if (multi_band_info_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r15, 1, 32, integer_packer(1, 1024))); - } - if (multi_band_info_list_sul_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_sul_r15, 1, 32, integer_packer(1, 1024))); + HANDLE_CODE(pack_integer(bref, dl_carrier_freq_r12, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-70, (int8_t)-22)); + if (p_max_r12_present) { + HANDLE_CODE(pack_integer(bref, p_max_r12, (int8_t)-30, (int8_t)33)); } - if (meas_timing_cfg_r15_present) { - HANDLE_CODE(meas_timing_cfg_r15.pack(bref)); + HANDLE_CODE(pack_integer(bref, t_resel_eutra_r12, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_eutra_sf_r12_present) { + HANDLE_CODE(t_resel_eutra_sf_r12.pack(bref)); } - HANDLE_CODE(subcarrier_spacing_ssb_r15.pack(bref)); - if (ss_rssi_meas_r15_present) { - HANDLE_CODE(ss_rssi_meas_r15.pack(bref)); + HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(allowed_meas_bw_r12.pack(bref)); + HANDLE_CODE(bref.pack(presence_ant_port1_r12, 1)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); } - if (cell_resel_prio_r15_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio_r15, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(neigh_cell_cfg_r12.pack(bref)); + if (q_offset_freq_r12_present) { + HANDLE_CODE(q_offset_freq_r12.pack(bref)); } - if (cell_resel_sub_prio_r15_present) { - HANDLE_CODE(cell_resel_sub_prio_r15.pack(bref)); + if (inter_freq_neigh_cell_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list_r12, 1, 16)); } - HANDLE_CODE(pack_integer(bref, thresh_x_high_r15, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low_r15, (uint8_t)0u, (uint8_t)31u)); - if (thresh_x_q_r15_present) { - HANDLE_CODE(pack_integer(bref, thresh_x_q_r15.thresh_x_high_q_r15, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_q_r15.thresh_x_low_q_r15, (uint8_t)0u, (uint8_t)31u)); + if (inter_freq_black_cell_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list_r12, 1, 16)); } - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r15, (int8_t)-70, (int8_t)-22)); - if (q_rx_lev_min_sul_r15_present) { - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_sul_r15, (int8_t)-70, (int8_t)-22)); + if (q_qual_min_r12_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_r12, (int8_t)-34, (int8_t)-3)); } - HANDLE_CODE(pack_integer(bref, p_max_nr_r15, (int8_t)-30, (int8_t)33)); - if (ns_pmax_list_nr_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, ns_pmax_list_nr_r15, 1, 8)); + if (thresh_x_q_r12_present) { + HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0u, (uint8_t)31u)); } - if (q_qual_min_r15_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_r15, (int8_t)-43, (int8_t)-12)); + if (q_qual_min_wb_r12_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r12, (int8_t)-34, (int8_t)-3)); } - HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15, 1)); - if (max_rs_idx_cell_qual_r15_present) { - HANDLE_CODE(pack_integer(bref, max_rs_idx_cell_qual_r15, (uint8_t)1u, (uint8_t)16u)); + if (multi_band_info_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, integer_packer(1, 256))); } - if (thresh_rs_idx_r15_present) { - HANDLE_CODE(thresh_rs_idx_r15.pack(bref)); + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); } - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= multi_band_ns_pmax_list_nr_v1550.is_present(); - group_flags[0] |= multi_band_ns_pmax_list_nr_sul_v1550.is_present(); - group_flags[0] |= ssb_to_measure_r15.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_v1550.is_present(), 1)); - HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_sul_v1550.is_present(), 1)); - HANDLE_CODE(bref.pack(ssb_to_measure_r15.is_present(), 1)); - if (multi_band_ns_pmax_list_nr_v1550.is_present()) { - HANDLE_CODE( - pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_v1550, 1, 31, SeqOfPacker(1, 8, Packer()))); - } - if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { - HANDLE_CODE( - pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_sul_v1550, 1, 32, SeqOfPacker(1, 8, Packer()))); - } - if (ssb_to_measure_r15.is_present()) { - HANDLE_CODE(ssb_to_measure_r15->pack(bref)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE carrier_freq_nr_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_r12_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(multi_band_info_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_sul_r15_present, 1)); - HANDLE_CODE(bref.unpack(meas_timing_cfg_r15_present, 1)); - HANDLE_CODE(bref.unpack(ss_rssi_meas_r15_present, 1)); - HANDLE_CODE(bref.unpack(cell_resel_prio_r15_present, 1)); - HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r15_present, 1)); - HANDLE_CODE(bref.unpack(thresh_x_q_r15_present, 1)); - HANDLE_CODE(bref.unpack(q_rx_lev_min_sul_r15_present, 1)); - HANDLE_CODE(bref.unpack(ns_pmax_list_nr_r15_present, 1)); - HANDLE_CODE(bref.unpack(q_qual_min_r15_present, 1)); - HANDLE_CODE(bref.unpack(max_rs_idx_cell_qual_r15_present, 1)); - HANDLE_CODE(bref.unpack(thresh_rs_idx_r15_present, 1)); + HANDLE_CODE(bref.unpack(p_max_r12_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_eutra_sf_r12_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); + HANDLE_CODE(bref.unpack(q_offset_freq_r12_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_r12_present, 1)); + HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_wb_r12_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - HANDLE_CODE(unpack_integer(carrier_freq_r15, bref, (uint32_t)0u, (uint32_t)3279165u)); - if (multi_band_info_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r15, bref, 1, 32, integer_packer(1, 1024))); - } - if (multi_band_info_list_sul_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_sul_r15, bref, 1, 32, integer_packer(1, 1024))); + HANDLE_CODE(unpack_integer(dl_carrier_freq_r12, bref, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-70, (int8_t)-22)); + if (p_max_r12_present) { + HANDLE_CODE(unpack_integer(p_max_r12, bref, (int8_t)-30, (int8_t)33)); } - if (meas_timing_cfg_r15_present) { - HANDLE_CODE(meas_timing_cfg_r15.unpack(bref)); + HANDLE_CODE(unpack_integer(t_resel_eutra_r12, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_eutra_sf_r12_present) { + HANDLE_CODE(t_resel_eutra_sf_r12.unpack(bref)); } - HANDLE_CODE(subcarrier_spacing_ssb_r15.unpack(bref)); - if (ss_rssi_meas_r15_present) { - HANDLE_CODE(ss_rssi_meas_r15.unpack(bref)); + HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(allowed_meas_bw_r12.unpack(bref)); + HANDLE_CODE(bref.unpack(presence_ant_port1_r12, 1)); + if (cell_resel_prio_r12_present) { + HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); } - if (cell_resel_prio_r15_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio_r15, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(neigh_cell_cfg_r12.unpack(bref)); + if (q_offset_freq_r12_present) { + HANDLE_CODE(q_offset_freq_r12.unpack(bref)); } - if (cell_resel_sub_prio_r15_present) { - HANDLE_CODE(cell_resel_sub_prio_r15.unpack(bref)); + if (inter_freq_neigh_cell_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list_r12, bref, 1, 16)); } - HANDLE_CODE(unpack_integer(thresh_x_high_r15, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low_r15, bref, (uint8_t)0u, (uint8_t)31u)); - if (thresh_x_q_r15_present) { - HANDLE_CODE(unpack_integer(thresh_x_q_r15.thresh_x_high_q_r15, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_q_r15.thresh_x_low_q_r15, bref, (uint8_t)0u, (uint8_t)31u)); + if (inter_freq_black_cell_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list_r12, bref, 1, 16)); } - HANDLE_CODE(unpack_integer(q_rx_lev_min_r15, bref, (int8_t)-70, (int8_t)-22)); - if (q_rx_lev_min_sul_r15_present) { - HANDLE_CODE(unpack_integer(q_rx_lev_min_sul_r15, bref, (int8_t)-70, (int8_t)-22)); + if (q_qual_min_r12_present) { + HANDLE_CODE(unpack_integer(q_qual_min_r12, bref, (int8_t)-34, (int8_t)-3)); } - HANDLE_CODE(unpack_integer(p_max_nr_r15, bref, (int8_t)-30, (int8_t)33)); - if (ns_pmax_list_nr_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(ns_pmax_list_nr_r15, bref, 1, 8)); + if (thresh_x_q_r12_present) { + HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); } - if (q_qual_min_r15_present) { - HANDLE_CODE(unpack_integer(q_qual_min_r15, bref, (int8_t)-43, (int8_t)-12)); + if (q_qual_min_wb_r12_present) { + HANDLE_CODE(unpack_integer(q_qual_min_wb_r12, bref, (int8_t)-34, (int8_t)-3)); } - HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15, 1)); - if (max_rs_idx_cell_qual_r15_present) { - HANDLE_CODE(unpack_integer(max_rs_idx_cell_qual_r15, bref, (uint8_t)1u, (uint8_t)16u)); + if (multi_band_info_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, integer_packer(1, 256))); } - if (thresh_rs_idx_r15_present) { - HANDLE_CODE(thresh_rs_idx_r15.unpack(bref)); + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); } - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool multi_band_ns_pmax_list_nr_v1550_present; - HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_v1550_present, 1)); - multi_band_ns_pmax_list_nr_v1550.set_present(multi_band_ns_pmax_list_nr_v1550_present); - bool multi_band_ns_pmax_list_nr_sul_v1550_present; - HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_sul_v1550_present, 1)); - multi_band_ns_pmax_list_nr_sul_v1550.set_present(multi_band_ns_pmax_list_nr_sul_v1550_present); - bool ssb_to_measure_r15_present; - HANDLE_CODE(bref.unpack(ssb_to_measure_r15_present, 1)); - ssb_to_measure_r15.set_present(ssb_to_measure_r15_present); - if (multi_band_ns_pmax_list_nr_v1550.is_present()) { - HANDLE_CODE( - unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_v1550, bref, 1, 31, SeqOfPacker(1, 8, Packer()))); - } - if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { - HANDLE_CODE( - unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_sul_v1550, bref, 1, 32, SeqOfPacker(1, 8, Packer()))); - } - if (ssb_to_measure_r15.is_present()) { - HANDLE_CODE(ssb_to_measure_r15->unpack(bref)); - } - } - } return SRSASN_SUCCESS; } -void carrier_freq_nr_r15_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_r12_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq-r15", carrier_freq_r15); - if (multi_band_info_list_r15_present) { - j.start_array("multiBandInfoList-r15"); - for (const auto& e1 : multi_band_info_list_r15) { - j.write_int(e1); + j.write_int("dl-CarrierFreq-r12", dl_carrier_freq_r12); + j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); + if (p_max_r12_present) { + j.write_int("p-Max-r12", p_max_r12); + } + j.write_int("t-ReselectionEUTRA-r12", t_resel_eutra_r12); + if (t_resel_eutra_sf_r12_present) { + j.write_fieldname("t-ReselectionEUTRA-SF-r12"); + t_resel_eutra_sf_r12.to_json(j); + } + j.write_int("threshX-High-r12", thresh_x_high_r12); + j.write_int("threshX-Low-r12", thresh_x_low_r12); + j.write_str("allowedMeasBandwidth-r12", allowed_meas_bw_r12.to_string()); + j.write_bool("presenceAntennaPort1-r12", presence_ant_port1_r12); + if (cell_resel_prio_r12_present) { + j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); + } + j.write_str("neighCellConfig-r12", neigh_cell_cfg_r12.to_string()); + if (q_offset_freq_r12_present) { + j.write_str("q-OffsetFreq-r12", q_offset_freq_r12.to_string()); + } + if (inter_freq_neigh_cell_list_r12_present) { + j.start_array("interFreqNeighCellList-r12"); + for (const auto& e1 : inter_freq_neigh_cell_list_r12) { + e1.to_json(j); } j.end_array(); } - if (multi_band_info_list_sul_r15_present) { - j.start_array("multiBandInfoListSUL-r15"); - for (const auto& e1 : multi_band_info_list_sul_r15) { - j.write_int(e1); + if (inter_freq_black_cell_list_r12_present) { + j.start_array("interFreqBlackCellList-r12"); + for (const auto& e1 : inter_freq_black_cell_list_r12) { + e1.to_json(j); } j.end_array(); } - if (meas_timing_cfg_r15_present) { - j.write_fieldname("measTimingConfig-r15"); - meas_timing_cfg_r15.to_json(j); - } - j.write_str("subcarrierSpacingSSB-r15", subcarrier_spacing_ssb_r15.to_string()); - if (ss_rssi_meas_r15_present) { - j.write_fieldname("ss-RSSI-Measurement-r15"); - ss_rssi_meas_r15.to_json(j); - } - if (cell_resel_prio_r15_present) { - j.write_int("cellReselectionPriority-r15", cell_resel_prio_r15); - } - if (cell_resel_sub_prio_r15_present) { - j.write_str("cellReselectionSubPriority-r15", cell_resel_sub_prio_r15.to_string()); + if (q_qual_min_r12_present) { + j.write_int("q-QualMin-r12", q_qual_min_r12); } - j.write_int("threshX-High-r15", thresh_x_high_r15); - j.write_int("threshX-Low-r15", thresh_x_low_r15); - if (thresh_x_q_r15_present) { - j.write_fieldname("threshX-Q-r15"); + if (thresh_x_q_r12_present) { + j.write_fieldname("threshX-Q-r12"); j.start_obj(); - j.write_int("threshX-HighQ-r15", thresh_x_q_r15.thresh_x_high_q_r15); - j.write_int("threshX-LowQ-r15", thresh_x_q_r15.thresh_x_low_q_r15); + j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); + j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); j.end_obj(); } - j.write_int("q-RxLevMin-r15", q_rx_lev_min_r15); - if (q_rx_lev_min_sul_r15_present) { - j.write_int("q-RxLevMinSUL-r15", q_rx_lev_min_sul_r15); + if (q_qual_min_wb_r12_present) { + j.write_int("q-QualMinWB-r12", q_qual_min_wb_r12); } - j.write_int("p-MaxNR-r15", p_max_nr_r15); - if (ns_pmax_list_nr_r15_present) { - j.start_array("ns-PmaxListNR-r15"); - for (const auto& e1 : ns_pmax_list_nr_r15) { - e1.to_json(j); + if (multi_band_info_list_r12_present) { + j.start_array("multiBandInfoList-r12"); + for (const auto& e1 : multi_band_info_list_r12) { + j.write_int(e1); } j.end_array(); } - if (q_qual_min_r15_present) { - j.write_int("q-QualMin-r15", q_qual_min_r15); - } - j.write_bool("deriveSSB-IndexFromCell-r15", derive_ssb_idx_from_cell_r15); - if (max_rs_idx_cell_qual_r15_present) { - j.write_int("maxRS-IndexCellQual-r15", max_rs_idx_cell_qual_r15); - } - if (thresh_rs_idx_r15_present) { - j.write_fieldname("threshRS-Index-r15"); - thresh_rs_idx_r15.to_json(j); + if (reduced_meas_performance_r12_present) { + j.write_str("reducedMeasPerformance-r12", "true"); } - if (ext) { - if (multi_band_ns_pmax_list_nr_v1550.is_present()) { - j.start_array("multiBandNsPmaxListNR-v1550"); - for (const auto& e1 : *multi_band_ns_pmax_list_nr_v1550) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } - if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) { - j.start_array("multiBandNsPmaxListNR-SUL-v1550"); - for (const auto& e1 : *multi_band_ns_pmax_list_nr_sul_v1550) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } - if (ssb_to_measure_r15.is_present()) { - j.write_fieldname("ssb-ToMeasure-r15"); - ssb_to_measure_r15->to_json(j); - } + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); } j.end_obj(); } -std::string carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_string() const -{ - static const char* options[] = {"kHz15", "kHz30", "kHz120", "kHz240"}; - return convert_enum_idx(options, 4, value, "carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); -} -uint8_t carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_opts::to_number() const +// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::pack(bit_ref& bref) const { - static const uint8_t options[] = {15, 30, 120, 240}; - return map_enum_number(options, 4, value, "carrier_freq_nr_r15_s::subcarrier_spacing_ssb_r15_e_"); -} + HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); -// CarrierFreqUTRA-FDD ::= SEQUENCE -SRSASN_CODE carrier_freq_utra_fdd_s::pack(bit_ref& bref) const + if (freq_band_info_r10_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); + } + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE inter_freq_carrier_freq_info_v10j0_s::unpack(cbit_ref& bref) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); - HANDLE_CODE(pack_integer(bref, carrier_freq, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); + if (freq_band_info_r10_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); + } + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } - HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(pack_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); - HANDLE_CODE(pack_integer(bref, q_qual_min, (int8_t)-24, (int8_t)0)); - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= thresh_x_q_r9.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(thresh_x_q_r9.is_present(), 1)); - if (thresh_x_q_r9.is_present()) { - HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0u, (uint8_t)31u)); + return SRSASN_SUCCESS; +} +void inter_freq_carrier_freq_info_v10j0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (freq_band_info_r10_present) { + j.start_array("freqBandInfo-r10"); + for (const auto& e1 : freq_band_info_r10) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10j0_present) { + j.start_array("multiBandInfoList-v10j0"); + for (const auto& e1 : multi_band_info_list_v10j0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); } + j.end_array(); } + j.end_array(); } - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE carrier_freq_utra_fdd_s::unpack(cbit_ref& bref) + +// InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::pack(bit_ref& bref) const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - HANDLE_CODE(unpack_integer(carrier_freq, bref, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); } - HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(unpack_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); - HANDLE_CODE(unpack_integer(q_qual_min, bref, (int8_t)-24, (int8_t)0)); - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); + return SRSASN_SUCCESS; +} +SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - bool thresh_x_q_r9_present; - HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); - thresh_x_q_r9.set_present(thresh_x_q_r9_present); - if (thresh_x_q_r9.is_present()) { - HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - } - } + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); } + return SRSASN_SUCCESS; } -void carrier_freq_utra_fdd_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_v1250_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq", carrier_freq); - if (cell_resel_prio_present) { - j.write_int("cellReselectionPriority", cell_resel_prio); + if (reduced_meas_performance_r12_present) { + j.write_str("reducedMeasPerformance-r12", "true"); } - j.write_int("threshX-High", thresh_x_high); - j.write_int("threshX-Low", thresh_x_low); - j.write_int("q-RxLevMin", q_rx_lev_min); - j.write_int("p-MaxUTRA", p_max_utra); - j.write_int("q-QualMin", q_qual_min); - if (ext) { - if (thresh_x_q_r9.is_present()) { - j.write_fieldname("threshX-Q-r9"); - j.start_obj(); - j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); - j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); - j.end_obj(); - } + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); } j.end_obj(); } -// CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE -SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::pack(bit_ref& bref) const +// InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); - HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_sub_prio_r13_present, 1)); + HANDLE_CODE(bref.pack(redist_inter_freq_info_r13_present, 1)); + HANDLE_CODE(bref.pack(cell_sel_info_ce_r13_present, 1)); + HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); - HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); + if (cell_resel_sub_prio_r13_present) { + HANDLE_CODE(cell_resel_sub_prio_r13.pack(bref)); } - HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(pack_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); - HANDLE_CODE(pack_integer(bref, q_qual_min_r12, (int8_t)-24, (int8_t)0)); - if (thresh_x_q_r12_present) { - HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0u, (uint8_t)31u)); + if (redist_inter_freq_info_r13_present) { + HANDLE_CODE(redist_inter_freq_info_r13.pack(bref)); } - if (multi_band_info_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, integer_packer(1, 86))); + if (cell_sel_info_ce_r13_present) { + HANDLE_CODE(cell_sel_info_ce_r13.pack(bref)); + } + if (t_resel_eutra_ce_r13_present) { + HANDLE_CODE(pack_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0u, (uint8_t)15u)); } return SRSASN_SUCCESS; } -SRSASN_CODE carrier_freq_utra_fdd_ext_r12_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r13_present, 1)); + HANDLE_CODE(bref.unpack(redist_inter_freq_info_r13_present, 1)); + HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); - HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); + if (cell_resel_sub_prio_r13_present) { + HANDLE_CODE(cell_resel_sub_prio_r13.unpack(bref)); } - HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(unpack_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); - HANDLE_CODE(unpack_integer(q_qual_min_r12, bref, (int8_t)-24, (int8_t)0)); - if (thresh_x_q_r12_present) { - HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); + if (redist_inter_freq_info_r13_present) { + HANDLE_CODE(redist_inter_freq_info_r13.unpack(bref)); } - if (multi_band_info_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, integer_packer(1, 86))); + if (cell_sel_info_ce_r13_present) { + HANDLE_CODE(cell_sel_info_ce_r13.unpack(bref)); + } + if (t_resel_eutra_ce_r13_present) { + HANDLE_CODE(unpack_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0u, (uint8_t)15u)); } return SRSASN_SUCCESS; } -void carrier_freq_utra_fdd_ext_r12_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq-r12", carrier_freq_r12); - if (cell_resel_prio_r12_present) { - j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); + if (cell_resel_sub_prio_r13_present) { + j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); } - j.write_int("threshX-High-r12", thresh_x_high_r12); - j.write_int("threshX-Low-r12", thresh_x_low_r12); - j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); - j.write_int("p-MaxUTRA-r12", p_max_utra_r12); - j.write_int("q-QualMin-r12", q_qual_min_r12); - if (thresh_x_q_r12_present) { - j.write_fieldname("threshX-Q-r12"); - j.start_obj(); - j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); - j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); - j.end_obj(); + if (redist_inter_freq_info_r13_present) { + j.write_fieldname("redistributionInterFreqInfo-r13"); + redist_inter_freq_info_r13.to_json(j); } - if (multi_band_info_list_r12_present) { - j.start_array("multiBandInfoList-r12"); - for (const auto& e1 : multi_band_info_list_r12) { - j.write_int(e1); - } - j.end_array(); + if (cell_sel_info_ce_r13_present) { + j.write_fieldname("cellSelectionInfoCE-r13"); + cell_sel_info_ce_r13.to_json(j); } - if (reduced_meas_performance_r12_present) { - j.write_str("reducedMeasPerformance-r12", "true"); + if (t_resel_eutra_ce_r13_present) { + j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); } j.end_obj(); } -// CarrierFreqUTRA-TDD ::= SEQUENCE -SRSASN_CODE carrier_freq_utra_tdd_s::pack(bit_ref& bref) const +// InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13_present, 1)); - HANDLE_CODE(pack_integer(bref, carrier_freq, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); + if (cell_sel_info_ce1_r13_present) { + HANDLE_CODE(cell_sel_info_ce1_r13.pack(bref)); } - HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(pack_integer(bref, p_max_utra, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -SRSASN_CODE carrier_freq_utra_tdd_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); + HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); - HANDLE_CODE(unpack_integer(carrier_freq, bref, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + if (cell_sel_info_ce1_r13_present) { + HANDLE_CODE(cell_sel_info_ce1_r13.unpack(bref)); } - HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(unpack_integer(p_max_utra, bref, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -void carrier_freq_utra_tdd_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_v1350_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq", carrier_freq); - if (cell_resel_prio_present) { - j.write_int("cellReselectionPriority", cell_resel_prio); + if (cell_sel_info_ce1_r13_present) { + j.write_fieldname("cellSelectionInfoCE1-r13"); + cell_sel_info_ce1_r13.to_json(j); } - j.write_int("threshX-High", thresh_x_high); - j.write_int("threshX-Low", thresh_x_low); - j.write_int("q-RxLevMin", q_rx_lev_min); - j.write_int("p-MaxUTRA", p_max_utra); j.end_obj(); } -// CarrierFreqUTRA-TDD-r12 ::= SEQUENCE -SRSASN_CODE carrier_freq_utra_tdd_r12_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); +// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360_present, 1)); - HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); + if (cell_sel_info_ce1_v1360_present) { + HANDLE_CODE(cell_sel_info_ce1_v1360.pack(bref)); } - HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(pack_integer(bref, p_max_utra_r12, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -SRSASN_CODE carrier_freq_utra_tdd_r12_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_v1360_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); + HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); - HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint16_t)0u, (uint16_t)16383u)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); + if (cell_sel_info_ce1_v1360_present) { + HANDLE_CODE(cell_sel_info_ce1_v1360.unpack(bref)); } - HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-60, (int8_t)-13)); - HANDLE_CODE(unpack_integer(p_max_utra_r12, bref, (int8_t)-50, (int8_t)33)); return SRSASN_SUCCESS; } -void carrier_freq_utra_tdd_r12_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_v1360_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq-r12", carrier_freq_r12); - if (cell_resel_prio_r12_present) { - j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); - } - j.write_int("threshX-High-r12", thresh_x_high_r12); - j.write_int("threshX-Low-r12", thresh_x_low_r12); - j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); - j.write_int("p-MaxUTRA-r12", p_max_utra_r12); - if (reduced_meas_performance_r12_present) { - j.write_str("reducedMeasPerformance-r12", "true"); + if (cell_sel_info_ce1_v1360_present) { + j.write_fieldname("cellSelectionInfoCE1-v1360"); + cell_sel_info_ce1_v1360.to_json(j); } j.end_obj(); } -// CarrierFreqsInfoGERAN ::= SEQUENCE -SRSASN_CODE carrier_freqs_info_geran_s::pack(bit_ref& bref) const +// InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(carrier_freqs.pack(bref)); - HANDLE_CODE(bref.pack(common_info.cell_resel_prio_present, 1)); - HANDLE_CODE(bref.pack(common_info.p_max_geran_present, 1)); - if (common_info.cell_resel_prio_present) { - HANDLE_CODE(pack_integer(bref, common_info.cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(bref.pack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); + HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530_present, 1)); + + HANDLE_CODE(bref.pack(hsdn_ind_r15, 1)); + if (inter_freq_neigh_hsdn_cell_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_hsdn_cell_list_r15, 1, 16)); } - HANDLE_CODE(common_info.ncc_permitted.pack(bref)); - HANDLE_CODE(pack_integer(bref, common_info.q_rx_lev_min, (uint8_t)0u, (uint8_t)45u)); - if (common_info.p_max_geran_present) { - HANDLE_CODE(pack_integer(bref, common_info.p_max_geran, (uint8_t)0u, (uint8_t)39u)); + if (cell_sel_info_ce_v1530_present) { + HANDLE_CODE(cell_sel_info_ce_v1530.pack(bref)); } - HANDLE_CODE(pack_integer(bref, common_info.thresh_x_high, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, common_info.thresh_x_low, (uint8_t)0u, (uint8_t)31u)); return SRSASN_SUCCESS; } -SRSASN_CODE carrier_freqs_info_geran_s::unpack(cbit_ref& bref) +SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(carrier_freqs.unpack(bref)); - HANDLE_CODE(bref.unpack(common_info.cell_resel_prio_present, 1)); - HANDLE_CODE(bref.unpack(common_info.p_max_geran_present, 1)); - if (common_info.cell_resel_prio_present) { - HANDLE_CODE(unpack_integer(common_info.cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(bref.unpack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); + + HANDLE_CODE(bref.unpack(hsdn_ind_r15, 1)); + if (inter_freq_neigh_hsdn_cell_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); } - HANDLE_CODE(common_info.ncc_permitted.unpack(bref)); - HANDLE_CODE(unpack_integer(common_info.q_rx_lev_min, bref, (uint8_t)0u, (uint8_t)45u)); - if (common_info.p_max_geran_present) { - HANDLE_CODE(unpack_integer(common_info.p_max_geran, bref, (uint8_t)0u, (uint8_t)39u)); + if (cell_sel_info_ce_v1530_present) { + HANDLE_CODE(cell_sel_info_ce_v1530.unpack(bref)); } - HANDLE_CODE(unpack_integer(common_info.thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(common_info.thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); return SRSASN_SUCCESS; } -void carrier_freqs_info_geran_s::to_json(json_writer& j) const +void inter_freq_carrier_freq_info_v1530_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("carrierFreqs"); - carrier_freqs.to_json(j); - j.write_fieldname("commonInfo"); - j.start_obj(); - if (common_info.cell_resel_prio_present) { - j.write_int("cellReselectionPriority", common_info.cell_resel_prio); + j.write_bool("hsdn-Indication-r15", hsdn_ind_r15); + if (inter_freq_neigh_hsdn_cell_list_r15_present) { + j.start_array("interFreqNeighHSDN-CellList-r15"); + for (const auto& e1 : inter_freq_neigh_hsdn_cell_list_r15) { + e1.to_json(j); + } + j.end_array(); } - j.write_str("ncc-Permitted", common_info.ncc_permitted.to_string()); - j.write_int("q-RxLevMin", common_info.q_rx_lev_min); - if (common_info.p_max_geran_present) { - j.write_int("p-MaxGERAN", common_info.p_max_geran); + if (cell_sel_info_ce_v1530_present) { + j.write_fieldname("cellSelectionInfoCE-v1530"); + cell_sel_info_ce_v1530.to_json(j); } - j.write_int("threshX-High", common_info.thresh_x_high); - j.write_int("threshX-Low", common_info.thresh_x_low); - j.end_obj(); j.end_obj(); } -// EAB-Config-r11 ::= SEQUENCE -SRSASN_CODE eab_cfg_r11_s::pack(bit_ref& bref) const +// IntraFreqNeighCellInfo ::= SEQUENCE +SRSASN_CODE intra_freq_neigh_cell_info_s::pack(bit_ref& bref) const { - HANDLE_CODE(eab_category_r11.pack(bref)); - HANDLE_CODE(eab_barr_bitmap_r11.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(pack_integer(bref, pci, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(q_offset_cell.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE eab_cfg_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE intra_freq_neigh_cell_info_s::unpack(cbit_ref& bref) { - HANDLE_CODE(eab_category_r11.unpack(bref)); - HANDLE_CODE(eab_barr_bitmap_r11.unpack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(unpack_integer(pci, bref, (uint16_t)0u, (uint16_t)503u)); + HANDLE_CODE(q_offset_cell.unpack(bref)); return SRSASN_SUCCESS; } -void eab_cfg_r11_s::to_json(json_writer& j) const +void intra_freq_neigh_cell_info_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("eab-Category-r11", eab_category_r11.to_string()); - j.write_str("eab-BarringBitmap-r11", eab_barr_bitmap_r11.to_string()); + j.write_int("physCellId", pci); + j.write_str("q-OffsetCell", q_offset_cell.to_string()); j.end_obj(); } -std::string eab_cfg_r11_s::eab_category_r11_opts::to_string() const +// MBMS-CarrierType-r14 ::= SEQUENCE +SRSASN_CODE mbms_carrier_type_r14_s::pack(bit_ref& bref) const { - static const char* options[] = {"a", "b", "c"}; - return convert_enum_idx(options, 3, value, "eab_cfg_r11_s::eab_category_r11_e_"); -} + HANDLE_CODE(bref.pack(frame_offset_r14_present, 1)); -// InterFreqCarrierFreqInfo ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_s::pack(bit_ref& bref) const + HANDLE_CODE(carrier_type_r14.pack(bref)); + if (frame_offset_r14_present) { + HANDLE_CODE(pack_integer(bref, frame_offset_r14, (uint8_t)0u, (uint8_t)3u)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE mbms_carrier_type_r14_s::unpack(cbit_ref& bref) { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(p_max_present, 1)); - HANDLE_CODE(bref.pack(t_resel_eutra_sf_present, 1)); - HANDLE_CODE(bref.pack(cell_resel_prio_present, 1)); - HANDLE_CODE(bref.pack(q_offset_freq_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_black_cell_list_present, 1)); + HANDLE_CODE(bref.unpack(frame_offset_r14_present, 1)); - HANDLE_CODE(pack_integer(bref, dl_carrier_freq, (uint32_t)0u, (uint32_t)65535u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min, (int8_t)-70, (int8_t)-22)); - if (p_max_present) { - HANDLE_CODE(pack_integer(bref, p_max, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(pack_integer(bref, t_resel_eutra, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_eutra_sf_present) { - HANDLE_CODE(t_resel_eutra_sf.pack(bref)); - } - HANDLE_CODE(pack_integer(bref, thresh_x_high, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(allowed_meas_bw.pack(bref)); - HANDLE_CODE(bref.pack(presence_ant_port1, 1)); - if (cell_resel_prio_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); - } - HANDLE_CODE(neigh_cell_cfg.pack(bref)); - if (q_offset_freq_present) { - HANDLE_CODE(q_offset_freq.pack(bref)); - } - if (inter_freq_neigh_cell_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list, 1, 16)); - } - if (inter_freq_black_cell_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list, 1, 16)); + HANDLE_CODE(carrier_type_r14.unpack(bref)); + if (frame_offset_r14_present) { + HANDLE_CODE(unpack_integer(frame_offset_r14, bref, (uint8_t)0u, (uint8_t)3u)); } - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= q_qual_min_r9_present; - group_flags[0] |= thresh_x_q_r9.is_present(); - group_flags[1] |= q_qual_min_wb_r11_present; - group_flags.pack(bref); + return SRSASN_SUCCESS; +} +void mbms_carrier_type_r14_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("carrierType-r14", carrier_type_r14.to_string()); + if (frame_offset_r14_present) { + j.write_int("frameOffset-r14", frame_offset_r14); + } + j.end_obj(); +} - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); +std::string mbms_carrier_type_r14_s::carrier_type_r14_opts::to_string() const +{ + static const char* options[] = {"mbms", "fembmsMixed", "fembmsDedicated"}; + return convert_enum_idx(options, 3, value, "mbms_carrier_type_r14_s::carrier_type_r14_e_"); +} - HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); - HANDLE_CODE(bref.pack(thresh_x_q_r9.is_present(), 1)); - if (q_qual_min_r9_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); - } - if (thresh_x_q_r9.is_present()) { - HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_high_q_r9, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_q_r9->thresh_x_low_q_r9, (uint8_t)0u, (uint8_t)31u)); - } - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); +// MBMS-SAI-InterFreq-r11 ::= SEQUENCE +SRSASN_CODE mbms_sai_inter_freq_r11_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, dl_carrier_freq_r11, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_list_r11, 1, 64, integer_packer(0, 65535))); - HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); - if (q_qual_min_wb_r11_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_s::unpack(cbit_ref& bref) +SRSASN_CODE mbms_sai_inter_freq_r11_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(p_max_present, 1)); - HANDLE_CODE(bref.unpack(t_resel_eutra_sf_present, 1)); - HANDLE_CODE(bref.unpack(cell_resel_prio_present, 1)); - HANDLE_CODE(bref.unpack(q_offset_freq_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_present, 1)); + HANDLE_CODE(unpack_integer(dl_carrier_freq_r11, bref, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_list_r11, bref, 1, 64, integer_packer(0, 65535))); - HANDLE_CODE(unpack_integer(dl_carrier_freq, bref, (uint32_t)0u, (uint32_t)65535u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); - if (p_max_present) { - HANDLE_CODE(unpack_integer(p_max, bref, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(unpack_integer(t_resel_eutra, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_eutra_sf_present) { - HANDLE_CODE(t_resel_eutra_sf.unpack(bref)); - } - HANDLE_CODE(unpack_integer(thresh_x_high, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(allowed_meas_bw.unpack(bref)); - HANDLE_CODE(bref.unpack(presence_ant_port1, 1)); - if (cell_resel_prio_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + return SRSASN_SUCCESS; +} +void mbms_sai_inter_freq_r11_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("dl-CarrierFreq-r11", dl_carrier_freq_r11); + j.start_array("mbms-SAI-List-r11"); + for (const auto& e1 : mbms_sai_list_r11) { + j.write_int(e1); } - HANDLE_CODE(neigh_cell_cfg.unpack(bref)); - if (q_offset_freq_present) { - HANDLE_CODE(q_offset_freq.unpack(bref)); + j.end_array(); + j.end_obj(); +} + +// MBMS-SAI-InterFreq-v1140 ::= SEQUENCE +SRSASN_CODE mbms_sai_inter_freq_v1140_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(multi_band_info_list_r11_present, 1)); + + if (multi_band_info_list_r11_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r11, 1, 8, integer_packer(1, 256))); } - if (inter_freq_neigh_cell_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list, bref, 1, 16)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE mbms_sai_inter_freq_v1140_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(multi_band_info_list_r11_present, 1)); + + if (multi_band_info_list_r11_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r11, bref, 1, 8, integer_packer(1, 256))); } - if (inter_freq_black_cell_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list, bref, 1, 16)); + + return SRSASN_SUCCESS; +} +void mbms_sai_inter_freq_v1140_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (multi_band_info_list_r11_present) { + j.start_array("multiBandInfoList-r11"); + for (const auto& e1 : multi_band_info_list_r11) { + j.write_int(e1); + } + j.end_array(); } + j.end_obj(); +} + +// MBSFN-AreaInfo-r9 ::= SEQUENCE +SRSASN_CODE mbsfn_area_info_r9_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(pack_integer(bref, mbsfn_area_id_r9, (uint16_t)0u, (uint16_t)255u)); + HANDLE_CODE(non_mbsfn_region_len.pack(bref)); + HANDLE_CODE(pack_integer(bref, notif_ind_r9, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(mcch_cfg_r9.mcch_repeat_period_r9.pack(bref)); + HANDLE_CODE(pack_integer(bref, mcch_cfg_r9.mcch_offset_r9, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(mcch_cfg_r9.mcch_mod_period_r9.pack(bref)); + HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.pack(bref)); + HANDLE_CODE(mcch_cfg_r9.sig_mcs_r9.pack(bref)); if (ext) { - ext_groups_unpacker_guard group_flags(2); - group_flags.unpack(bref); + ext_groups_packer_guard group_flags; + group_flags[0] |= mcch_cfg_r14.is_present(); + group_flags[0] |= subcarrier_spacing_mbms_r14_present; + group_flags.pack(bref); if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); + varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); - bool thresh_x_q_r9_present; - HANDLE_CODE(bref.unpack(thresh_x_q_r9_present, 1)); - thresh_x_q_r9.set_present(thresh_x_q_r9_present); - if (q_qual_min_r9_present) { - HANDLE_CODE(unpack_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); + HANDLE_CODE(bref.pack(mcch_cfg_r14.is_present(), 1)); + HANDLE_CODE(bref.pack(subcarrier_spacing_mbms_r14_present, 1)); + if (mcch_cfg_r14.is_present()) { + HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); + HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); + if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { + HANDLE_CODE(mcch_cfg_r14->mcch_repeat_period_v1430.pack(bref)); + } + if (mcch_cfg_r14->mcch_mod_period_v1430_present) { + HANDLE_CODE(mcch_cfg_r14->mcch_mod_period_v1430.pack(bref)); + } } - if (thresh_x_q_r9.is_present()) { - HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_high_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_q_r9->thresh_x_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + if (subcarrier_spacing_mbms_r14_present) { + HANDLE_CODE(subcarrier_spacing_mbms_r14.pack(bref)); } } - if (group_flags[1]) { + } + return SRSASN_SUCCESS; +} +SRSASN_CODE mbsfn_area_info_r9_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(unpack_integer(mbsfn_area_id_r9, bref, (uint16_t)0u, (uint16_t)255u)); + HANDLE_CODE(non_mbsfn_region_len.unpack(bref)); + HANDLE_CODE(unpack_integer(notif_ind_r9, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(mcch_cfg_r9.mcch_repeat_period_r9.unpack(bref)); + HANDLE_CODE(unpack_integer(mcch_cfg_r9.mcch_offset_r9, bref, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(mcch_cfg_r9.mcch_mod_period_r9.unpack(bref)); + HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.unpack(bref)); + HANDLE_CODE(mcch_cfg_r9.sig_mcs_r9.unpack(bref)); + + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); - if (q_qual_min_wb_r11_present) { - HANDLE_CODE(unpack_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); + bool mcch_cfg_r14_present; + HANDLE_CODE(bref.unpack(mcch_cfg_r14_present, 1)); + mcch_cfg_r14.set_present(mcch_cfg_r14_present); + HANDLE_CODE(bref.unpack(subcarrier_spacing_mbms_r14_present, 1)); + if (mcch_cfg_r14.is_present()) { + HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); + HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); + if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { + HANDLE_CODE(mcch_cfg_r14->mcch_repeat_period_v1430.unpack(bref)); + } + if (mcch_cfg_r14->mcch_mod_period_v1430_present) { + HANDLE_CODE(mcch_cfg_r14->mcch_mod_period_v1430.unpack(bref)); + } + } + if (subcarrier_spacing_mbms_r14_present) { + HANDLE_CODE(subcarrier_spacing_mbms_r14.unpack(bref)); } } } return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_s::to_json(json_writer& j) const +void mbsfn_area_info_r9_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("dl-CarrierFreq", dl_carrier_freq); - j.write_int("q-RxLevMin", q_rx_lev_min); - if (p_max_present) { - j.write_int("p-Max", p_max); - } - j.write_int("t-ReselectionEUTRA", t_resel_eutra); - if (t_resel_eutra_sf_present) { - j.write_fieldname("t-ReselectionEUTRA-SF"); - t_resel_eutra_sf.to_json(j); - } - j.write_int("threshX-High", thresh_x_high); - j.write_int("threshX-Low", thresh_x_low); - j.write_str("allowedMeasBandwidth", allowed_meas_bw.to_string()); - j.write_bool("presenceAntennaPort1", presence_ant_port1); - if (cell_resel_prio_present) { - j.write_int("cellReselectionPriority", cell_resel_prio); - } - j.write_str("neighCellConfig", neigh_cell_cfg.to_string()); - if (q_offset_freq_present) { - j.write_str("q-OffsetFreq", q_offset_freq.to_string()); - } - if (inter_freq_neigh_cell_list_present) { - j.start_array("interFreqNeighCellList"); - for (const auto& e1 : inter_freq_neigh_cell_list) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_black_cell_list_present) { - j.start_array("interFreqBlackCellList"); - for (const auto& e1 : inter_freq_black_cell_list) { - e1.to_json(j); - } - j.end_array(); - } + j.write_int("mbsfn-AreaId-r9", mbsfn_area_id_r9); + j.write_str("non-MBSFNregionLength", non_mbsfn_region_len.to_string()); + j.write_int("notificationIndicator-r9", notif_ind_r9); + j.write_fieldname("mcch-Config-r9"); + j.start_obj(); + j.write_str("mcch-RepetitionPeriod-r9", mcch_cfg_r9.mcch_repeat_period_r9.to_string()); + j.write_int("mcch-Offset-r9", mcch_cfg_r9.mcch_offset_r9); + j.write_str("mcch-ModificationPeriod-r9", mcch_cfg_r9.mcch_mod_period_r9.to_string()); + j.write_str("sf-AllocInfo-r9", mcch_cfg_r9.sf_alloc_info_r9.to_string()); + j.write_str("signallingMCS-r9", mcch_cfg_r9.sig_mcs_r9.to_string()); + j.end_obj(); if (ext) { - if (q_qual_min_r9_present) { - j.write_int("q-QualMin-r9", q_qual_min_r9); - } - if (thresh_x_q_r9.is_present()) { - j.write_fieldname("threshX-Q-r9"); + if (mcch_cfg_r14.is_present()) { + j.write_fieldname("mcch-Config-r14"); j.start_obj(); - j.write_int("threshX-HighQ-r9", thresh_x_q_r9->thresh_x_high_q_r9); - j.write_int("threshX-LowQ-r9", thresh_x_q_r9->thresh_x_low_q_r9); + if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { + j.write_str("mcch-RepetitionPeriod-v1430", mcch_cfg_r14->mcch_repeat_period_v1430.to_string()); + } + if (mcch_cfg_r14->mcch_mod_period_v1430_present) { + j.write_str("mcch-ModificationPeriod-v1430", mcch_cfg_r14->mcch_mod_period_v1430.to_string()); + } j.end_obj(); } - if (q_qual_min_wb_r11_present) { - j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); + if (subcarrier_spacing_mbms_r14_present) { + j.write_str("subcarrierSpacingMBMS-r14", subcarrier_spacing_mbms_r14.to_string()); } } j.end_obj(); } -// InterFreqCarrierFreqInfo-r12 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_r12_s::pack(bit_ref& bref) const +std::string mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(p_max_r12_present, 1)); - HANDLE_CODE(bref.pack(t_resel_eutra_sf_r12_present, 1)); - HANDLE_CODE(bref.pack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.pack(q_offset_freq_r12_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_neigh_cell_list_r12_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_black_cell_list_r12_present, 1)); - HANDLE_CODE(bref.pack(q_qual_min_r12_present, 1)); - HANDLE_CODE(bref.pack(thresh_x_q_r12_present, 1)); - HANDLE_CODE(bref.pack(q_qual_min_wb_r12_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_r12_present, 1)); - HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); - HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + static const char* options[] = {"s1", "s2"}; + return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); +} +uint8_t mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_number() const +{ + static const uint8_t options[] = {1, 2}; + return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); +} - HANDLE_CODE(pack_integer(bref, dl_carrier_freq_r12, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r12, (int8_t)-70, (int8_t)-22)); - if (p_max_r12_present) { - HANDLE_CODE(pack_integer(bref, p_max_r12, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(pack_integer(bref, t_resel_eutra_r12, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_eutra_sf_r12_present) { - HANDLE_CODE(t_resel_eutra_sf_r12.pack(bref)); - } - HANDLE_CODE(pack_integer(bref, thresh_x_high_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_low_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(allowed_meas_bw_r12.pack(bref)); - HANDLE_CODE(bref.pack(presence_ant_port1_r12, 1)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_prio_r12, (uint8_t)0u, (uint8_t)7u)); - } - HANDLE_CODE(neigh_cell_cfg_r12.pack(bref)); - if (q_offset_freq_r12_present) { - HANDLE_CODE(q_offset_freq_r12.pack(bref)); - } - if (inter_freq_neigh_cell_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_cell_list_r12, 1, 16)); - } - if (inter_freq_black_cell_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_black_cell_list_r12, 1, 16)); - } - if (q_qual_min_r12_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_r12, (int8_t)-34, (int8_t)-3)); - } - if (thresh_x_q_r12_present) { - HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_high_q_r12, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, thresh_x_q_r12.thresh_x_low_q_r12, (uint8_t)0u, (uint8_t)31u)); - } - if (q_qual_min_wb_r12_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r12, (int8_t)-34, (int8_t)-3)); - } - if (multi_band_info_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r12, 1, 8, integer_packer(1, 256))); - } - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); - } +std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_string() const +{ + static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; + return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); +} +uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_number() const +{ + static const uint16_t options[] = {32, 64, 128, 256}; + return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); +} - return SRSASN_SUCCESS; +std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_string() const +{ + static const char* options[] = {"rf512", "rf1024"}; + return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); } -SRSASN_CODE inter_freq_carrier_freq_info_r12_s::unpack(cbit_ref& bref) +uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_number() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(p_max_r12_present, 1)); - HANDLE_CODE(bref.unpack(t_resel_eutra_sf_r12_present, 1)); - HANDLE_CODE(bref.unpack(cell_resel_prio_r12_present, 1)); - HANDLE_CODE(bref.unpack(q_offset_freq_r12_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_neigh_cell_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_black_cell_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(q_qual_min_r12_present, 1)); - HANDLE_CODE(bref.unpack(thresh_x_q_r12_present, 1)); - HANDLE_CODE(bref.unpack(q_qual_min_wb_r12_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); - HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + static const uint16_t options[] = {512, 1024}; + return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); +} - HANDLE_CODE(unpack_integer(dl_carrier_freq_r12, bref, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(unpack_integer(q_rx_lev_min_r12, bref, (int8_t)-70, (int8_t)-22)); - if (p_max_r12_present) { - HANDLE_CODE(unpack_integer(p_max_r12, bref, (int8_t)-30, (int8_t)33)); - } - HANDLE_CODE(unpack_integer(t_resel_eutra_r12, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_eutra_sf_r12_present) { - HANDLE_CODE(t_resel_eutra_sf_r12.unpack(bref)); - } - HANDLE_CODE(unpack_integer(thresh_x_high_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_low_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(allowed_meas_bw_r12.unpack(bref)); - HANDLE_CODE(bref.unpack(presence_ant_port1_r12, 1)); - if (cell_resel_prio_r12_present) { - HANDLE_CODE(unpack_integer(cell_resel_prio_r12, bref, (uint8_t)0u, (uint8_t)7u)); - } - HANDLE_CODE(neigh_cell_cfg_r12.unpack(bref)); - if (q_offset_freq_r12_present) { - HANDLE_CODE(q_offset_freq_r12.unpack(bref)); - } - if (inter_freq_neigh_cell_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_cell_list_r12, bref, 1, 16)); - } - if (inter_freq_black_cell_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_black_cell_list_r12, bref, 1, 16)); - } - if (q_qual_min_r12_present) { - HANDLE_CODE(unpack_integer(q_qual_min_r12, bref, (int8_t)-34, (int8_t)-3)); - } - if (thresh_x_q_r12_present) { - HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_high_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(thresh_x_q_r12.thresh_x_low_q_r12, bref, (uint8_t)0u, (uint8_t)31u)); - } - if (q_qual_min_wb_r12_present) { - HANDLE_CODE(unpack_integer(q_qual_min_wb_r12, bref, (int8_t)-34, (int8_t)-3)); - } - if (multi_band_info_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r12, bref, 1, 8, integer_packer(1, 256))); - } - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); - } +std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_string() const +{ + static const char* options[] = {"n2", "n7", "n13", "n19"}; + return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); +} +uint8_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_number() const +{ + static const uint8_t options[] = {2, 7, 13, 19}; + return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); +} - return SRSASN_SUCCESS; +std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_string() const +{ + static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16"}; + return convert_enum_idx(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); } -void inter_freq_carrier_freq_info_r12_s::to_json(json_writer& j) const +uint8_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_number() const { - j.start_obj(); - j.write_int("dl-CarrierFreq-r12", dl_carrier_freq_r12); - j.write_int("q-RxLevMin-r12", q_rx_lev_min_r12); - if (p_max_r12_present) { - j.write_int("p-Max-r12", p_max_r12); - } - j.write_int("t-ReselectionEUTRA-r12", t_resel_eutra_r12); - if (t_resel_eutra_sf_r12_present) { - j.write_fieldname("t-ReselectionEUTRA-SF-r12"); - t_resel_eutra_sf_r12.to_json(j); - } - j.write_int("threshX-High-r12", thresh_x_high_r12); - j.write_int("threshX-Low-r12", thresh_x_low_r12); - j.write_str("allowedMeasBandwidth-r12", allowed_meas_bw_r12.to_string()); - j.write_bool("presenceAntennaPort1-r12", presence_ant_port1_r12); - if (cell_resel_prio_r12_present) { - j.write_int("cellReselectionPriority-r12", cell_resel_prio_r12); - } - j.write_str("neighCellConfig-r12", neigh_cell_cfg_r12.to_string()); - if (q_offset_freq_r12_present) { - j.write_str("q-OffsetFreq-r12", q_offset_freq_r12.to_string()); - } - if (inter_freq_neigh_cell_list_r12_present) { - j.start_array("interFreqNeighCellList-r12"); - for (const auto& e1 : inter_freq_neigh_cell_list_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_black_cell_list_r12_present) { - j.start_array("interFreqBlackCellList-r12"); - for (const auto& e1 : inter_freq_black_cell_list_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (q_qual_min_r12_present) { - j.write_int("q-QualMin-r12", q_qual_min_r12); - } - if (thresh_x_q_r12_present) { - j.write_fieldname("threshX-Q-r12"); - j.start_obj(); - j.write_int("threshX-HighQ-r12", thresh_x_q_r12.thresh_x_high_q_r12); - j.write_int("threshX-LowQ-r12", thresh_x_q_r12.thresh_x_low_q_r12); - j.end_obj(); - } - if (q_qual_min_wb_r12_present) { - j.write_int("q-QualMinWB-r12", q_qual_min_wb_r12); - } - if (multi_band_info_list_r12_present) { - j.start_array("multiBandInfoList-r12"); - for (const auto& e1 : multi_band_info_list_r12) { - j.write_int(e1); - } - j.end_array(); - } - if (reduced_meas_performance_r12_present) { - j.write_str("reducedMeasPerformance-r12", "true"); - } - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); - } - j.end_obj(); + static const uint8_t options[] = {1, 2, 4, 8, 16}; + return map_enum_number(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); } -// InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::pack(bit_ref& bref) const +std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_string() const { - HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); - HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "spare7"}; + return convert_enum_idx(options, 10, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); +} +uint16_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_number() const +{ + static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256}; + return map_enum_number(options, 9, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); +} - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); +std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_string() const +{ + static const char* options[] = {"kHz7dot5", "kHz1dot25"}; + return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); +} +float mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number() const +{ + static const float options[] = {7.5, 1.25}; + return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); +} +std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number_string() const +{ + static const char* options[] = {"7.5", "1.25"}; + return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); +} + +// ReselectionInfoRelay-r13 ::= SEQUENCE +SRSASN_CODE resel_info_relay_r13_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(min_hyst_r13_present, 1)); + + HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); + HANDLE_CODE(filt_coef_r13.pack(bref)); + if (min_hyst_r13_present) { + HANDLE_CODE(min_hyst_r13.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v1250_s::unpack(cbit_ref& bref) +SRSASN_CODE resel_info_relay_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); - HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + HANDLE_CODE(bref.unpack(min_hyst_r13_present, 1)); - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); + HANDLE_CODE(unpack_integer(q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); + HANDLE_CODE(filt_coef_r13.unpack(bref)); + if (min_hyst_r13_present) { + HANDLE_CODE(min_hyst_r13.unpack(bref)); } return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v1250_s::to_json(json_writer& j) const +void resel_info_relay_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (reduced_meas_performance_r12_present) { - j.write_str("reducedMeasPerformance-r12", "true"); - } - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); + j.write_int("q-RxLevMin-r13", q_rx_lev_min_r13); + j.write_str("filterCoefficient-r13", filt_coef_r13.to_string()); + if (min_hyst_r13_present) { + j.write_str("minHyst-r13", min_hyst_r13.to_string()); } j.end_obj(); } -// InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::pack(bit_ref& bref) const +std::string resel_info_relay_r13_s::min_hyst_r13_opts::to_string() const { - HANDLE_CODE(bref.pack(cell_resel_sub_prio_r13_present, 1)); - HANDLE_CODE(bref.pack(redist_inter_freq_info_r13_present, 1)); - HANDLE_CODE(bref.pack(cell_sel_info_ce_r13_present, 1)); - HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); + static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; + return convert_enum_idx(options, 6, value, "resel_info_relay_r13_s::min_hyst_r13_e_"); +} +uint8_t resel_info_relay_r13_s::min_hyst_r13_opts::to_number() const +{ + static const uint8_t options[] = {0, 3, 6, 9, 12}; + return map_enum_number(options, 5, value, "resel_info_relay_r13_s::min_hyst_r13_e_"); +} - if (cell_resel_sub_prio_r13_present) { - HANDLE_CODE(cell_resel_sub_prio_r13.pack(bref)); - } - if (redist_inter_freq_info_r13_present) { - HANDLE_CODE(redist_inter_freq_info_r13.pack(bref)); - } - if (cell_sel_info_ce_r13_present) { - HANDLE_CODE(cell_sel_info_ce_r13.pack(bref)); - } - if (t_resel_eutra_ce_r13_present) { - HANDLE_CODE(pack_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0u, (uint8_t)15u)); - } +// SIB8-PerPLMN-r11 ::= SEQUENCE +SRSASN_CODE sib8_per_plmn_r11_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, plmn_id_r11, (uint8_t)1u, (uint8_t)6u)); + HANDLE_CODE(params_cdma2000_r11.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v1310_s::unpack(cbit_ref& bref) +SRSASN_CODE sib8_per_plmn_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(cell_resel_sub_prio_r13_present, 1)); - HANDLE_CODE(bref.unpack(redist_inter_freq_info_r13_present, 1)); - HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); - HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); - - if (cell_resel_sub_prio_r13_present) { - HANDLE_CODE(cell_resel_sub_prio_r13.unpack(bref)); - } - if (redist_inter_freq_info_r13_present) { - HANDLE_CODE(redist_inter_freq_info_r13.unpack(bref)); - } - if (cell_sel_info_ce_r13_present) { - HANDLE_CODE(cell_sel_info_ce_r13.unpack(bref)); - } - if (t_resel_eutra_ce_r13_present) { - HANDLE_CODE(unpack_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0u, (uint8_t)15u)); - } + HANDLE_CODE(unpack_integer(plmn_id_r11, bref, (uint8_t)1u, (uint8_t)6u)); + HANDLE_CODE(params_cdma2000_r11.unpack(bref)); return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v1310_s::to_json(json_writer& j) const +void sib8_per_plmn_r11_s::to_json(json_writer& j) const { j.start_obj(); - if (cell_resel_sub_prio_r13_present) { - j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); - } - if (redist_inter_freq_info_r13_present) { - j.write_fieldname("redistributionInterFreqInfo-r13"); - redist_inter_freq_info_r13.to_json(j); - } - if (cell_sel_info_ce_r13_present) { - j.write_fieldname("cellSelectionInfoCE-r13"); - cell_sel_info_ce_r13.to_json(j); - } - if (t_resel_eutra_ce_r13_present) { - j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); - } + j.write_int("plmn-Identity-r11", plmn_id_r11); + j.write_fieldname("parametersCDMA2000-r11"); + params_cdma2000_r11.to_json(j); j.end_obj(); } -// InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::pack(bit_ref& bref) const +void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set(types::options e) { - HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13_present, 1)); - - if (cell_sel_info_ce1_r13_present) { - HANDLE_CODE(cell_sel_info_ce1_r13.pack(bref)); + type_ = e; +} +void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::explicit_value: + j.write_fieldname("explicitValue"); + c.to_json(j); + break; + case types::default_value: + break; + default: + log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); } - - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE inter_freq_carrier_freq_info_v1350_s::unpack(cbit_ref& bref) +SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::pack(bit_ref& bref) const { - HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); - - if (cell_sel_info_ce1_r13_present) { - HANDLE_CODE(cell_sel_info_ce1_r13.unpack(bref)); + type_.pack(bref); + switch (type_) { + case types::explicit_value: + HANDLE_CODE(c.pack(bref)); + break; + case types::default_value: + break; + default: + log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v1350_s::to_json(json_writer& j) const +SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::unpack(cbit_ref& bref) { - j.start_obj(); - if (cell_sel_info_ce1_r13_present) { - j.write_fieldname("cellSelectionInfoCE1-r13"); - cell_sel_info_ce1_r13.to_json(j); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::explicit_value: + HANDLE_CODE(c.unpack(bref)); + break; + case types::default_value: + break; + default: + log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - j.end_obj(); + return SRSASN_SUCCESS; } -// InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::pack(bit_ref& bref) const +// SL-CarrierFreqInfo-r12 ::= SEQUENCE +SRSASN_CODE sl_carrier_freq_info_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); - HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530_present, 1)); + HANDLE_CODE(bref.pack(plmn_id_list_r12_present, 1)); - HANDLE_CODE(bref.pack(hsdn_ind_r15, 1)); - if (inter_freq_neigh_hsdn_cell_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_neigh_hsdn_cell_list_r15, 1, 16)); - } - if (cell_sel_info_ce_v1530_present) { - HANDLE_CODE(cell_sel_info_ce_v1530.pack(bref)); + HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint32_t)0u, (uint32_t)262143u)); + if (plmn_id_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r12, 1, 6)); } return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v1530_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_carrier_freq_info_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(inter_freq_neigh_hsdn_cell_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); + HANDLE_CODE(bref.unpack(plmn_id_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(hsdn_ind_r15, 1)); - if (inter_freq_neigh_hsdn_cell_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); - } - if (cell_sel_info_ce_v1530_present) { - HANDLE_CODE(cell_sel_info_ce_v1530.unpack(bref)); + HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint32_t)0u, (uint32_t)262143u)); + if (plmn_id_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r12, bref, 1, 6)); } return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v1530_s::to_json(json_writer& j) const +void sl_carrier_freq_info_r12_s::to_json(json_writer& j) const { j.start_obj(); - j.write_bool("hsdn-Indication-r15", hsdn_ind_r15); - if (inter_freq_neigh_hsdn_cell_list_r15_present) { - j.start_array("interFreqNeighHSDN-CellList-r15"); - for (const auto& e1 : inter_freq_neigh_hsdn_cell_list_r15) { + j.write_int("carrierFreq-r12", carrier_freq_r12); + if (plmn_id_list_r12_present) { + j.start_array("plmn-IdentityList-r12"); + for (const auto& e1 : plmn_id_list_r12) { e1.to_json(j); } j.end_array(); } - if (cell_sel_info_ce_v1530_present) { - j.write_fieldname("cellSelectionInfoCE-v1530"); - cell_sel_info_ce_v1530.to_json(j); - } j.end_obj(); } -// InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE -SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::pack(bit_ref& bref) const +// SL-CarrierFreqInfo-v1310 ::= SEQUENCE +SRSASN_CODE sl_carrier_freq_info_v1310_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(disc_res_non_ps_r13_present, 1)); + HANDLE_CODE(bref.pack(disc_res_ps_r13_present, 1)); + HANDLE_CODE(bref.pack(disc_cfg_other_r13_present, 1)); - if (multi_band_info_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 64))); + if (disc_res_non_ps_r13_present) { + HANDLE_CODE(disc_res_non_ps_r13.pack(bref)); + } + if (disc_res_ps_r13_present) { + HANDLE_CODE(disc_res_ps_r13.pack(bref)); + } + if (disc_cfg_other_r13_present) { + HANDLE_CODE(disc_cfg_other_r13.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_carrier_freq_info_v1310_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(disc_res_non_ps_r13_present, 1)); + HANDLE_CODE(bref.unpack(disc_res_ps_r13_present, 1)); + HANDLE_CODE(bref.unpack(disc_cfg_other_r13_present, 1)); - if (multi_band_info_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 64))); + if (disc_res_non_ps_r13_present) { + HANDLE_CODE(disc_res_non_ps_r13.unpack(bref)); + } + if (disc_res_ps_r13_present) { + HANDLE_CODE(disc_res_ps_r13.unpack(bref)); + } + if (disc_cfg_other_r13_present) { + HANDLE_CODE(disc_cfg_other_r13.unpack(bref)); } return SRSASN_SUCCESS; } -void inter_freq_carrier_freq_info_v8h0_s::to_json(json_writer& j) const +void sl_carrier_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_band_info_list_present) { - j.start_array("multiBandInfoList"); - for (const auto& e1 : multi_band_info_list) { - j.write_int(e1); - } - j.end_array(); + if (disc_res_non_ps_r13_present) { + j.write_fieldname("discResourcesNonPS-r13"); + disc_res_non_ps_r13.to_json(j); + } + if (disc_res_ps_r13_present) { + j.write_fieldname("discResourcesPS-r13"); + disc_res_ps_r13.to_json(j); + } + if (disc_cfg_other_r13_present) { + j.write_fieldname("discConfigOther-r13"); + disc_cfg_other_r13.to_json(j); } j.end_obj(); } -// IntraFreqNeighCellInfo ::= SEQUENCE -SRSASN_CODE intra_freq_neigh_cell_info_s::pack(bit_ref& bref) const +// SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE +SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(pack_integer(bref, pci, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(q_offset_cell.pack(bref)); + HANDLE_CODE(pack_integer(bref, prio_thres_r15, (uint8_t)1u, (uint8_t)8u)); + HANDLE_CODE(pack_integer(bref, default_tx_cfg_idx_r15, (uint8_t)0u, (uint8_t)15u)); + HANDLE_CODE(pack_integer(bref, cbr_cfg_idx_r15, (uint8_t)0u, (uint8_t)3u)); + HANDLE_CODE(pack_dyn_seq_of(bref, tx_cfg_idx_list_r15, 1, 16, integer_packer(0, 63))); + HANDLE_CODE(pack_dyn_seq_of(bref, mcs_pssch_range_list_r15, 1, 16)); return SRSASN_SUCCESS; } -SRSASN_CODE intra_freq_neigh_cell_info_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(unpack_integer(pci, bref, (uint16_t)0u, (uint16_t)503u)); - HANDLE_CODE(q_offset_cell.unpack(bref)); + HANDLE_CODE(unpack_integer(prio_thres_r15, bref, (uint8_t)1u, (uint8_t)8u)); + HANDLE_CODE(unpack_integer(default_tx_cfg_idx_r15, bref, (uint8_t)0u, (uint8_t)15u)); + HANDLE_CODE(unpack_integer(cbr_cfg_idx_r15, bref, (uint8_t)0u, (uint8_t)3u)); + HANDLE_CODE(unpack_dyn_seq_of(tx_cfg_idx_list_r15, bref, 1, 16, integer_packer(0, 63))); + HANDLE_CODE(unpack_dyn_seq_of(mcs_pssch_range_list_r15, bref, 1, 16)); return SRSASN_SUCCESS; } -void intra_freq_neigh_cell_info_s::to_json(json_writer& j) const +void sl_pppp_tx_cfg_idx_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("physCellId", pci); - j.write_str("q-OffsetCell", q_offset_cell.to_string()); + j.write_int("priorityThreshold-r15", prio_thres_r15); + j.write_int("defaultTxConfigIndex-r15", default_tx_cfg_idx_r15); + j.write_int("cbr-ConfigIndex-r15", cbr_cfg_idx_r15); + j.start_array("tx-ConfigIndexList-r15"); + for (const auto& e1 : tx_cfg_idx_list_r15) { + j.write_int(e1); + } + j.end_array(); + j.start_array("mcs-PSSCH-RangeList-r15"); + for (const auto& e1 : mcs_pssch_range_list_r15) { + e1.to_json(j); + } + j.end_array(); j.end_obj(); } -// MBMS-CarrierType-r14 ::= SEQUENCE -SRSASN_CODE mbms_carrier_type_r14_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(frame_offset_r14_present, 1)); - - HANDLE_CODE(carrier_type_r14.pack(bref)); - if (frame_offset_r14_present) { - HANDLE_CODE(pack_integer(bref, frame_offset_r14, (uint8_t)0u, (uint8_t)3u)); - } +// UAC-BarringInfoSet-r15 ::= SEQUENCE +SRSASN_CODE uac_barr_info_set_r15_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(uac_barr_factor_r15.pack(bref)); + HANDLE_CODE(uac_barr_time_r15.pack(bref)); + HANDLE_CODE(uac_barr_for_access_id_r15.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE mbms_carrier_type_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE uac_barr_info_set_r15_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(frame_offset_r14_present, 1)); - - HANDLE_CODE(carrier_type_r14.unpack(bref)); - if (frame_offset_r14_present) { - HANDLE_CODE(unpack_integer(frame_offset_r14, bref, (uint8_t)0u, (uint8_t)3u)); - } + HANDLE_CODE(uac_barr_factor_r15.unpack(bref)); + HANDLE_CODE(uac_barr_time_r15.unpack(bref)); + HANDLE_CODE(uac_barr_for_access_id_r15.unpack(bref)); return SRSASN_SUCCESS; } -void mbms_carrier_type_r14_s::to_json(json_writer& j) const +void uac_barr_info_set_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("carrierType-r14", carrier_type_r14.to_string()); - if (frame_offset_r14_present) { - j.write_int("frameOffset-r14", frame_offset_r14); - } + j.write_str("uac-BarringFactor-r15", uac_barr_factor_r15.to_string()); + j.write_str("uac-BarringTime-r15", uac_barr_time_r15.to_string()); + j.write_str("uac-BarringForAccessIdentity-r15", uac_barr_for_access_id_r15.to_string()); j.end_obj(); } -std::string mbms_carrier_type_r14_s::carrier_type_r14_opts::to_string() const +std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_string() const { - static const char* options[] = {"mbms", "fembmsMixed", "fembmsDedicated"}; - return convert_enum_idx(options, 3, value, "mbms_carrier_type_r14_s::carrier_type_r14_e_"); + static const char* options[] = { + "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; + return convert_enum_idx(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); } - -// MBMS-SAI-InterFreq-r11 ::= SEQUENCE -SRSASN_CODE mbms_sai_inter_freq_r11_s::pack(bit_ref& bref) const +float uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number() const { - HANDLE_CODE(pack_integer(bref, dl_carrier_freq_r11, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_list_r11, 1, 64, integer_packer(0, 65535))); - - return SRSASN_SUCCESS; + static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5}; + return map_enum_number(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); } -SRSASN_CODE mbms_sai_inter_freq_r11_s::unpack(cbit_ref& bref) +std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number_string() const { - HANDLE_CODE(unpack_integer(dl_carrier_freq_r11, bref, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_list_r11, bref, 1, 64, integer_packer(0, 65535))); + static const char* options[] = { + "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; + return convert_enum_idx(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); +} - return SRSASN_SUCCESS; +std::string uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_string() const +{ + static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; + return convert_enum_idx(options, 8, value, "uac_barr_info_set_r15_s::uac_barr_time_r15_e_"); } -void mbms_sai_inter_freq_r11_s::to_json(json_writer& j) const +uint16_t uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_number() const { - j.start_obj(); - j.write_int("dl-CarrierFreq-r11", dl_carrier_freq_r11); - j.start_array("mbms-SAI-List-r11"); - for (const auto& e1 : mbms_sai_list_r11) { - j.write_int(e1); - } - j.end_array(); - j.end_obj(); + static const uint16_t options[] = {4, 8, 16, 32, 64, 128, 256, 512}; + return map_enum_number(options, 8, value, "uac_barr_info_set_r15_s::uac_barr_time_r15_e_"); } -// MBMS-SAI-InterFreq-v1140 ::= SEQUENCE -SRSASN_CODE mbms_sai_inter_freq_v1140_s::pack(bit_ref& bref) const +// UAC-BarringPerPLMN-r15 ::= SEQUENCE +SRSASN_CODE uac_barr_per_plmn_r15_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_band_info_list_r11_present, 1)); + HANDLE_CODE(bref.pack(uac_ac_barr_list_type_r15_present, 1)); - if (multi_band_info_list_r11_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r11, 1, 8, integer_packer(1, 256))); + HANDLE_CODE(pack_integer(bref, plmn_id_idx_r15, (uint8_t)1u, (uint8_t)6u)); + if (uac_ac_barr_list_type_r15_present) { + HANDLE_CODE(uac_ac_barr_list_type_r15.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE mbms_sai_inter_freq_v1140_s::unpack(cbit_ref& bref) +SRSASN_CODE uac_barr_per_plmn_r15_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_band_info_list_r11_present, 1)); + HANDLE_CODE(bref.unpack(uac_ac_barr_list_type_r15_present, 1)); - if (multi_band_info_list_r11_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r11, bref, 1, 8, integer_packer(1, 256))); + HANDLE_CODE(unpack_integer(plmn_id_idx_r15, bref, (uint8_t)1u, (uint8_t)6u)); + if (uac_ac_barr_list_type_r15_present) { + HANDLE_CODE(uac_ac_barr_list_type_r15.unpack(bref)); } return SRSASN_SUCCESS; } -void mbms_sai_inter_freq_v1140_s::to_json(json_writer& j) const +void uac_barr_per_plmn_r15_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_band_info_list_r11_present) { - j.start_array("multiBandInfoList-r11"); - for (const auto& e1 : multi_band_info_list_r11) { - j.write_int(e1); - } - j.end_array(); + j.write_int("plmn-IdentityIndex-r15", plmn_id_idx_r15); + if (uac_ac_barr_list_type_r15_present) { + j.write_fieldname("uac-AC-BarringListType-r15"); + uac_ac_barr_list_type_r15.to_json(j); } j.end_obj(); } -// MBSFN-AreaInfo-r9 ::= SEQUENCE -SRSASN_CODE mbsfn_area_info_r9_s::pack(bit_ref& bref) const +void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::destroy_() { - bref.pack(ext, 1); - HANDLE_CODE(pack_integer(bref, mbsfn_area_id_r9, (uint16_t)0u, (uint16_t)255u)); - HANDLE_CODE(non_mbsfn_region_len.pack(bref)); - HANDLE_CODE(pack_integer(bref, notif_ind_r9, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(mcch_cfg_r9.mcch_repeat_period_r9.pack(bref)); - HANDLE_CODE(pack_integer(bref, mcch_cfg_r9.mcch_offset_r9, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(mcch_cfg_r9.mcch_mod_period_r9.pack(bref)); - HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.pack(bref)); - HANDLE_CODE(mcch_cfg_r9.sig_mcs_r9.pack(bref)); - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= mcch_cfg_r14.is_present(); - group_flags[0] |= subcarrier_spacing_mbms_r14_present; - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(mcch_cfg_r14.is_present(), 1)); - HANDLE_CODE(bref.pack(subcarrier_spacing_mbms_r14_present, 1)); - if (mcch_cfg_r14.is_present()) { - HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); - HANDLE_CODE(bref.pack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); - if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { - HANDLE_CODE(mcch_cfg_r14->mcch_repeat_period_v1430.pack(bref)); - } - if (mcch_cfg_r14->mcch_mod_period_v1430_present) { - HANDLE_CODE(mcch_cfg_r14->mcch_mod_period_v1430.pack(bref)); - } - } - if (subcarrier_spacing_mbms_r14_present) { - HANDLE_CODE(subcarrier_spacing_mbms_r14.pack(bref)); - } - } + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + c.destroy(); + break; + case types::uac_explicit_ac_barr_list_r15: + c.destroy(); + break; + default: + break; } - return SRSASN_SUCCESS; } -SRSASN_CODE mbsfn_area_info_r9_s::unpack(cbit_ref& bref) +void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::set(types::options e) { - bref.unpack(ext, 1); - HANDLE_CODE(unpack_integer(mbsfn_area_id_r9, bref, (uint16_t)0u, (uint16_t)255u)); - HANDLE_CODE(non_mbsfn_region_len.unpack(bref)); - HANDLE_CODE(unpack_integer(notif_ind_r9, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(mcch_cfg_r9.mcch_repeat_period_r9.unpack(bref)); - HANDLE_CODE(unpack_integer(mcch_cfg_r9.mcch_offset_r9, bref, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(mcch_cfg_r9.mcch_mod_period_r9.unpack(bref)); - HANDLE_CODE(mcch_cfg_r9.sf_alloc_info_r9.unpack(bref)); - HANDLE_CODE(mcch_cfg_r9.sig_mcs_r9.unpack(bref)); - - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool mcch_cfg_r14_present; - HANDLE_CODE(bref.unpack(mcch_cfg_r14_present, 1)); - mcch_cfg_r14.set_present(mcch_cfg_r14_present); - HANDLE_CODE(bref.unpack(subcarrier_spacing_mbms_r14_present, 1)); - if (mcch_cfg_r14.is_present()) { - HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_repeat_period_v1430_present, 1)); - HANDLE_CODE(bref.unpack(mcch_cfg_r14->mcch_mod_period_v1430_present, 1)); - if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { - HANDLE_CODE(mcch_cfg_r14->mcch_repeat_period_v1430.unpack(bref)); - } - if (mcch_cfg_r14->mcch_mod_period_v1430_present) { - HANDLE_CODE(mcch_cfg_r14->mcch_mod_period_v1430.unpack(bref)); - } - } - if (subcarrier_spacing_mbms_r14_present) { - HANDLE_CODE(subcarrier_spacing_mbms_r14.unpack(bref)); - } - } + destroy_(); + type_ = e; + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + c.init(); + break; + case types::uac_explicit_ac_barr_list_r15: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } - return SRSASN_SUCCESS; } -void mbsfn_area_info_r9_s::to_json(json_writer& j) const +uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::uac_ac_barr_list_type_r15_c_( + const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) { - j.start_obj(); - j.write_int("mbsfn-AreaId-r9", mbsfn_area_id_r9); - j.write_str("non-MBSFNregionLength", non_mbsfn_region_len.to_string()); - j.write_int("notificationIndicator-r9", notif_ind_r9); - j.write_fieldname("mcch-Config-r9"); - j.start_obj(); - j.write_str("mcch-RepetitionPeriod-r9", mcch_cfg_r9.mcch_repeat_period_r9.to_string()); - j.write_int("mcch-Offset-r9", mcch_cfg_r9.mcch_offset_r9); - j.write_str("mcch-ModificationPeriod-r9", mcch_cfg_r9.mcch_mod_period_r9.to_string()); - j.write_str("sf-AllocInfo-r9", mcch_cfg_r9.sf_alloc_info_r9.to_string()); - j.write_str("signallingMCS-r9", mcch_cfg_r9.sig_mcs_r9.to_string()); - j.end_obj(); - if (ext) { - if (mcch_cfg_r14.is_present()) { - j.write_fieldname("mcch-Config-r14"); - j.start_obj(); - if (mcch_cfg_r14->mcch_repeat_period_v1430_present) { - j.write_str("mcch-RepetitionPeriod-v1430", mcch_cfg_r14->mcch_repeat_period_v1430.to_string()); - } - if (mcch_cfg_r14->mcch_mod_period_v1430_present) { - j.write_str("mcch-ModificationPeriod-v1430", mcch_cfg_r14->mcch_mod_period_v1430.to_string()); - } - j.end_obj(); - } - if (subcarrier_spacing_mbms_r14_present) { - j.write_str("subcarrierSpacingMBMS-r14", subcarrier_spacing_mbms_r14.to_string()); - } + type_ = other.type(); + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + c.init(other.c.get()); + break; + case types::uac_explicit_ac_barr_list_r15: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); } - j.end_obj(); } - -std::string mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_string() const +uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::operator=( + const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) { - static const char* options[] = {"s1", "s2"}; - return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); -} -uint8_t mbsfn_area_info_r9_s::non_mbsfn_region_len_opts::to_number() const + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + c.set(other.c.get()); + break; + case types::uac_explicit_ac_barr_list_r15: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + } + + return *this; +} +void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::to_json(json_writer& j) const { - static const uint8_t options[] = {1, 2}; - return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::non_mbsfn_region_len_e_"); + j.start_obj(); + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + j.start_array("uac-ImplicitAC-BarringList-r15"); + for (const auto& e1 : c.get()) { + j.write_int(e1); + } + j.end_array(); + break; + case types::uac_explicit_ac_barr_list_r15: + j.start_array("uac-ExplicitAC-BarringList-r15"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + } + j.end_obj(); } - -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_string() const +SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::pack(bit_ref& bref) const { - static const char* options[] = {"rf32", "rf64", "rf128", "rf256"}; - return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); + type_.pack(bref); + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + HANDLE_CODE(pack_fixed_seq_of(bref, + &(c.get())[0], + c.get().size(), + integer_packer(1, 8))); + break; + case types::uac_explicit_ac_barr_list_r15: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 63)); + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_opts::to_number() const +SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::unpack(cbit_ref& bref) { - static const uint16_t options[] = {32, 64, 128, 256}; - return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_repeat_period_r9_e_"); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::uac_implicit_ac_barr_list_r15: + HANDLE_CODE(unpack_fixed_seq_of(&(c.get())[0], + bref, + c.get().size(), + integer_packer(1, 8))); + break; + case types::uac_explicit_ac_barr_list_r15: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 63)); + break; + default: + log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_string() const +// CarrierFreqInfoUTRA-v1250 ::= SEQUENCE +SRSASN_CODE carrier_freq_info_utra_v1250_s::pack(bit_ref& bref) const { - static const char* options[] = {"rf512", "rf1024"}; - return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); + HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); + + return SRSASN_SUCCESS; } -uint16_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_opts::to_number() const +SRSASN_CODE carrier_freq_info_utra_v1250_s::unpack(cbit_ref& bref) { - static const uint16_t options[] = {512, 1024}; - return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::mcch_mod_period_r9_e_"); -} + HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); -std::string mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_string() const -{ - static const char* options[] = {"n2", "n7", "n13", "n19"}; - return convert_enum_idx(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); + return SRSASN_SUCCESS; } -uint8_t mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_opts::to_number() const +void carrier_freq_info_utra_v1250_s::to_json(json_writer& j) const { - static const uint8_t options[] = {2, 7, 13, 19}; - return map_enum_number(options, 4, value, "mbsfn_area_info_r9_s::mcch_cfg_r9_s_::sig_mcs_r9_e_"); + j.start_obj(); + if (reduced_meas_performance_r12_present) { + j.write_str("reducedMeasPerformance-r12", "true"); + } + j.end_obj(); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_string() const +// CellReselectionInfoCommon-v1460 ::= SEQUENCE +SRSASN_CODE cell_resel_info_common_v1460_s::pack(bit_ref& bref) const { - static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16"}; - return convert_enum_idx(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); + HANDLE_CODE(s_search_delta_p_r14.pack(bref)); + + return SRSASN_SUCCESS; } -uint8_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_opts::to_number() const +SRSASN_CODE cell_resel_info_common_v1460_s::unpack(cbit_ref& bref) { - static const uint8_t options[] = {1, 2, 4, 8, 16}; - return map_enum_number(options, 5, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_repeat_period_v1430_e_"); + HANDLE_CODE(s_search_delta_p_r14.unpack(bref)); + + return SRSASN_SUCCESS; +} +void cell_resel_info_common_v1460_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("s-SearchDeltaP-r14", s_search_delta_p_r14.to_string()); + j.end_obj(); } -std::string mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_string() const +std::string cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_string() const { - static const char* options[] = {"rf1", "rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "spare7"}; - return convert_enum_idx(options, 10, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); + static const char* options[] = {"dB6", "dB9", "dB12", "dB15"}; + return convert_enum_idx(options, 4, value, "cell_resel_info_common_v1460_s::s_search_delta_p_r14_e_"); } -uint16_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_number() const +uint8_t cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_number() const { - static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256}; - return map_enum_number(options, 9, value, "mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_e_"); + static const uint8_t options[] = {6, 9, 12, 15}; + return map_enum_number(options, 4, value, "cell_resel_info_common_v1460_s::s_search_delta_p_r14_e_"); } -std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_string() const +// CellReselectionInfoHSDN-r15 ::= SEQUENCE +SRSASN_CODE cell_resel_info_hsdn_r15_s::pack(bit_ref& bref) const { - static const char* options[] = {"kHz7dot5", "kHz1dot25"}; - return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); + HANDLE_CODE(pack_integer(bref, cell_equivalent_size_r15, (uint8_t)2u, (uint8_t)16u)); + + return SRSASN_SUCCESS; } -float mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number() const +SRSASN_CODE cell_resel_info_hsdn_r15_s::unpack(cbit_ref& bref) { - static const float options[] = {7.5, 1.25}; - return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); + HANDLE_CODE(unpack_integer(cell_equivalent_size_r15, bref, (uint8_t)2u, (uint8_t)16u)); + + return SRSASN_SUCCESS; } -std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number_string() const +void cell_resel_info_hsdn_r15_s::to_json(json_writer& j) const { - static const char* options[] = {"7.5", "1.25"}; - return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_"); + j.start_obj(); + j.write_int("cellEquivalentSize-r15", cell_equivalent_size_r15); + j.end_obj(); } -// ReselectionInfoRelay-r13 ::= SEQUENCE -SRSASN_CODE resel_info_relay_r13_s::pack(bit_ref& bref) const +// CellReselectionParametersCDMA2000 ::= SEQUENCE +SRSASN_CODE cell_resel_params_cdma2000_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(min_hyst_r13_present, 1)); + HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); - HANDLE_CODE(pack_integer(bref, q_rx_lev_min_r13, (int8_t)-70, (int8_t)-22)); - HANDLE_CODE(filt_coef_r13.pack(bref)); - if (min_hyst_r13_present) { - HANDLE_CODE(min_hyst_r13.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list, 1, 16)); + HANDLE_CODE(pack_integer(bref, t_resel_cdma2000, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_cdma2000_sf_present) { + HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE resel_info_relay_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE cell_resel_params_cdma2000_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(min_hyst_r13_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); - HANDLE_CODE(unpack_integer(q_rx_lev_min_r13, bref, (int8_t)-70, (int8_t)-22)); - HANDLE_CODE(filt_coef_r13.unpack(bref)); - if (min_hyst_r13_present) { - HANDLE_CODE(min_hyst_r13.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); + HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list, bref, 1, 16)); + HANDLE_CODE(unpack_integer(t_resel_cdma2000, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_cdma2000_sf_present) { + HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); } return SRSASN_SUCCESS; } -void resel_info_relay_r13_s::to_json(json_writer& j) const +void cell_resel_params_cdma2000_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("q-RxLevMin-r13", q_rx_lev_min_r13); - j.write_str("filterCoefficient-r13", filt_coef_r13.to_string()); - if (min_hyst_r13_present) { - j.write_str("minHyst-r13", min_hyst_r13.to_string()); + j.start_array("bandClassList"); + for (const auto& e1 : band_class_list) { + e1.to_json(j); + } + j.end_array(); + j.start_array("neighCellList"); + for (const auto& e1 : neigh_cell_list) { + e1.to_json(j); + } + j.end_array(); + j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); + if (t_resel_cdma2000_sf_present) { + j.write_fieldname("t-ReselectionCDMA2000-SF"); + t_resel_cdma2000_sf.to_json(j); } j.end_obj(); } -std::string resel_info_relay_r13_s::min_hyst_r13_opts::to_string() const -{ - static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; - return convert_enum_idx(options, 6, value, "resel_info_relay_r13_s::min_hyst_r13_e_"); -} -uint8_t resel_info_relay_r13_s::min_hyst_r13_opts::to_number() const -{ - static const uint8_t options[] = {0, 3, 6, 9, 12}; - return map_enum_number(options, 5, value, "resel_info_relay_r13_s::min_hyst_r13_e_"); -} - -// SIB8-PerPLMN-r11 ::= SEQUENCE -SRSASN_CODE sib8_per_plmn_r11_s::pack(bit_ref& bref) const +// CellReselectionParametersCDMA2000-v920 ::= SEQUENCE +SRSASN_CODE cell_resel_params_cdma2000_v920_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, plmn_id_r11, (uint8_t)1u, (uint8_t)6u)); - HANDLE_CODE(params_cdma2000_r11.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_v920, 1, 16)); return SRSASN_SUCCESS; } -SRSASN_CODE sib8_per_plmn_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE cell_resel_params_cdma2000_v920_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(plmn_id_r11, bref, (uint8_t)1u, (uint8_t)6u)); - HANDLE_CODE(params_cdma2000_r11.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_v920, bref, 1, 16)); return SRSASN_SUCCESS; } -void sib8_per_plmn_r11_s::to_json(json_writer& j) const +void cell_resel_params_cdma2000_v920_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("plmn-Identity-r11", plmn_id_r11); - j.write_fieldname("parametersCDMA2000-r11"); - params_cdma2000_r11.to_json(j); + j.start_array("neighCellList-v920"); + for (const auto& e1 : neigh_cell_list_v920) { + e1.to_json(j); + } + j.end_array(); j.end_obj(); } -void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::set(types::options e) +// CellReselectionServingFreqInfo-v1310 ::= SEQUENCE +SRSASN_CODE cell_resel_serving_freq_info_v1310_s::pack(bit_ref& bref) const { - type_ = e; + HANDLE_CODE(cell_resel_sub_prio_r13.pack(bref)); + + return SRSASN_SUCCESS; } -void sib8_per_plmn_r11_s::params_cdma2000_r11_c_::to_json(json_writer& j) const +SRSASN_CODE cell_resel_serving_freq_info_v1310_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(cell_resel_sub_prio_r13.unpack(bref)); + + return SRSASN_SUCCESS; +} +void cell_resel_serving_freq_info_v1310_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::explicit_value: - j.write_fieldname("explicitValue"); - c.to_json(j); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); - } + j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); j.end_obj(); } -SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::pack(bit_ref& bref) const + +// EAB-ConfigPLMN-r11 ::= SEQUENCE +SRSASN_CODE eab_cfg_plmn_r11_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::explicit_value: - HANDLE_CODE(c.pack(bref)); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(eab_cfg_r11_present, 1)); + + if (eab_cfg_r11_present) { + HANDLE_CODE(eab_cfg_r11.pack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE sib8_per_plmn_r11_s::params_cdma2000_r11_c_::unpack(cbit_ref& bref) +SRSASN_CODE eab_cfg_plmn_r11_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::explicit_value: - HANDLE_CODE(c.unpack(bref)); - break; - case types::default_value: - break; - default: - log_invalid_choice_id(type_, "sib8_per_plmn_r11_s::params_cdma2000_r11_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(eab_cfg_r11_present, 1)); + + if (eab_cfg_r11_present) { + HANDLE_CODE(eab_cfg_r11.unpack(bref)); } + return SRSASN_SUCCESS; } - -// SL-CarrierFreqInfo-r12 ::= SEQUENCE -SRSASN_CODE sl_carrier_freq_info_r12_s::pack(bit_ref& bref) const +void eab_cfg_plmn_r11_s::to_json(json_writer& j) const { - HANDLE_CODE(bref.pack(plmn_id_list_r12_present, 1)); - - HANDLE_CODE(pack_integer(bref, carrier_freq_r12, (uint32_t)0u, (uint32_t)262143u)); - if (plmn_id_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, plmn_id_list_r12, 1, 6)); + j.start_obj(); + if (eab_cfg_r11_present) { + j.write_fieldname("eab-Config-r11"); + eab_cfg_r11.to_json(j); } + j.end_obj(); +} + +// MBMS-NotificationConfig-r9 ::= SEQUENCE +SRSASN_CODE mbms_notif_cfg_r9_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(notif_repeat_coeff_r9.pack(bref)); + HANDLE_CODE(pack_integer(bref, notif_offset_r9, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(pack_integer(bref, notif_sf_idx_r9, (uint8_t)1u, (uint8_t)6u)); return SRSASN_SUCCESS; } -SRSASN_CODE sl_carrier_freq_info_r12_s::unpack(cbit_ref& bref) +SRSASN_CODE mbms_notif_cfg_r9_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(plmn_id_list_r12_present, 1)); - - HANDLE_CODE(unpack_integer(carrier_freq_r12, bref, (uint32_t)0u, (uint32_t)262143u)); - if (plmn_id_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(plmn_id_list_r12, bref, 1, 6)); - } + HANDLE_CODE(notif_repeat_coeff_r9.unpack(bref)); + HANDLE_CODE(unpack_integer(notif_offset_r9, bref, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(unpack_integer(notif_sf_idx_r9, bref, (uint8_t)1u, (uint8_t)6u)); return SRSASN_SUCCESS; } -void sl_carrier_freq_info_r12_s::to_json(json_writer& j) const +void mbms_notif_cfg_r9_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("carrierFreq-r12", carrier_freq_r12); - if (plmn_id_list_r12_present) { - j.start_array("plmn-IdentityList-r12"); - for (const auto& e1 : plmn_id_list_r12) { - e1.to_json(j); - } - j.end_array(); - } + j.write_str("notificationRepetitionCoeff-r9", notif_repeat_coeff_r9.to_string()); + j.write_int("notificationOffset-r9", notif_offset_r9); + j.write_int("notificationSF-Index-r9", notif_sf_idx_r9); j.end_obj(); } -// SL-CarrierFreqInfo-v1310 ::= SEQUENCE -SRSASN_CODE sl_carrier_freq_info_v1310_s::pack(bit_ref& bref) const +std::string mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(disc_res_non_ps_r13_present, 1)); - HANDLE_CODE(bref.pack(disc_res_ps_r13_present, 1)); - HANDLE_CODE(bref.pack(disc_cfg_other_r13_present, 1)); + static const char* options[] = {"n2", "n4"}; + return convert_enum_idx(options, 2, value, "mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_e_"); +} +uint8_t mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_number() const +{ + static const uint8_t options[] = {2, 4}; + return map_enum_number(options, 2, value, "mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_e_"); +} - if (disc_res_non_ps_r13_present) { - HANDLE_CODE(disc_res_non_ps_r13.pack(bref)); - } - if (disc_res_ps_r13_present) { - HANDLE_CODE(disc_res_ps_r13.pack(bref)); - } - if (disc_cfg_other_r13_present) { - HANDLE_CODE(disc_cfg_other_r13.pack(bref)); - } +// MBMS-NotificationConfig-v1430 ::= SEQUENCE +SRSASN_CODE mbms_notif_cfg_v1430_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, notif_sf_idx_v1430, (uint8_t)7u, (uint8_t)10u)); return SRSASN_SUCCESS; } -SRSASN_CODE sl_carrier_freq_info_v1310_s::unpack(cbit_ref& bref) +SRSASN_CODE mbms_notif_cfg_v1430_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(disc_res_non_ps_r13_present, 1)); - HANDLE_CODE(bref.unpack(disc_res_ps_r13_present, 1)); - HANDLE_CODE(bref.unpack(disc_cfg_other_r13_present, 1)); - - if (disc_res_non_ps_r13_present) { - HANDLE_CODE(disc_res_non_ps_r13.unpack(bref)); - } - if (disc_res_ps_r13_present) { - HANDLE_CODE(disc_res_ps_r13.unpack(bref)); - } - if (disc_cfg_other_r13_present) { - HANDLE_CODE(disc_cfg_other_r13.unpack(bref)); - } + HANDLE_CODE(unpack_integer(notif_sf_idx_v1430, bref, (uint8_t)7u, (uint8_t)10u)); return SRSASN_SUCCESS; } -void sl_carrier_freq_info_v1310_s::to_json(json_writer& j) const +void mbms_notif_cfg_v1430_s::to_json(json_writer& j) const { j.start_obj(); - if (disc_res_non_ps_r13_present) { - j.write_fieldname("discResourcesNonPS-r13"); - disc_res_non_ps_r13.to_json(j); - } - if (disc_res_ps_r13_present) { - j.write_fieldname("discResourcesPS-r13"); - disc_res_ps_r13.to_json(j); - } - if (disc_cfg_other_r13_present) { - j.write_fieldname("discConfigOther-r13"); - disc_cfg_other_r13.to_json(j); - } + j.write_int("notificationSF-Index-v1430", notif_sf_idx_v1430); j.end_obj(); } -// SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE -SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::pack(bit_ref& bref) const +// MeasIdleConfigSIB-r15 ::= SEQUENCE +SRSASN_CODE meas_idle_cfg_sib_r15_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, prio_thres_r15, (uint8_t)1u, (uint8_t)8u)); - HANDLE_CODE(pack_integer(bref, default_tx_cfg_idx_r15, (uint8_t)0u, (uint8_t)15u)); - HANDLE_CODE(pack_integer(bref, cbr_cfg_idx_r15, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(pack_dyn_seq_of(bref, tx_cfg_idx_list_r15, 1, 16, integer_packer(0, 63))); - HANDLE_CODE(pack_dyn_seq_of(bref, mcs_pssch_range_list_r15, 1, 16)); + bref.pack(ext, 1); + HANDLE_CODE(pack_dyn_seq_of(bref, meas_idle_carrier_list_eutra_r15, 1, 8)); return SRSASN_SUCCESS; } -SRSASN_CODE sl_pppp_tx_cfg_idx_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE meas_idle_cfg_sib_r15_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(prio_thres_r15, bref, (uint8_t)1u, (uint8_t)8u)); - HANDLE_CODE(unpack_integer(default_tx_cfg_idx_r15, bref, (uint8_t)0u, (uint8_t)15u)); - HANDLE_CODE(unpack_integer(cbr_cfg_idx_r15, bref, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(unpack_dyn_seq_of(tx_cfg_idx_list_r15, bref, 1, 16, integer_packer(0, 63))); - HANDLE_CODE(unpack_dyn_seq_of(mcs_pssch_range_list_r15, bref, 1, 16)); + bref.unpack(ext, 1); + HANDLE_CODE(unpack_dyn_seq_of(meas_idle_carrier_list_eutra_r15, bref, 1, 8)); return SRSASN_SUCCESS; } -void sl_pppp_tx_cfg_idx_r15_s::to_json(json_writer& j) const +void meas_idle_cfg_sib_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("priorityThreshold-r15", prio_thres_r15); - j.write_int("defaultTxConfigIndex-r15", default_tx_cfg_idx_r15); - j.write_int("cbr-ConfigIndex-r15", cbr_cfg_idx_r15); - j.start_array("tx-ConfigIndexList-r15"); - for (const auto& e1 : tx_cfg_idx_list_r15) { - j.write_int(e1); - } - j.end_array(); - j.start_array("mcs-PSSCH-RangeList-r15"); - for (const auto& e1 : mcs_pssch_range_list_r15) { + j.start_array("measIdleCarrierListEUTRA-r15"); + for (const auto& e1 : meas_idle_carrier_list_eutra_r15) { e1.to_json(j); } j.end_array(); j.end_obj(); } -// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v10j0_ies_s::pack(bit_ref& bref) const +// RedistributionServingInfo-r13 ::= SEQUENCE +SRSASN_CODE redist_serving_info_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(redist_factor_cell_r13_present, 1)); + HANDLE_CODE(bref.pack(redistr_on_paging_only_r13_present, 1)); - if (freq_band_info_r10_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); - } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } + HANDLE_CODE(pack_integer(bref, redist_factor_serving_r13, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(t360_r13.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_v10j0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE redist_serving_info_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(redist_factor_cell_r13_present, 1)); + HANDLE_CODE(bref.unpack(redistr_on_paging_only_r13_present, 1)); - if (freq_band_info_r10_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); - } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } + HANDLE_CODE(unpack_integer(redist_factor_serving_r13, bref, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(t360_r13.unpack(bref)); return SRSASN_SUCCESS; } -void sib_type1_v10j0_ies_s::to_json(json_writer& j) const +void redist_serving_info_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_info_r10_present) { - j.start_array("freqBandInfo-r10"); - for (const auto& e1 : freq_band_info_r10) { - e1.to_json(j); - } - j.end_array(); + j.write_int("redistributionFactorServing-r13", redist_factor_serving_r13); + if (redist_factor_cell_r13_present) { + j.write_str("redistributionFactorCell-r13", "true"); } - if (multi_band_info_list_v10j0_present) { - j.start_array("multiBandInfoList-v10j0"); - for (const auto& e1 : multi_band_info_list_v10j0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v9e0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ul_carrier_freq_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ul_carrier_freq_v9e0_present) { - HANDLE_CODE(pack_integer(bref, ul_carrier_freq_v9e0, (uint32_t)65536u, (uint32_t)262143u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type2_v9e0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ul_carrier_freq_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ul_carrier_freq_v9e0_present) { - HANDLE_CODE(unpack_integer(ul_carrier_freq_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void sib_type2_v9e0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ul_carrier_freq_v9e0_present) { - j.write_int("ul-CarrierFreq-v9e0", ul_carrier_freq_v9e0); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE -SRSASN_CODE sib_type3_v10l0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type3_v10l0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (freq_band_info_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); - } - if (multi_band_info_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); - } - - return SRSASN_SUCCESS; -} -void sib_type3_v10l0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (freq_band_info_v10l0_present) { - j.start_array("freqBandInfo-v10l0"); - for (const auto& e1 : freq_band_info_v10l0) { - e1.to_json(j); - } - j.end_array(); - } - if (multi_band_info_list_v10l0_present) { - j.start_array("multiBandInfoList-v10l0"); - for (const auto& e1 : multi_band_info_list_v10l0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); - } - j.end_array(); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); + j.write_str("t360-r13", t360_r13.to_string()); + if (redistr_on_paging_only_r13_present) { + j.write_str("redistrOnPagingOnly-r13", "true"); } j.end_obj(); } -// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE -SRSASN_CODE sib_type5_v9e0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v9e0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v9e0, 1, 8)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type5_v9e0_ies_s::unpack(cbit_ref& bref) +std::string redist_serving_info_r13_s::t360_r13_opts::to_string() const { - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v9e0_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v9e0, bref, 1, 8)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"min4", "min8", "min16", "min32", "infinity", "spare3", "spare2", "spare1"}; + return convert_enum_idx(options, 8, value, "redist_serving_info_r13_s::t360_r13_e_"); } -void sib_type5_v9e0_ies_s::to_json(json_writer& j) const +int8_t redist_serving_info_r13_s::t360_r13_opts::to_number() const { - j.start_obj(); - if (inter_freq_carrier_freq_list_v9e0_present) { - j.start_array("interFreqCarrierFreqList-v9e0"); - for (const auto& e1 : inter_freq_carrier_freq_list_v9e0) { - e1.to_json(j); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); + static const int8_t options[] = {4, 8, 16, 32, -1}; + return map_enum_number(options, 5, value, "redist_serving_info_r13_s::t360_r13_e_"); } -// UAC-BarringInfoSet-r15 ::= SEQUENCE -SRSASN_CODE uac_barr_info_set_r15_s::pack(bit_ref& bref) const +// SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE +SRSASN_CODE sc_mcch_sched_info_r14_s::pack(bit_ref& bref) const { - HANDLE_CODE(uac_barr_factor_r15.pack(bref)); - HANDLE_CODE(uac_barr_time_r15.pack(bref)); - HANDLE_CODE(uac_barr_for_access_id_r15.pack(bref)); + bref.pack(ext, 1); + HANDLE_CODE(on_dur_timer_scptm_r14.pack(bref)); + HANDLE_CODE(drx_inactivity_timer_scptm_r14.pack(bref)); + HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE uac_barr_info_set_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE sc_mcch_sched_info_r14_s::unpack(cbit_ref& bref) { - HANDLE_CODE(uac_barr_factor_r15.unpack(bref)); - HANDLE_CODE(uac_barr_time_r15.unpack(bref)); - HANDLE_CODE(uac_barr_for_access_id_r15.unpack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(on_dur_timer_scptm_r14.unpack(bref)); + HANDLE_CODE(drx_inactivity_timer_scptm_r14.unpack(bref)); + HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); return SRSASN_SUCCESS; } -void uac_barr_info_set_r15_s::to_json(json_writer& j) const +void sc_mcch_sched_info_r14_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("uac-BarringFactor-r15", uac_barr_factor_r15.to_string()); - j.write_str("uac-BarringTime-r15", uac_barr_time_r15.to_string()); - j.write_str("uac-BarringForAccessIdentity-r15", uac_barr_for_access_id_r15.to_string()); + j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); + j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); + j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); + sched_period_start_offset_scptm_r14.to_json(j); j.end_obj(); } -std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_string() const -{ - static const char* options[] = { - "p00", "p05", "p10", "p15", "p20", "p25", "p30", "p40", "p50", "p60", "p70", "p75", "p80", "p85", "p90", "p95"}; - return convert_enum_idx(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); -} -float uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number() const +std::string sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { - static const float options[] = {0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5}; - return map_enum_number(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); + static const char* options[] = {"psf10", "psf20", "psf100", "psf300", "psf500", "psf1000", "psf1200", "psf1600"}; + return convert_enum_idx(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string uac_barr_info_set_r15_s::uac_barr_factor_r15_opts::to_number_string() const +uint16_t sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_number() const { - static const char* options[] = { - "0.0", "0.5", "1.0", "1.5", "2.0", "2.5", "3.0", "4.0", "5.0", "6.0", "7.0", "7.5", "8.0", "8.5", "9.0", "9.5"}; - return convert_enum_idx(options, 16, value, "uac_barr_info_set_r15_s::uac_barr_factor_r15_e_"); + static const uint16_t options[] = {10, 20, 100, 300, 500, 1000, 1200, 1600}; + return map_enum_number(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); } -std::string uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_string() const +std::string sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { - static const char* options[] = {"s4", "s8", "s16", "s32", "s64", "s128", "s256", "s512"}; - return convert_enum_idx(options, 8, value, "uac_barr_info_set_r15_s::uac_barr_time_r15_e_"); + static const char* options[] = {"psf0", + "psf1", + "psf2", + "psf4", + "psf8", + "psf16", + "psf32", + "psf64", + "psf128", + "psf256", + "ps512", + "psf1024", + "psf2048", + "psf4096", + "psf8192", + "psf16384"}; + return convert_enum_idx(options, 16, value, "sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_e_"); } -uint16_t uac_barr_info_set_r15_s::uac_barr_time_r15_opts::to_number() const +uint16_t sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_number() const { - static const uint16_t options[] = {4, 8, 16, 32, 64, 128, 256, 512}; - return map_enum_number(options, 8, value, "uac_barr_info_set_r15_s::uac_barr_time_r15_e_"); + static const uint16_t options[] = {0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384}; + return map_enum_number(options, 16, value, "sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_e_"); } -// UAC-BarringPerPLMN-r15 ::= SEQUENCE -SRSASN_CODE uac_barr_per_plmn_r15_s::pack(bit_ref& bref) const +void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} +void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) { - HANDLE_CODE(bref.pack(uac_ac_barr_list_type_r15_present, 1)); - - HANDLE_CODE(pack_integer(bref, plmn_id_idx_r15, (uint8_t)1u, (uint8_t)6u)); - if (uac_ac_barr_list_type_r15_present) { - HANDLE_CODE(uac_ac_barr_list_type_r15.pack(bref)); - } - - return SRSASN_SUCCESS; + destroy_(); + type_ = e; } -SRSASN_CODE uac_barr_per_plmn_r15_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(uac_ac_barr_list_type_r15_present, 1)); - - HANDLE_CODE(unpack_integer(plmn_id_idx_r15, bref, (uint8_t)1u, (uint8_t)6u)); - if (uac_ac_barr_list_type_r15_present) { - HANDLE_CODE(uac_ac_barr_list_type_r15.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void uac_barr_per_plmn_r15_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("plmn-IdentityIndex-r15", plmn_id_idx_r15); - if (uac_ac_barr_list_type_r15_present) { - j.write_fieldname("uac-AC-BarringListType-r15"); - uac_ac_barr_list_type_r15.to_json(j); - } - j.end_obj(); -} - -void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::destroy_() +sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( + const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) { + type_ = other.type(); switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - c.destroy(); + case types::sf10: + c.init(other.c.get()); break; - case types::uac_explicit_ac_barr_list_r15: - c.destroy(); + case types::sf20: + c.init(other.c.get()); break; - default: + case types::sf32: + c.init(other.c.get()); break; - } -} -void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - c.init(); + case types::sf40: + c.init(other.c.get()); break; - case types::uac_explicit_ac_barr_list_r15: - c.init(); + case types::sf64: + c.init(other.c.get()); break; - case types::nulltype: + case types::sf80: + c.init(other.c.get()); break; - default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); - } -} -uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::uac_ac_barr_list_type_r15_c_( - const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - c.init(other.c.get()); + case types::sf128: + c.init(other.c.get()); break; - case types::uac_explicit_ac_barr_list_r15: - c.init(other.c.get()); + case types::sf160: + c.init(other.c.get()); + break; + case types::sf256: + c.init(other.c.get()); + break; + case types::sf320: + c.init(other.c.get()); + break; + case types::sf512: + c.init(other.c.get()); + break; + case types::sf640: + c.init(other.c.get()); + break; + case types::sf1024: + c.init(other.c.get()); + break; + case types::sf2048: + c.init(other.c.get()); + break; + case types::sf4096: + c.init(other.c.get()); + break; + case types::sf8192: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } } -uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::operator=( - const uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_& other) +sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& +sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( + const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - c.set(other.c.get()); + case types::sf10: + c.set(other.c.get()); break; - case types::uac_explicit_ac_barr_list_r15: - c.set(other.c.get()); + case types::sf20: + c.set(other.c.get()); + break; + case types::sf32: + c.set(other.c.get()); + break; + case types::sf40: + c.set(other.c.get()); + break; + case types::sf64: + c.set(other.c.get()); + break; + case types::sf80: + c.set(other.c.get()); + break; + case types::sf128: + c.set(other.c.get()); + break; + case types::sf160: + c.set(other.c.get()); + break; + case types::sf256: + c.set(other.c.get()); + break; + case types::sf320: + c.set(other.c.get()); + break; + case types::sf512: + c.set(other.c.get()); + break; + case types::sf640: + c.set(other.c.get()); + break; + case types::sf1024: + c.set(other.c.get()); + break; + case types::sf2048: + c.set(other.c.get()); + break; + case types::sf4096: + c.set(other.c.get()); + break; + case types::sf8192: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } return *this; } -void uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::to_json(json_writer& j) const +void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - j.start_array("uac-ImplicitAC-BarringList-r15"); - for (const auto& e1 : c.get()) { - j.write_int(e1); - } - j.end_array(); + case types::sf10: + j.write_int("sf10", c.get()); break; - case types::uac_explicit_ac_barr_list_r15: - j.start_array("uac-ExplicitAC-BarringList-r15"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::sf20: + j.write_int("sf20", c.get()); + break; + case types::sf32: + j.write_int("sf32", c.get()); + break; + case types::sf40: + j.write_int("sf40", c.get()); + break; + case types::sf64: + j.write_int("sf64", c.get()); + break; + case types::sf80: + j.write_int("sf80", c.get()); + break; + case types::sf128: + j.write_int("sf128", c.get()); + break; + case types::sf160: + j.write_int("sf160", c.get()); + break; + case types::sf256: + j.write_int("sf256", c.get()); + break; + case types::sf320: + j.write_int("sf320", c.get()); + break; + case types::sf512: + j.write_int("sf512", c.get()); + break; + case types::sf640: + j.write_int("sf640", c.get()); + break; + case types::sf1024: + j.write_int("sf1024", c.get()); + break; + case types::sf2048: + j.write_int("sf2048", c.get()); + break; + case types::sf4096: + j.write_int("sf4096", c.get()); + break; + case types::sf8192: + j.write_int("sf8192", c.get()); break; default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); + log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); } j.end_obj(); } -SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::pack(bit_ref& bref) const +SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - HANDLE_CODE(pack_fixed_seq_of(bref, - &(c.get())[0], - c.get().size(), - integer_packer(1, 8))); + case types::sf10: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)9u)); break; - case types::uac_explicit_ac_barr_list_r15: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 63)); + case types::sf20: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)19u)); break; - default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::uac_implicit_ac_barr_list_r15: - HANDLE_CODE(unpack_fixed_seq_of(&(c.get())[0], - bref, - c.get().size(), - integer_packer(1, 8))); + case types::sf32: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)31u)); break; - case types::uac_explicit_ac_barr_list_r15: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 63)); + case types::sf40: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)39u)); break; - default: - log_invalid_choice_id(type_, "uac_barr_per_plmn_r15_s::uac_ac_barr_list_type_r15_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -// CarrierFreqInfoUTRA-v1250 ::= SEQUENCE -SRSASN_CODE carrier_freq_info_utra_v1250_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(reduced_meas_performance_r12_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE carrier_freq_info_utra_v1250_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(reduced_meas_performance_r12_present, 1)); - + case types::sf64: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)63u)); + break; + case types::sf80: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)79u)); + break; + case types::sf128: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)127u)); + break; + case types::sf160: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)159u)); + break; + case types::sf256: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)255u)); + break; + case types::sf320: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)319u)); + break; + case types::sf512: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)511u)); + break; + case types::sf640: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)639u)); + break; + case types::sf1024: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)1023u)); + break; + case types::sf2048: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)2047u)); + break; + case types::sf4096: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)4095u)); + break; + case types::sf8192: + HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)8191u)); + break; + default: + log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } return SRSASN_SUCCESS; } -void carrier_freq_info_utra_v1250_s::to_json(json_writer& j) const +SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::unpack(cbit_ref& bref) { - j.start_obj(); - if (reduced_meas_performance_r12_present) { - j.write_str("reducedMeasPerformance-r12", "true"); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sf10: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)9u)); + break; + case types::sf20: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)19u)); + break; + case types::sf32: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)31u)); + break; + case types::sf40: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)39u)); + break; + case types::sf64: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)63u)); + break; + case types::sf80: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)79u)); + break; + case types::sf128: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)127u)); + break; + case types::sf160: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)159u)); + break; + case types::sf256: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)255u)); + break; + case types::sf320: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)319u)); + break; + case types::sf512: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)511u)); + break; + case types::sf640: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)639u)); + break; + case types::sf1024: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)1023u)); + break; + case types::sf2048: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)2047u)); + break; + case types::sf4096: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)4095u)); + break; + case types::sf8192: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)8191u)); + break; + default: + log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - j.end_obj(); + return SRSASN_SUCCESS; } -// CellReselectionInfoCommon-v1460 ::= SEQUENCE -SRSASN_CODE cell_resel_info_common_v1460_s::pack(bit_ref& bref) const +// SL-DiscConfigRelayUE-r13 ::= SEQUENCE +SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(s_search_delta_p_r14.pack(bref)); + HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); + HANDLE_CODE(bref.pack(thresh_low_r13_present, 1)); + HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); + HANDLE_CODE(bref.pack(hyst_min_r13_present, 1)); + + if (thresh_high_r13_present) { + HANDLE_CODE(pack_integer(bref, thresh_high_r13, (uint8_t)0u, (uint8_t)49u)); + } + if (thresh_low_r13_present) { + HANDLE_CODE(pack_integer(bref, thresh_low_r13, (uint8_t)0u, (uint8_t)49u)); + } + if (hyst_max_r13_present) { + HANDLE_CODE(hyst_max_r13.pack(bref)); + } + if (hyst_min_r13_present) { + HANDLE_CODE(hyst_min_r13.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE cell_resel_info_common_v1460_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(s_search_delta_p_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); + HANDLE_CODE(bref.unpack(thresh_low_r13_present, 1)); + HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); + HANDLE_CODE(bref.unpack(hyst_min_r13_present, 1)); + + if (thresh_high_r13_present) { + HANDLE_CODE(unpack_integer(thresh_high_r13, bref, (uint8_t)0u, (uint8_t)49u)); + } + if (thresh_low_r13_present) { + HANDLE_CODE(unpack_integer(thresh_low_r13, bref, (uint8_t)0u, (uint8_t)49u)); + } + if (hyst_max_r13_present) { + HANDLE_CODE(hyst_max_r13.unpack(bref)); + } + if (hyst_min_r13_present) { + HANDLE_CODE(hyst_min_r13.unpack(bref)); + } return SRSASN_SUCCESS; } -void cell_resel_info_common_v1460_s::to_json(json_writer& j) const +void sl_disc_cfg_relay_ue_r13_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("s-SearchDeltaP-r14", s_search_delta_p_r14.to_string()); + if (thresh_high_r13_present) { + j.write_int("threshHigh-r13", thresh_high_r13); + } + if (thresh_low_r13_present) { + j.write_int("threshLow-r13", thresh_low_r13); + } + if (hyst_max_r13_present) { + j.write_str("hystMax-r13", hyst_max_r13.to_string()); + } + if (hyst_min_r13_present) { + j.write_str("hystMin-r13", hyst_min_r13.to_string()); + } j.end_obj(); } -std::string cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_string() const +std::string sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_string() const { - static const char* options[] = {"dB6", "dB9", "dB12", "dB15"}; - return convert_enum_idx(options, 4, value, "cell_resel_info_common_v1460_s::s_search_delta_p_r14_e_"); + static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; + return convert_enum_idx(options, 6, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); } -uint8_t cell_resel_info_common_v1460_s::s_search_delta_p_r14_opts::to_number() const +uint8_t sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_number() const { - static const uint8_t options[] = {6, 9, 12, 15}; - return map_enum_number(options, 4, value, "cell_resel_info_common_v1460_s::s_search_delta_p_r14_e_"); + static const uint8_t options[] = {0, 3, 6, 9, 12}; + return map_enum_number(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); } -// CellReselectionInfoHSDN-r15 ::= SEQUENCE -SRSASN_CODE cell_resel_info_hsdn_r15_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, cell_equivalent_size_r15, (uint8_t)2u, (uint8_t)16u)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE cell_resel_info_hsdn_r15_s::unpack(cbit_ref& bref) +std::string sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_string() const { - HANDLE_CODE(unpack_integer(cell_equivalent_size_r15, bref, (uint8_t)2u, (uint8_t)16u)); - - return SRSASN_SUCCESS; + static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; + return convert_enum_idx(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_e_"); } -void cell_resel_info_hsdn_r15_s::to_json(json_writer& j) const +uint8_t sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_number() const { - j.start_obj(); - j.write_int("cellEquivalentSize-r15", cell_equivalent_size_r15); - j.end_obj(); + static const uint8_t options[] = {0, 3, 6, 9, 12}; + return map_enum_number(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_e_"); } -// CellReselectionParametersCDMA2000 ::= SEQUENCE -SRSASN_CODE cell_resel_params_cdma2000_s::pack(bit_ref& bref) const +// SL-DiscConfigRemoteUE-r13 ::= SEQUENCE +SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(t_resel_cdma2000_sf_present, 1)); + HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); + HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, band_class_list, 1, 32)); - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list, 1, 16)); - HANDLE_CODE(pack_integer(bref, t_resel_cdma2000, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_cdma2000_sf_present) { - HANDLE_CODE(t_resel_cdma2000_sf.pack(bref)); + if (thresh_high_r13_present) { + HANDLE_CODE(pack_integer(bref, thresh_high_r13, (uint8_t)0u, (uint8_t)49u)); + } + if (hyst_max_r13_present) { + HANDLE_CODE(hyst_max_r13.pack(bref)); } + HANDLE_CODE(resel_info_ic_r13.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE cell_resel_params_cdma2000_s::unpack(cbit_ref& bref) +SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(t_resel_cdma2000_sf_present, 1)); + HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); + HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(band_class_list, bref, 1, 32)); - HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list, bref, 1, 16)); - HANDLE_CODE(unpack_integer(t_resel_cdma2000, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_cdma2000_sf_present) { - HANDLE_CODE(t_resel_cdma2000_sf.unpack(bref)); + if (thresh_high_r13_present) { + HANDLE_CODE(unpack_integer(thresh_high_r13, bref, (uint8_t)0u, (uint8_t)49u)); + } + if (hyst_max_r13_present) { + HANDLE_CODE(hyst_max_r13.unpack(bref)); } + HANDLE_CODE(resel_info_ic_r13.unpack(bref)); return SRSASN_SUCCESS; } -void cell_resel_params_cdma2000_s::to_json(json_writer& j) const +void sl_disc_cfg_remote_ue_r13_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("bandClassList"); - for (const auto& e1 : band_class_list) { - e1.to_json(j); - } - j.end_array(); - j.start_array("neighCellList"); - for (const auto& e1 : neigh_cell_list) { - e1.to_json(j); + if (thresh_high_r13_present) { + j.write_int("threshHigh-r13", thresh_high_r13); } - j.end_array(); - j.write_int("t-ReselectionCDMA2000", t_resel_cdma2000); - if (t_resel_cdma2000_sf_present) { - j.write_fieldname("t-ReselectionCDMA2000-SF"); - t_resel_cdma2000_sf.to_json(j); + if (hyst_max_r13_present) { + j.write_str("hystMax-r13", hyst_max_r13.to_string()); } + j.write_fieldname("reselectionInfoIC-r13"); + resel_info_ic_r13.to_json(j); j.end_obj(); } -// CellReselectionParametersCDMA2000-v920 ::= SEQUENCE -SRSASN_CODE cell_resel_params_cdma2000_v920_s::pack(bit_ref& bref) const +std::string sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_string() const { - HANDLE_CODE(pack_dyn_seq_of(bref, neigh_cell_list_v920, 1, 16)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE cell_resel_params_cdma2000_v920_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_dyn_seq_of(neigh_cell_list_v920, bref, 1, 16)); - - return SRSASN_SUCCESS; -} -void cell_resel_params_cdma2000_v920_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("neighCellList-v920"); - for (const auto& e1 : neigh_cell_list_v920) { - e1.to_json(j); - } - j.end_array(); - j.end_obj(); + static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; + return convert_enum_idx(options, 5, value, "sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_e_"); } - -// CellReselectionServingFreqInfo-v1310 ::= SEQUENCE -SRSASN_CODE cell_resel_serving_freq_info_v1310_s::pack(bit_ref& bref) const +uint8_t sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_number() const { - HANDLE_CODE(cell_resel_sub_prio_r13.pack(bref)); - - return SRSASN_SUCCESS; + static const uint8_t options[] = {0, 3, 6, 9, 12}; + return map_enum_number(options, 5, value, "sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_e_"); } -SRSASN_CODE cell_resel_serving_freq_info_v1310_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(cell_resel_sub_prio_r13.unpack(bref)); - return SRSASN_SUCCESS; -} -void cell_resel_serving_freq_info_v1310_s::to_json(json_writer& j) const +// UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED +std::string uac_ac1_select_assist_info_r15_opts::to_string() const { - j.start_obj(); - j.write_str("cellReselectionSubPriority-r13", cell_resel_sub_prio_r13.to_string()); - j.end_obj(); + static const char* options[] = {"a", "b", "c"}; + return convert_enum_idx(options, 3, value, "uac_ac1_select_assist_info_r15_e"); } -// EAB-ConfigPLMN-r11 ::= SEQUENCE -SRSASN_CODE eab_cfg_plmn_r11_s::pack(bit_ref& bref) const +// SystemInformation-v8a0-IEs ::= SEQUENCE +SRSASN_CODE sys_info_v8a0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(eab_cfg_r11_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (eab_cfg_r11_present) { - HANDLE_CODE(eab_cfg_r11.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE eab_cfg_plmn_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE sys_info_v8a0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(eab_cfg_r11_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - if (eab_cfg_r11_present) { - HANDLE_CODE(eab_cfg_r11.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void eab_cfg_plmn_r11_s::to_json(json_writer& j) const +void sys_info_v8a0_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (eab_cfg_r11_present) { - j.write_fieldname("eab-Config-r11"); - eab_cfg_r11.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -// MBMS-NotificationConfig-r9 ::= SEQUENCE -SRSASN_CODE mbms_notif_cfg_r9_s::pack(bit_ref& bref) const +// SystemInformationBlockPos-r15 ::= SEQUENCE +SRSASN_CODE sib_pos_r15_s::pack(bit_ref& bref) const { - HANDLE_CODE(notif_repeat_coeff_r9.pack(bref)); - HANDLE_CODE(pack_integer(bref, notif_offset_r9, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(pack_integer(bref, notif_sf_idx_r9, (uint8_t)1u, (uint8_t)6u)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - return SRSASN_SUCCESS; -} -SRSASN_CODE mbms_notif_cfg_r9_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(notif_repeat_coeff_r9.unpack(bref)); - HANDLE_CODE(unpack_integer(notif_offset_r9, bref, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(unpack_integer(notif_sf_idx_r9, bref, (uint8_t)1u, (uint8_t)6u)); + HANDLE_CODE(assist_data_sib_elem_r15.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -void mbms_notif_cfg_r9_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("notificationRepetitionCoeff-r9", notif_repeat_coeff_r9.to_string()); - j.write_int("notificationOffset-r9", notif_offset_r9); - j.write_int("notificationSF-Index-r9", notif_sf_idx_r9); - j.end_obj(); -} - -std::string mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_string() const -{ - static const char* options[] = {"n2", "n4"}; - return convert_enum_idx(options, 2, value, "mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_e_"); -} -uint8_t mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_opts::to_number() const -{ - static const uint8_t options[] = {2, 4}; - return map_enum_number(options, 2, value, "mbms_notif_cfg_r9_s::notif_repeat_coeff_r9_e_"); -} - -// MBMS-NotificationConfig-v1430 ::= SEQUENCE -SRSASN_CODE mbms_notif_cfg_v1430_s::pack(bit_ref& bref) const +SRSASN_CODE sib_pos_r15_s::unpack(cbit_ref& bref) { - HANDLE_CODE(pack_integer(bref, notif_sf_idx_v1430, (uint8_t)7u, (uint8_t)10u)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - return SRSASN_SUCCESS; -} -SRSASN_CODE mbms_notif_cfg_v1430_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(notif_sf_idx_v1430, bref, (uint8_t)7u, (uint8_t)10u)); + HANDLE_CODE(assist_data_sib_elem_r15.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void mbms_notif_cfg_v1430_s::to_json(json_writer& j) const +void sib_pos_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("notificationSF-Index-v1430", notif_sf_idx_v1430); + j.write_str("assistanceDataSIB-Element-r15", assist_data_sib_elem_r15.to_string()); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } j.end_obj(); } -// MeasIdleConfigSIB-r15 ::= SEQUENCE -SRSASN_CODE meas_idle_cfg_sib_r15_s::pack(bit_ref& bref) const +// SystemInformationBlockType10 ::= SEQUENCE +SRSASN_CODE sib_type10_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(pack_dyn_seq_of(bref, meas_idle_carrier_list_eutra_r15, 1, 8)); + HANDLE_CODE(bref.pack(dummy_present, 1)); + + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + HANDLE_CODE(warning_type.pack(bref)); + if (dummy_present) { + HANDLE_CODE(dummy.pack(bref)); + } + if (ext) { + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + } return SRSASN_SUCCESS; } -SRSASN_CODE meas_idle_cfg_sib_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type10_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(unpack_dyn_seq_of(meas_idle_carrier_list_eutra_r15, bref, 1, 8)); + HANDLE_CODE(bref.unpack(dummy_present, 1)); + + HANDLE_CODE(msg_id.unpack(bref)); + HANDLE_CODE(serial_num.unpack(bref)); + HANDLE_CODE(warning_type.unpack(bref)); + if (dummy_present) { + HANDLE_CODE(dummy.unpack(bref)); + } + + if (ext) { + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + } return SRSASN_SUCCESS; } -void meas_idle_cfg_sib_r15_s::to_json(json_writer& j) const +void sib_type10_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("measIdleCarrierListEUTRA-r15"); - for (const auto& e1 : meas_idle_carrier_list_eutra_r15) { - e1.to_json(j); + j.write_str("messageIdentifier", msg_id.to_string()); + j.write_str("serialNumber", serial_num.to_string()); + j.write_str("warningType", warning_type.to_string()); + if (dummy_present) { + j.write_str("dummy", dummy.to_string()); + } + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } } - j.end_array(); j.end_obj(); } -// RedistributionServingInfo-r13 ::= SEQUENCE -SRSASN_CODE redist_serving_info_r13_s::pack(bit_ref& bref) const +// SystemInformationBlockType11 ::= SEQUENCE +SRSASN_CODE sib_type11_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(redist_factor_cell_r13_present, 1)); - HANDLE_CODE(bref.pack(redistr_on_paging_only_r13_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(data_coding_scheme_present, 1)); - HANDLE_CODE(pack_integer(bref, redist_factor_serving_r13, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(t360_r13.pack(bref)); + HANDLE_CODE(msg_id.pack(bref)); + HANDLE_CODE(serial_num.pack(bref)); + HANDLE_CODE(warning_msg_segment_type.pack(bref)); + HANDLE_CODE(pack_integer(bref, warning_msg_segment_num, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(warning_msg_segment.pack(bref)); + if (data_coding_scheme_present) { + HANDLE_CODE(data_coding_scheme.pack(bref)); + } + + if (ext) { + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + } return SRSASN_SUCCESS; } -SRSASN_CODE redist_serving_info_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(redist_factor_cell_r13_present, 1)); - HANDLE_CODE(bref.unpack(redistr_on_paging_only_r13_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(data_coding_scheme_present, 1)); - HANDLE_CODE(unpack_integer(redist_factor_serving_r13, bref, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(t360_r13.unpack(bref)); + HANDLE_CODE(msg_id.unpack(bref)); + HANDLE_CODE(serial_num.unpack(bref)); + HANDLE_CODE(warning_msg_segment_type.unpack(bref)); + HANDLE_CODE(unpack_integer(warning_msg_segment_num, bref, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(warning_msg_segment.unpack(bref)); + if (data_coding_scheme_present) { + HANDLE_CODE(data_coding_scheme.unpack(bref)); + } + + if (ext) { + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + } return SRSASN_SUCCESS; } -void redist_serving_info_r13_s::to_json(json_writer& j) const +void sib_type11_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("redistributionFactorServing-r13", redist_factor_serving_r13); - if (redist_factor_cell_r13_present) { - j.write_str("redistributionFactorCell-r13", "true"); + j.write_str("messageIdentifier", msg_id.to_string()); + j.write_str("serialNumber", serial_num.to_string()); + j.write_str("warningMessageSegmentType", warning_msg_segment_type.to_string()); + j.write_int("warningMessageSegmentNumber", warning_msg_segment_num); + j.write_str("warningMessageSegment", warning_msg_segment.to_string()); + if (data_coding_scheme_present) { + j.write_str("dataCodingScheme", data_coding_scheme.to_string()); } - j.write_str("t360-r13", t360_r13.to_string()); - if (redistr_on_paging_only_r13_present) { - j.write_str("redistrOnPagingOnly-r13", "true"); + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } } j.end_obj(); } -std::string redist_serving_info_r13_s::t360_r13_opts::to_string() const -{ - static const char* options[] = {"min4", "min8", "min16", "min32", "infinity", "spare3", "spare2", "spare1"}; - return convert_enum_idx(options, 8, value, "redist_serving_info_r13_s::t360_r13_e_"); -} -int8_t redist_serving_info_r13_s::t360_r13_opts::to_number() const +std::string sib_type11_s::warning_msg_segment_type_opts::to_string() const { - static const int8_t options[] = {4, 8, 16, 32, -1}; - return map_enum_number(options, 5, value, "redist_serving_info_r13_s::t360_r13_e_"); + static const char* options[] = {"notLastSegment", "lastSegment"}; + return convert_enum_idx(options, 2, value, "sib_type11_s::warning_msg_segment_type_e_"); } -// SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE -SRSASN_CODE sc_mcch_sched_info_r14_s::pack(bit_ref& bref) const +// SystemInformationBlockType12-r9 ::= SEQUENCE +SRSASN_CODE sib_type12_r9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(on_dur_timer_scptm_r14.pack(bref)); - HANDLE_CODE(drx_inactivity_timer_scptm_r14.pack(bref)); - HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); + HANDLE_CODE(bref.pack(data_coding_scheme_r9_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + + HANDLE_CODE(msg_id_r9.pack(bref)); + HANDLE_CODE(serial_num_r9.pack(bref)); + HANDLE_CODE(warning_msg_segment_type_r9.pack(bref)); + HANDLE_CODE(pack_integer(bref, warning_msg_segment_num_r9, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(warning_msg_segment_r9.pack(bref)); + if (data_coding_scheme_r9_present) { + HANDLE_CODE(data_coding_scheme_r9.pack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= warning_area_coordinates_segment_r15_present; + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(warning_area_coordinates_segment_r15_present, 1)); + if (warning_area_coordinates_segment_r15_present) { + HANDLE_CODE(warning_area_coordinates_segment_r15.pack(bref)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sc_mcch_sched_info_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type12_r9_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(on_dur_timer_scptm_r14.unpack(bref)); - HANDLE_CODE(drx_inactivity_timer_scptm_r14.unpack(bref)); - HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(data_coding_scheme_r9_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + + HANDLE_CODE(msg_id_r9.unpack(bref)); + HANDLE_CODE(serial_num_r9.unpack(bref)); + HANDLE_CODE(warning_msg_segment_type_r9.unpack(bref)); + HANDLE_CODE(unpack_integer(warning_msg_segment_num_r9, bref, (uint8_t)0u, (uint8_t)63u)); + HANDLE_CODE(warning_msg_segment_r9.unpack(bref)); + if (data_coding_scheme_r9_present) { + HANDLE_CODE(data_coding_scheme_r9.unpack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.unpack(warning_area_coordinates_segment_r15_present, 1)); + if (warning_area_coordinates_segment_r15_present) { + HANDLE_CODE(warning_area_coordinates_segment_r15.unpack(bref)); + } + } + } return SRSASN_SUCCESS; } -void sc_mcch_sched_info_r14_s::to_json(json_writer& j) const +void sib_type12_r9_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); - j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); - j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); - sched_period_start_offset_scptm_r14.to_json(j); + j.write_str("messageIdentifier-r9", msg_id_r9.to_string()); + j.write_str("serialNumber-r9", serial_num_r9.to_string()); + j.write_str("warningMessageSegmentType-r9", warning_msg_segment_type_r9.to_string()); + j.write_int("warningMessageSegmentNumber-r9", warning_msg_segment_num_r9); + j.write_str("warningMessageSegment-r9", warning_msg_segment_r9.to_string()); + if (data_coding_scheme_r9_present) { + j.write_str("dataCodingScheme-r9", data_coding_scheme_r9.to_string()); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (warning_area_coordinates_segment_r15_present) { + j.write_str("warningAreaCoordinatesSegment-r15", warning_area_coordinates_segment_r15.to_string()); + } + } j.end_obj(); } -std::string sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_string() const +std::string sib_type12_r9_s::warning_msg_segment_type_r9_opts::to_string() const { - static const char* options[] = {"psf10", "psf20", "psf100", "psf300", "psf500", "psf1000", "psf1200", "psf1600"}; - return convert_enum_idx(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); + static const char* options[] = {"notLastSegment", "lastSegment"}; + return convert_enum_idx(options, 2, value, "sib_type12_r9_s::warning_msg_segment_type_r9_e_"); } -uint16_t sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_opts::to_number() const + +// SystemInformationBlockType13-r9 ::= SEQUENCE +SRSASN_CODE sib_type13_r9_s::pack(bit_ref& bref) const { - static const uint16_t options[] = {10, 20, 100, 300, 500, 1000, 1200, 1600}; - return map_enum_number(options, 8, value, "sc_mcch_sched_info_r14_s::on_dur_timer_scptm_r14_e_"); -} + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); -std::string sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const + HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_area_info_list_r9, 1, 8)); + HANDLE_CODE(notif_cfg_r9.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= notif_cfg_v1430.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(notif_cfg_v1430.is_present(), 1)); + if (notif_cfg_v1430.is_present()) { + HANDLE_CODE(notif_cfg_v1430->pack(bref)); + } + } + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type13_r9_s::unpack(cbit_ref& bref) { - static const char* options[] = {"psf0", - "psf1", - "psf2", - "psf4", - "psf8", - "psf16", - "psf32", - "psf64", - "psf128", - "psf256", - "ps512", - "psf1024", - "psf2048", - "psf4096", - "psf8192", - "psf16384"}; - return convert_enum_idx(options, 16, value, "sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_e_"); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(mbsfn_area_info_list_r9, bref, 1, 8)); + HANDLE_CODE(notif_cfg_r9.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool notif_cfg_v1430_present; + HANDLE_CODE(bref.unpack(notif_cfg_v1430_present, 1)); + notif_cfg_v1430.set_present(notif_cfg_v1430_present); + if (notif_cfg_v1430.is_present()) { + HANDLE_CODE(notif_cfg_v1430->unpack(bref)); + } + } + } + return SRSASN_SUCCESS; } -uint16_t sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_opts::to_number() const +void sib_type13_r9_s::to_json(json_writer& j) const { - static const uint16_t options[] = {0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384}; - return map_enum_number(options, 16, value, "sc_mcch_sched_info_r14_s::drx_inactivity_timer_scptm_r14_e_"); + j.start_obj(); + j.start_array("mbsfn-AreaInfoList-r9"); + for (const auto& e1 : mbsfn_area_info_list_r9) { + e1.to_json(j); + } + j.end_array(); + j.write_fieldname("notificationConfig-r9"); + notif_cfg_r9.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (notif_cfg_v1430.is_present()) { + j.write_fieldname("notificationConfig-v1430"); + notif_cfg_v1430->to_json(j); + } + } + j.end_obj(); } -void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} -void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) +// SystemInformationBlockType14-r11 ::= SEQUENCE +SRSASN_CODE sib_type14_r11_s::pack(bit_ref& bref) const { - destroy_(); - type_ = e; + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(eab_param_r11_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + + if (eab_param_r11_present) { + HANDLE_CODE(eab_param_r11.pack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= eab_per_rsrp_r15_present; + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(eab_per_rsrp_r15_present, 1)); + if (eab_per_rsrp_r15_present) { + HANDLE_CODE(eab_per_rsrp_r15.pack(bref)); + } + } + } + return SRSASN_SUCCESS; } -sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( - const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) +SRSASN_CODE sib_type14_r11_s::unpack(cbit_ref& bref) { - type_ = other.type(); - switch (type_) { - case types::sf10: - c.init(other.c.get()); - break; - case types::sf20: - c.init(other.c.get()); - break; - case types::sf32: - c.init(other.c.get()); - break; - case types::sf40: - c.init(other.c.get()); - break; - case types::sf64: - c.init(other.c.get()); - break; - case types::sf80: - c.init(other.c.get()); - break; - case types::sf128: - c.init(other.c.get()); - break; - case types::sf160: - c.init(other.c.get()); - break; - case types::sf256: - c.init(other.c.get()); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(eab_param_r11_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + + if (eab_param_r11_present) { + HANDLE_CODE(eab_param_r11.unpack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.unpack(eab_per_rsrp_r15_present, 1)); + if (eab_per_rsrp_r15_present) { + HANDLE_CODE(eab_per_rsrp_r15.unpack(bref)); + } + } + } + return SRSASN_SUCCESS; +} +void sib_type14_r11_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (eab_param_r11_present) { + j.write_fieldname("eab-Param-r11"); + eab_param_r11.to_json(j); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (eab_per_rsrp_r15_present) { + j.write_str("eab-PerRSRP-r15", eab_per_rsrp_r15.to_string()); + } + } + j.end_obj(); +} + +void sib_type14_r11_s::eab_param_r11_c_::destroy_() +{ + switch (type_) { + case types::eab_common_r11: + c.destroy(); break; - case types::sf320: - c.init(other.c.get()); + case types::eab_per_plmn_list_r11: + c.destroy(); break; - case types::sf512: - c.init(other.c.get()); + default: break; - case types::sf640: - c.init(other.c.get()); + } +} +void sib_type14_r11_s::eab_param_r11_c_::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::eab_common_r11: + c.init(); break; - case types::sf1024: - c.init(other.c.get()); + case types::eab_per_plmn_list_r11: + c.init(); break; - case types::sf2048: - c.init(other.c.get()); + case types::nulltype: break; - case types::sf4096: - c.init(other.c.get()); + default: + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + } +} +sib_type14_r11_s::eab_param_r11_c_::eab_param_r11_c_(const sib_type14_r11_s::eab_param_r11_c_& other) +{ + type_ = other.type(); + switch (type_) { + case types::eab_common_r11: + c.init(other.c.get()); break; - case types::sf8192: - c.init(other.c.get()); + case types::eab_per_plmn_list_r11: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } } -sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& -sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( - const sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_& other) +sib_type14_r11_s::eab_param_r11_c_& +sib_type14_r11_s::eab_param_r11_c_::operator=(const sib_type14_r11_s::eab_param_r11_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::sf10: - c.set(other.c.get()); - break; - case types::sf20: - c.set(other.c.get()); - break; - case types::sf32: - c.set(other.c.get()); - break; - case types::sf40: - c.set(other.c.get()); - break; - case types::sf64: - c.set(other.c.get()); - break; - case types::sf80: - c.set(other.c.get()); - break; - case types::sf128: - c.set(other.c.get()); - break; - case types::sf160: - c.set(other.c.get()); - break; - case types::sf256: - c.set(other.c.get()); - break; - case types::sf320: - c.set(other.c.get()); - break; - case types::sf512: - c.set(other.c.get()); - break; - case types::sf640: - c.set(other.c.get()); - break; - case types::sf1024: - c.set(other.c.get()); - break; - case types::sf2048: - c.set(other.c.get()); - break; - case types::sf4096: - c.set(other.c.get()); + case types::eab_common_r11: + c.set(other.c.get()); break; - case types::sf8192: - c.set(other.c.get()); + case types::eab_per_plmn_list_r11: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } return *this; } -void sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const +void sib_type14_r11_s::eab_param_r11_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::sf10: - j.write_int("sf10", c.get()); - break; - case types::sf20: - j.write_int("sf20", c.get()); - break; - case types::sf32: - j.write_int("sf32", c.get()); - break; - case types::sf40: - j.write_int("sf40", c.get()); - break; - case types::sf64: - j.write_int("sf64", c.get()); - break; - case types::sf80: - j.write_int("sf80", c.get()); - break; - case types::sf128: - j.write_int("sf128", c.get()); - break; - case types::sf160: - j.write_int("sf160", c.get()); - break; - case types::sf256: - j.write_int("sf256", c.get()); - break; - case types::sf320: - j.write_int("sf320", c.get()); - break; - case types::sf512: - j.write_int("sf512", c.get()); - break; - case types::sf640: - j.write_int("sf640", c.get()); - break; - case types::sf1024: - j.write_int("sf1024", c.get()); - break; - case types::sf2048: - j.write_int("sf2048", c.get()); - break; - case types::sf4096: - j.write_int("sf4096", c.get()); + case types::eab_common_r11: + j.write_fieldname("eab-Common-r11"); + c.get().to_json(j); break; - case types::sf8192: - j.write_int("sf8192", c.get()); + case types::eab_per_plmn_list_r11: + j.start_array("eab-PerPLMN-List-r11"); + for (const auto& e1 : c.get()) { + e1.to_json(j); + } + j.end_array(); break; default: - log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); } j.end_obj(); } -SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const +SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::sf10: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)9u)); - break; - case types::sf20: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)19u)); - break; - case types::sf32: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)31u)); + case types::eab_common_r11: + HANDLE_CODE(c.get().pack(bref)); break; - case types::sf40: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)39u)); + case types::eab_per_plmn_list_r11: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 6)); break; - case types::sf64: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)63u)); + default: + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::eab_common_r11: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::sf80: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)79u)); - break; - case types::sf128: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)127u)); - break; - case types::sf160: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)159u)); - break; - case types::sf256: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)255u)); - break; - case types::sf320: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)319u)); - break; - case types::sf512: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)511u)); - break; - case types::sf640: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)639u)); - break; - case types::sf1024: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)1023u)); - break; - case types::sf2048: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)2047u)); - break; - case types::sf4096: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)4095u)); - break; - case types::sf8192: - HANDLE_CODE(pack_integer(bref, c.get(), (uint16_t)0u, (uint16_t)8191u)); + case types::eab_per_plmn_list_r11: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 6)); break; default: - log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_::unpack(cbit_ref& bref) + +std::string sib_type14_r11_s::eab_per_rsrp_r15_opts::to_string() const { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sf10: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)9u)); - break; - case types::sf20: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)19u)); - break; - case types::sf32: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)31u)); - break; - case types::sf40: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)39u)); - break; - case types::sf64: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)63u)); - break; - case types::sf80: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)79u)); - break; - case types::sf128: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)127u)); - break; - case types::sf160: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)159u)); - break; - case types::sf256: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)255u)); - break; - case types::sf320: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)319u)); - break; - case types::sf512: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)511u)); - break; - case types::sf640: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)639u)); - break; - case types::sf1024: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)1023u)); - break; - case types::sf2048: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)2047u)); - break; - case types::sf4096: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)4095u)); - break; - case types::sf8192: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint16_t)0u, (uint16_t)8191u)); - break; - default: - log_invalid_choice_id(type_, "sc_mcch_sched_info_r14_s::sched_period_start_offset_scptm_r14_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; + static const char* options[] = {"thresh0", "thresh1", "thresh2", "thresh3"}; + return convert_enum_idx(options, 4, value, "sib_type14_r11_s::eab_per_rsrp_r15_e_"); +} +uint8_t sib_type14_r11_s::eab_per_rsrp_r15_opts::to_number() const +{ + static const uint8_t options[] = {0, 1, 2, 3}; + return map_enum_number(options, 4, value, "sib_type14_r11_s::eab_per_rsrp_r15_e_"); } -// SL-DiscConfigRelayUE-r13 ::= SEQUENCE -SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::pack(bit_ref& bref) const +// SystemInformationBlockType15-r11 ::= SEQUENCE +SRSASN_CODE sib_type15_r11_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); - HANDLE_CODE(bref.pack(thresh_low_r13_present, 1)); - HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); - HANDLE_CODE(bref.pack(hyst_min_r13_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(mbms_sai_intra_freq_r11_present, 1)); + HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_r11_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (thresh_high_r13_present) { - HANDLE_CODE(pack_integer(bref, thresh_high_r13, (uint8_t)0u, (uint8_t)49u)); - } - if (thresh_low_r13_present) { - HANDLE_CODE(pack_integer(bref, thresh_low_r13, (uint8_t)0u, (uint8_t)49u)); + if (mbms_sai_intra_freq_r11_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_intra_freq_r11, 1, 64, integer_packer(0, 65535))); } - if (hyst_max_r13_present) { - HANDLE_CODE(hyst_max_r13.pack(bref)); + if (mbms_sai_inter_freq_list_r11_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_inter_freq_list_r11, 1, 8)); } - if (hyst_min_r13_present) { - HANDLE_CODE(hyst_min_r13.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= mbms_sai_inter_freq_list_v1140.is_present(); + group_flags[1] |= mbms_intra_freq_carrier_type_r14.is_present(); + group_flags[1] |= mbms_inter_freq_carrier_type_list_r14.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_v1140.is_present(), 1)); + if (mbms_sai_inter_freq_list_v1140.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_sai_inter_freq_list_v1140, 1, 8)); + } + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(mbms_intra_freq_carrier_type_r14.is_present(), 1)); + HANDLE_CODE(bref.pack(mbms_inter_freq_carrier_type_list_r14.is_present(), 1)); + if (mbms_intra_freq_carrier_type_r14.is_present()) { + HANDLE_CODE(mbms_intra_freq_carrier_type_r14->pack(bref)); + } + if (mbms_inter_freq_carrier_type_list_r14.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_inter_freq_carrier_type_list_r14, 1, 8)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sl_disc_cfg_relay_ue_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type15_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); - HANDLE_CODE(bref.unpack(thresh_low_r13_present, 1)); - HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); - HANDLE_CODE(bref.unpack(hyst_min_r13_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(mbms_sai_intra_freq_r11_present, 1)); + HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_r11_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - if (thresh_high_r13_present) { - HANDLE_CODE(unpack_integer(thresh_high_r13, bref, (uint8_t)0u, (uint8_t)49u)); - } - if (thresh_low_r13_present) { - HANDLE_CODE(unpack_integer(thresh_low_r13, bref, (uint8_t)0u, (uint8_t)49u)); + if (mbms_sai_intra_freq_r11_present) { + HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_intra_freq_r11, bref, 1, 64, integer_packer(0, 65535))); } - if (hyst_max_r13_present) { - HANDLE_CODE(hyst_max_r13.unpack(bref)); + if (mbms_sai_inter_freq_list_r11_present) { + HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_inter_freq_list_r11, bref, 1, 8)); } - if (hyst_min_r13_present) { - HANDLE_CODE(hyst_min_r13.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } + if (ext) { + ext_groups_unpacker_guard group_flags(2); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool mbms_sai_inter_freq_list_v1140_present; + HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_v1140_present, 1)); + mbms_sai_inter_freq_list_v1140.set_present(mbms_sai_inter_freq_list_v1140_present); + if (mbms_sai_inter_freq_list_v1140.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*mbms_sai_inter_freq_list_v1140, bref, 1, 8)); + } + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool mbms_intra_freq_carrier_type_r14_present; + HANDLE_CODE(bref.unpack(mbms_intra_freq_carrier_type_r14_present, 1)); + mbms_intra_freq_carrier_type_r14.set_present(mbms_intra_freq_carrier_type_r14_present); + bool mbms_inter_freq_carrier_type_list_r14_present; + HANDLE_CODE(bref.unpack(mbms_inter_freq_carrier_type_list_r14_present, 1)); + mbms_inter_freq_carrier_type_list_r14.set_present(mbms_inter_freq_carrier_type_list_r14_present); + if (mbms_intra_freq_carrier_type_r14.is_present()) { + HANDLE_CODE(mbms_intra_freq_carrier_type_r14->unpack(bref)); + } + if (mbms_inter_freq_carrier_type_list_r14.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*mbms_inter_freq_carrier_type_list_r14, bref, 1, 8)); + } + } + } return SRSASN_SUCCESS; } -void sl_disc_cfg_relay_ue_r13_s::to_json(json_writer& j) const +void sib_type15_r11_s::to_json(json_writer& j) const { j.start_obj(); - if (thresh_high_r13_present) { - j.write_int("threshHigh-r13", thresh_high_r13); + if (mbms_sai_intra_freq_r11_present) { + j.start_array("mbms-SAI-IntraFreq-r11"); + for (const auto& e1 : mbms_sai_intra_freq_r11) { + j.write_int(e1); + } + j.end_array(); } - if (thresh_low_r13_present) { - j.write_int("threshLow-r13", thresh_low_r13); + if (mbms_sai_inter_freq_list_r11_present) { + j.start_array("mbms-SAI-InterFreqList-r11"); + for (const auto& e1 : mbms_sai_inter_freq_list_r11) { + e1.to_json(j); + } + j.end_array(); } - if (hyst_max_r13_present) { - j.write_str("hystMax-r13", hyst_max_r13.to_string()); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (hyst_min_r13_present) { - j.write_str("hystMin-r13", hyst_min_r13.to_string()); + if (ext) { + if (mbms_sai_inter_freq_list_v1140.is_present()) { + j.start_array("mbms-SAI-InterFreqList-v1140"); + for (const auto& e1 : *mbms_sai_inter_freq_list_v1140) { + e1.to_json(j); + } + j.end_array(); + } + if (mbms_intra_freq_carrier_type_r14.is_present()) { + j.write_fieldname("mbms-IntraFreqCarrierType-r14"); + mbms_intra_freq_carrier_type_r14->to_json(j); + } + if (mbms_inter_freq_carrier_type_list_r14.is_present()) { + j.start_array("mbms-InterFreqCarrierTypeList-r14"); + for (const auto& e1 : *mbms_inter_freq_carrier_type_list_r14) { + e1.to_json(j); + } + j.end_array(); + } } j.end_obj(); } -std::string sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_string() const +// SystemInformationBlockType16-r11 ::= SEQUENCE +SRSASN_CODE sib_type16_r11_s::pack(bit_ref& bref) const { - static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12", "dBinf"}; - return convert_enum_idx(options, 6, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); -} -uint8_t sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_opts::to_number() const -{ - static const uint8_t options[] = {0, 3, 6, 9, 12}; - return map_enum_number(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_max_r13_e_"); -} - -std::string sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_string() const -{ - static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; - return convert_enum_idx(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_e_"); -} -uint8_t sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_opts::to_number() const -{ - static const uint8_t options[] = {0, 3, 6, 9, 12}; - return map_enum_number(options, 5, value, "sl_disc_cfg_relay_ue_r13_s::hyst_min_r13_e_"); -} - -// SL-DiscConfigRemoteUE-r13 ::= SEQUENCE -SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(thresh_high_r13_present, 1)); - HANDLE_CODE(bref.pack(hyst_max_r13_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(time_info_r11_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (thresh_high_r13_present) { - HANDLE_CODE(pack_integer(bref, thresh_high_r13, (uint8_t)0u, (uint8_t)49u)); + if (time_info_r11_present) { + HANDLE_CODE(bref.pack(time_info_r11.day_light_saving_time_r11_present, 1)); + HANDLE_CODE(bref.pack(time_info_r11.leap_seconds_r11_present, 1)); + HANDLE_CODE(bref.pack(time_info_r11.local_time_offset_r11_present, 1)); + HANDLE_CODE(pack_integer(bref, time_info_r11.time_info_utc_r11, (uint64_t)0u, (uint64_t)549755813887u)); + if (time_info_r11.day_light_saving_time_r11_present) { + HANDLE_CODE(time_info_r11.day_light_saving_time_r11.pack(bref)); + } + if (time_info_r11.leap_seconds_r11_present) { + HANDLE_CODE(pack_integer(bref, time_info_r11.leap_seconds_r11, (int16_t)-127, (int16_t)128)); + } + if (time_info_r11.local_time_offset_r11_present) { + HANDLE_CODE(pack_integer(bref, time_info_r11.local_time_offset_r11, (int8_t)-63, (int8_t)64)); + } } - if (hyst_max_r13_present) { - HANDLE_CODE(hyst_max_r13.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } - HANDLE_CODE(resel_info_ic_r13.pack(bref)); + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= time_ref_info_r15.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(time_ref_info_r15.is_present(), 1)); + if (time_ref_info_r15.is_present()) { + HANDLE_CODE(time_ref_info_r15->pack(bref)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sl_disc_cfg_remote_ue_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type16_r11_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(thresh_high_r13_present, 1)); - HANDLE_CODE(bref.unpack(hyst_max_r13_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(time_info_r11_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - if (thresh_high_r13_present) { - HANDLE_CODE(unpack_integer(thresh_high_r13, bref, (uint8_t)0u, (uint8_t)49u)); + if (time_info_r11_present) { + HANDLE_CODE(bref.unpack(time_info_r11.day_light_saving_time_r11_present, 1)); + HANDLE_CODE(bref.unpack(time_info_r11.leap_seconds_r11_present, 1)); + HANDLE_CODE(bref.unpack(time_info_r11.local_time_offset_r11_present, 1)); + HANDLE_CODE(unpack_integer(time_info_r11.time_info_utc_r11, bref, (uint64_t)0u, (uint64_t)549755813887u)); + if (time_info_r11.day_light_saving_time_r11_present) { + HANDLE_CODE(time_info_r11.day_light_saving_time_r11.unpack(bref)); + } + if (time_info_r11.leap_seconds_r11_present) { + HANDLE_CODE(unpack_integer(time_info_r11.leap_seconds_r11, bref, (int16_t)-127, (int16_t)128)); + } + if (time_info_r11.local_time_offset_r11_present) { + HANDLE_CODE(unpack_integer(time_info_r11.local_time_offset_r11, bref, (int8_t)-63, (int8_t)64)); + } } - if (hyst_max_r13_present) { - HANDLE_CODE(hyst_max_r13.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - HANDLE_CODE(resel_info_ic_r13.unpack(bref)); + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool time_ref_info_r15_present; + HANDLE_CODE(bref.unpack(time_ref_info_r15_present, 1)); + time_ref_info_r15.set_present(time_ref_info_r15_present); + if (time_ref_info_r15.is_present()) { + HANDLE_CODE(time_ref_info_r15->unpack(bref)); + } + } + } return SRSASN_SUCCESS; } -void sl_disc_cfg_remote_ue_r13_s::to_json(json_writer& j) const +void sib_type16_r11_s::to_json(json_writer& j) const { j.start_obj(); - if (thresh_high_r13_present) { - j.write_int("threshHigh-r13", thresh_high_r13); + if (time_info_r11_present) { + j.write_fieldname("timeInfo-r11"); + j.start_obj(); + j.write_int("timeInfoUTC-r11", time_info_r11.time_info_utc_r11); + if (time_info_r11.day_light_saving_time_r11_present) { + j.write_str("dayLightSavingTime-r11", time_info_r11.day_light_saving_time_r11.to_string()); + } + if (time_info_r11.leap_seconds_r11_present) { + j.write_int("leapSeconds-r11", time_info_r11.leap_seconds_r11); + } + if (time_info_r11.local_time_offset_r11_present) { + j.write_int("localTimeOffset-r11", time_info_r11.local_time_offset_r11); + } + j.end_obj(); } - if (hyst_max_r13_present) { - j.write_str("hystMax-r13", hyst_max_r13.to_string()); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (time_ref_info_r15.is_present()) { + j.write_fieldname("timeReferenceInfo-r15"); + time_ref_info_r15->to_json(j); + } } - j.write_fieldname("reselectionInfoIC-r13"); - resel_info_ic_r13.to_json(j); j.end_obj(); } -std::string sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_string() const -{ - static const char* options[] = {"dB0", "dB3", "dB6", "dB9", "dB12"}; - return convert_enum_idx(options, 5, value, "sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_e_"); -} -uint8_t sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_opts::to_number() const -{ - static const uint8_t options[] = {0, 3, 6, 9, 12}; - return map_enum_number(options, 5, value, "sl_disc_cfg_remote_ue_r13_s::hyst_max_r13_e_"); -} - -// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v9e0_ies_s::pack(bit_ref& bref) const +// SystemInformationBlockType17-r12 ::= SEQUENCE +SRSASN_CODE sib_type17_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(wlan_offload_info_per_plmn_list_r12_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (freq_band_ind_v9e0_present) { - HANDLE_CODE(pack_integer(bref, freq_band_ind_v9e0, (uint16_t)65u, (uint16_t)256u)); - } - if (multi_band_info_list_v9e0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); + if (wlan_offload_info_per_plmn_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, wlan_offload_info_per_plmn_list_r12, 1, 6)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_v9e0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type17_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(wlan_offload_info_per_plmn_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - if (freq_band_ind_v9e0_present) { - HANDLE_CODE(unpack_integer(freq_band_ind_v9e0, bref, (uint16_t)65u, (uint16_t)256u)); - } - if (multi_band_info_list_v9e0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); + if (wlan_offload_info_per_plmn_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(wlan_offload_info_per_plmn_list_r12, bref, 1, 6)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void sib_type1_v9e0_ies_s::to_json(json_writer& j) const +void sib_type17_r12_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_ind_v9e0_present) { - j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); - } - if (multi_band_info_list_v9e0_present) { - j.start_array("multiBandInfoList-v9e0"); - for (const auto& e1 : multi_band_info_list_v9e0) { + if (wlan_offload_info_per_plmn_list_r12_present) { + j.start_array("wlan-OffloadInfoPerPLMN-List-r12"); + for (const auto& e1 : wlan_offload_info_per_plmn_list_r12) { e1.to_json(j); } j.end_array(); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } j.end_obj(); } -// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE -SRSASN_CODE sib_type2_v8h0_ies_s::pack(bit_ref& bref) const +// SystemInformationBlockType18-r12 ::= SEQUENCE +SRSASN_CODE sib_type18_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(comm_cfg_r12_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (multi_band_info_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 32))); + if (comm_cfg_r12_present) { + HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); + HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); + HANDLE_CODE(bref.pack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); + HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_rx_pool_r12, 1, 16)); + if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_normal_common_r12, 1, 4)); + } + if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_exceptional_r12, 1, 4)); + } + if (comm_cfg_r12.comm_sync_cfg_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_sync_cfg_r12, 1, 16)); + } } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= comm_tx_pool_normal_common_ext_r13.is_present(); + group_flags[0] |= comm_tx_res_uc_req_allowed_r13_present; + group_flags[0] |= comm_tx_allow_relay_common_r13_present; + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(comm_tx_pool_normal_common_ext_r13.is_present(), 1)); + HANDLE_CODE(bref.pack(comm_tx_res_uc_req_allowed_r13_present, 1)); + HANDLE_CODE(bref.pack(comm_tx_allow_relay_common_r13_present, 1)); + if (comm_tx_pool_normal_common_ext_r13.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *comm_tx_pool_normal_common_ext_r13, 1, 4)); + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type2_v8h0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type18_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (multi_band_info_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 32))); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(comm_cfg_r12_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + + if (comm_cfg_r12_present) { + HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); + HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); + HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); + HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_rx_pool_r12, bref, 1, 16)); + if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_normal_common_r12, bref, 1, 4)); + } + if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_exceptional_r12, bref, 1, 4)); + } + if (comm_cfg_r12.comm_sync_cfg_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_sync_cfg_r12, bref, 1, 16)); + } } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool comm_tx_pool_normal_common_ext_r13_present; + HANDLE_CODE(bref.unpack(comm_tx_pool_normal_common_ext_r13_present, 1)); + comm_tx_pool_normal_common_ext_r13.set_present(comm_tx_pool_normal_common_ext_r13_present); + HANDLE_CODE(bref.unpack(comm_tx_res_uc_req_allowed_r13_present, 1)); + HANDLE_CODE(bref.unpack(comm_tx_allow_relay_common_r13_present, 1)); + if (comm_tx_pool_normal_common_ext_r13.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*comm_tx_pool_normal_common_ext_r13, bref, 1, 4)); + } + } + } return SRSASN_SUCCESS; } -void sib_type2_v8h0_ies_s::to_json(json_writer& j) const +void sib_type18_r12_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_band_info_list_present) { - j.start_array("multiBandInfoList"); - for (const auto& e1 : multi_band_info_list) { - j.write_int(e1); + if (comm_cfg_r12_present) { + j.write_fieldname("commConfig-r12"); + j.start_obj(); + j.start_array("commRxPool-r12"); + for (const auto& e1 : comm_cfg_r12.comm_rx_pool_r12) { + e1.to_json(j); } j.end_array(); + if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { + j.start_array("commTxPoolNormalCommon-r12"); + for (const auto& e1 : comm_cfg_r12.comm_tx_pool_normal_common_r12) { + e1.to_json(j); + } + j.end_array(); + } + if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { + j.start_array("commTxPoolExceptional-r12"); + for (const auto& e1 : comm_cfg_r12.comm_tx_pool_exceptional_r12) { + e1.to_json(j); + } + j.end_array(); + } + if (comm_cfg_r12.comm_sync_cfg_r12_present) { + j.start_array("commSyncConfig-r12"); + for (const auto& e1 : comm_cfg_r12.comm_sync_cfg_r12) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (comm_tx_pool_normal_common_ext_r13.is_present()) { + j.start_array("commTxPoolNormalCommonExt-r13"); + for (const auto& e1 : *comm_tx_pool_normal_common_ext_r13) { + e1.to_json(j); + } + j.end_array(); + } + if (comm_tx_res_uc_req_allowed_r13_present) { + j.write_str("commTxResourceUC-ReqAllowed-r13", "true"); + } + if (comm_tx_allow_relay_common_r13_present) { + j.write_str("commTxAllowRelayCommon-r13", "true"); + } } j.end_obj(); } -// SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE -SRSASN_CODE sib_type3_v10j0_ies_s::pack(bit_ref& bref) const +// SystemInformationBlockType19-r12 ::= SEQUENCE +SRSASN_CODE sib_type19_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(disc_cfg_r12_present, 1)); + HANDLE_CODE(bref.pack(disc_inter_freq_list_r12_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (freq_band_info_r10_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); + if (disc_cfg_r12_present) { + HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); + HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); + HANDLE_CODE(bref.pack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_rx_pool_r12, 1, 16)); + if (disc_cfg_r12.disc_tx_pool_common_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_tx_pool_common_r12, 1, 4)); + } + if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { + HANDLE_CODE( + pack_fixed_seq_of(bref, &(disc_cfg_r12.disc_tx_pwr_info_r12)[0], disc_cfg_r12.disc_tx_pwr_info_r12.size())); + } + if (disc_cfg_r12.disc_sync_cfg_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_sync_cfg_r12, 1, 16)); + } } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); + if (disc_inter_freq_list_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_inter_freq_list_r12, 1, 8)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= disc_cfg_v1310.is_present(); + group_flags[0] |= disc_cfg_relay_r13.is_present(); + group_flags[0] |= disc_cfg_ps_minus13.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(disc_cfg_v1310.is_present(), 1)); + HANDLE_CODE(bref.pack(disc_cfg_relay_r13.is_present(), 1)); + HANDLE_CODE(bref.pack(disc_cfg_ps_minus13.is_present(), 1)); + if (disc_cfg_v1310.is_present()) { + HANDLE_CODE(bref.pack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); + HANDLE_CODE(bref.pack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); + if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_v1310->disc_inter_freq_list_v1310, 1, 8)); + } + } + if (disc_cfg_relay_r13.is_present()) { + HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.pack(bref)); + HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.pack(bref)); + } + if (disc_cfg_ps_minus13.is_present()) { + HANDLE_CODE(bref.pack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_rx_pool_ps_r13, 1, 16)); + if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, 1, 4)); + } + } + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type3_v10j0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type19_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); - HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(disc_cfg_r12_present, 1)); + HANDLE_CODE(bref.unpack(disc_inter_freq_list_r12_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - if (freq_band_info_r10_present) { - HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); + if (disc_cfg_r12_present) { + HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); + HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); + HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_rx_pool_r12, bref, 1, 16)); + if (disc_cfg_r12.disc_tx_pool_common_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_tx_pool_common_r12, bref, 1, 4)); + } + if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { + HANDLE_CODE( + unpack_fixed_seq_of(&(disc_cfg_r12.disc_tx_pwr_info_r12)[0], bref, disc_cfg_r12.disc_tx_pwr_info_r12.size())); + } + if (disc_cfg_r12.disc_sync_cfg_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_sync_cfg_r12, bref, 1, 16)); + } } - if (multi_band_info_list_v10j0_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); + if (disc_inter_freq_list_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_inter_freq_list_r12, bref, 1, 8)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } + if (ext) { + ext_groups_unpacker_guard group_flags(1); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool disc_cfg_v1310_present; + HANDLE_CODE(bref.unpack(disc_cfg_v1310_present, 1)); + disc_cfg_v1310.set_present(disc_cfg_v1310_present); + bool disc_cfg_relay_r13_present; + HANDLE_CODE(bref.unpack(disc_cfg_relay_r13_present, 1)); + disc_cfg_relay_r13.set_present(disc_cfg_relay_r13_present); + bool disc_cfg_ps_minus13_present; + HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13_present, 1)); + disc_cfg_ps_minus13.set_present(disc_cfg_ps_minus13_present); + if (disc_cfg_v1310.is_present()) { + HANDLE_CODE(bref.unpack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); + HANDLE_CODE(bref.unpack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); + if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_v1310->disc_inter_freq_list_v1310, bref, 1, 8)); + } + } + if (disc_cfg_relay_r13.is_present()) { + HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.unpack(bref)); + HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.unpack(bref)); + } + if (disc_cfg_ps_minus13.is_present()) { + HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_rx_pool_ps_r13, bref, 1, 16)); + if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { + HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, bref, 1, 4)); + } + } + } + } return SRSASN_SUCCESS; } -void sib_type3_v10j0_ies_s::to_json(json_writer& j) const +void sib_type19_r12_s::to_json(json_writer& j) const { j.start_obj(); - if (freq_band_info_r10_present) { - j.start_array("freqBandInfo-r10"); - for (const auto& e1 : freq_band_info_r10) { + if (disc_cfg_r12_present) { + j.write_fieldname("discConfig-r12"); + j.start_obj(); + j.start_array("discRxPool-r12"); + for (const auto& e1 : disc_cfg_r12.disc_rx_pool_r12) { e1.to_json(j); } j.end_array(); - } - if (multi_band_info_list_v10j0_present) { - j.start_array("multiBandInfoList-v10j0"); - for (const auto& e1 : multi_band_info_list_v10j0) { - j.start_array(); - for (const auto& e2 : e1) { - e2.to_json(j); + if (disc_cfg_r12.disc_tx_pool_common_r12_present) { + j.start_array("discTxPoolCommon-r12"); + for (const auto& e1 : disc_cfg_r12.disc_tx_pool_common_r12) { + e1.to_json(j); } j.end_array(); } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE -SRSASN_CODE sib_type5_v8h0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v8h0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v8h0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v8h0, 1, 8)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type5_v8h0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v8h0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (inter_freq_carrier_freq_list_v8h0_present) { - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v8h0, bref, 1, 8)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { + j.start_array("discTxPowerInfo-r12"); + for (const auto& e1 : disc_cfg_r12.disc_tx_pwr_info_r12) { + e1.to_json(j); + } + j.end_array(); + } + if (disc_cfg_r12.disc_sync_cfg_r12_present) { + j.start_array("discSyncConfig-r12"); + for (const auto& e1 : disc_cfg_r12.disc_sync_cfg_r12) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); } - - return SRSASN_SUCCESS; -} -void sib_type5_v8h0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (inter_freq_carrier_freq_list_v8h0_present) { - j.start_array("interFreqCarrierFreqList-v8h0"); - for (const auto& e1 : inter_freq_carrier_freq_list_v8h0) { + if (disc_inter_freq_list_r12_present) { + j.start_array("discInterFreqList-r12"); + for (const auto& e1 : disc_inter_freq_list_r12) { e1.to_json(j); } j.end_array(); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE -SRSASN_CODE sib_type6_v8h0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v8h0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (carrier_freq_list_utra_fdd_v8h0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd_v8h0, 1, 16)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type6_v8h0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v8h0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (carrier_freq_list_utra_fdd_v8h0_present) { - HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd_v8h0, bref, 1, 16)); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - - return SRSASN_SUCCESS; -} -void sib_type6_v8h0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (carrier_freq_list_utra_fdd_v8h0_present) { - j.start_array("carrierFreqListUTRA-FDD-v8h0"); - for (const auto& e1 : carrier_freq_list_utra_fdd_v8h0) { - e1.to_json(j); + if (ext) { + if (disc_cfg_v1310.is_present()) { + j.write_fieldname("discConfig-v1310"); + j.start_obj(); + if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { + j.start_array("discInterFreqList-v1310"); + for (const auto& e1 : disc_cfg_v1310->disc_inter_freq_list_v1310) { + e1.to_json(j); + } + j.end_array(); + } + if (disc_cfg_v1310->gap_requests_allowed_common_present) { + j.write_str("gapRequestsAllowedCommon", "true"); + } + j.end_obj(); + } + if (disc_cfg_relay_r13.is_present()) { + j.write_fieldname("discConfigRelay-r13"); + j.start_obj(); + j.write_fieldname("relayUE-Config-r13"); + disc_cfg_relay_r13->relay_ue_cfg_r13.to_json(j); + j.write_fieldname("remoteUE-Config-r13"); + disc_cfg_relay_r13->remote_ue_cfg_r13.to_json(j); + j.end_obj(); + } + if (disc_cfg_ps_minus13.is_present()) { + j.write_fieldname("discConfigPS-13"); + j.start_obj(); + j.start_array("discRxPoolPS-r13"); + for (const auto& e1 : disc_cfg_ps_minus13->disc_rx_pool_ps_r13) { + e1.to_json(j); + } + j.end_array(); + if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { + j.start_array("discTxPoolPS-Common-r13"); + for (const auto& e1 : disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); } j.end_obj(); } -// UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED -std::string uac_ac1_select_assist_info_r15_opts::to_string() const -{ - static const char* options[] = {"a", "b", "c"}; - return convert_enum_idx(options, 3, value, "uac_ac1_select_assist_info_r15_e"); -} - -// SystemInformation-v8a0-IEs ::= SEQUENCE -SRSASN_CODE sys_info_v8a0_ies_s::pack(bit_ref& bref) const +// SystemInformationBlockType20-r13 ::= SEQUENCE +SRSASN_CODE sib_type20_r13_s::pack(bit_ref& bref) const { + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(sc_mcch_dur_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(sc_mcch_repeat_period_r13.pack(bref)); + HANDLE_CODE(pack_integer(bref, sc_mcch_offset_r13, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(pack_integer(bref, sc_mcch_first_sf_r13, (uint8_t)0u, (uint8_t)9u)); + if (sc_mcch_dur_r13_present) { + HANDLE_CODE(pack_integer(bref, sc_mcch_dur_r13, (uint8_t)2u, (uint8_t)9u)); + } + HANDLE_CODE(sc_mcch_mod_period_r13.pack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } - return SRSASN_SUCCESS; -} -SRSASN_CODE sys_info_v8a0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= br_bcch_cfg_r14.is_present(); + group_flags[0] |= sc_mcch_sched_info_r14.is_present(); + group_flags[0] |= pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present; + group_flags[0] |= pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present; + group_flags[1] |= sc_mcch_repeat_period_v1470_present; + group_flags[1] |= sc_mcch_mod_period_v1470_present; + group_flags.pack(bref); - return SRSASN_SUCCESS; -} -void sys_info_v8a0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); -// SystemInformationBlockPos-r15 ::= SEQUENCE -SRSASN_CODE sib_pos_r15_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(br_bcch_cfg_r14.is_present(), 1)); + HANDLE_CODE(bref.pack(sc_mcch_sched_info_r14.is_present(), 1)); + HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); + HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); + if (br_bcch_cfg_r14.is_present()) { + HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, (uint8_t)1u, (uint8_t)16u)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.pack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.pack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.pack(bref)); + HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->sc_mcch_offset_br_r14, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.pack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.pack(bref)); + } + if (sc_mcch_sched_info_r14.is_present()) { + HANDLE_CODE(sc_mcch_sched_info_r14->pack(bref)); + } + if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { + HANDLE_CODE(pdsch_max_num_repeat_cemode_a_sc_mtch_r14.pack(bref)); + } + if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { + HANDLE_CODE(pdsch_max_num_repeat_cemode_b_sc_mtch_r14.pack(bref)); + } + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(assist_data_sib_elem_r15.pack(bref)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + HANDLE_CODE(bref.pack(sc_mcch_repeat_period_v1470_present, 1)); + HANDLE_CODE(bref.pack(sc_mcch_mod_period_v1470_present, 1)); + } } - return SRSASN_SUCCESS; } -SRSASN_CODE sib_pos_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type20_r13_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(sc_mcch_dur_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(assist_data_sib_elem_r15.unpack(bref)); + HANDLE_CODE(sc_mcch_repeat_period_r13.unpack(bref)); + HANDLE_CODE(unpack_integer(sc_mcch_offset_r13, bref, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(unpack_integer(sc_mcch_first_sf_r13, bref, (uint8_t)0u, (uint8_t)9u)); + if (sc_mcch_dur_r13_present) { + HANDLE_CODE(unpack_integer(sc_mcch_dur_r13, bref, (uint8_t)2u, (uint8_t)9u)); + } + HANDLE_CODE(sc_mcch_mod_period_r13.unpack(bref)); if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - return SRSASN_SUCCESS; -} -void sib_pos_r15_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("assistanceDataSIB-Element-r15", assist_data_sib_elem_r15.to_string()); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - j.end_obj(); -} - -// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE -SRSASN_CODE sib_type1_v8h0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + if (ext) { + ext_groups_unpacker_guard group_flags(2); + group_flags.unpack(bref); - if (multi_band_info_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 64))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type1_v8h0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + bool br_bcch_cfg_r14_present; + HANDLE_CODE(bref.unpack(br_bcch_cfg_r14_present, 1)); + br_bcch_cfg_r14.set_present(br_bcch_cfg_r14_present); + bool sc_mcch_sched_info_r14_present; + HANDLE_CODE(bref.unpack(sc_mcch_sched_info_r14_present, 1)); + sc_mcch_sched_info_r14.set_present(sc_mcch_sched_info_r14_present); + HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); + HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); + if (br_bcch_cfg_r14.is_present()) { + HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, bref, (uint8_t)1u, (uint8_t)16u)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.unpack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.unpack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.unpack(bref)); + HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, bref, (uint32_t)0u, (uint32_t)262143u)); + HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->sc_mcch_offset_br_r14, bref, (uint8_t)0u, (uint8_t)10u)); + HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.unpack(bref)); + HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.unpack(bref)); + } + if (sc_mcch_sched_info_r14.is_present()) { + HANDLE_CODE(sc_mcch_sched_info_r14->unpack(bref)); + } + if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { + HANDLE_CODE(pdsch_max_num_repeat_cemode_a_sc_mtch_r14.unpack(bref)); + } + if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { + HANDLE_CODE(pdsch_max_num_repeat_cemode_b_sc_mtch_r14.unpack(bref)); + } + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (multi_band_info_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 64))); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + HANDLE_CODE(bref.unpack(sc_mcch_repeat_period_v1470_present, 1)); + HANDLE_CODE(bref.unpack(sc_mcch_mod_period_v1470_present, 1)); + } } - return SRSASN_SUCCESS; } -void sib_type1_v8h0_ies_s::to_json(json_writer& j) const +void sib_type20_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_band_info_list_present) { - j.start_array("multiBandInfoList"); - for (const auto& e1 : multi_band_info_list) { - j.write_int(e1); - } - j.end_array(); + j.write_str("sc-mcch-RepetitionPeriod-r13", sc_mcch_repeat_period_r13.to_string()); + j.write_int("sc-mcch-Offset-r13", sc_mcch_offset_r13); + j.write_int("sc-mcch-FirstSubframe-r13", sc_mcch_first_sf_r13); + if (sc_mcch_dur_r13_present) { + j.write_int("sc-mcch-duration-r13", sc_mcch_dur_r13); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + j.write_str("sc-mcch-ModificationPeriod-r13", sc_mcch_mod_period_r13.to_string()); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (ext) { + if (br_bcch_cfg_r14.is_present()) { + j.write_fieldname("br-BCCH-Config-r14"); + j.start_obj(); + j.write_str("dummy", "rf1"); + j.write_str("dummy2", "rf1"); + j.write_int("mpdcch-Narrowband-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14); + j.write_str("mpdcch-NumRepetition-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.to_string()); + j.write_fieldname("mpdcch-StartSF-SC-MCCH-r14"); + br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.to_json(j); + j.write_str("mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14", + br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.to_string()); + j.write_int("sc-mcch-CarrierFreq-r14", br_bcch_cfg_r14->sc_mcch_carrier_freq_r14); + j.write_int("sc-mcch-Offset-BR-r14", br_bcch_cfg_r14->sc_mcch_offset_br_r14); + j.write_str("sc-mcch-RepetitionPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.to_string()); + j.write_str("sc-mcch-ModificationPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.to_string()); + j.end_obj(); + } + if (sc_mcch_sched_info_r14.is_present()) { + j.write_fieldname("sc-mcch-SchedulingInfo-r14"); + sc_mcch_sched_info_r14->to_json(j); + } + if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { + j.write_str("pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14", pdsch_max_num_repeat_cemode_a_sc_mtch_r14.to_string()); + } + if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { + j.write_str("pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14", pdsch_max_num_repeat_cemode_b_sc_mtch_r14.to_string()); + } + if (sc_mcch_repeat_period_v1470_present) { + j.write_str("sc-mcch-RepetitionPeriod-v1470", "rf1"); + } + if (sc_mcch_mod_period_v1470_present) { + j.write_str("sc-mcch-ModificationPeriod-v1470", "rf1"); + } } j.end_obj(); } -// SystemInformationBlockType10 ::= SEQUENCE -SRSASN_CODE sib_type10_s::pack(bit_ref& bref) const +std::string sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(dummy_present, 1)); - - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - HANDLE_CODE(warning_type.pack(bref)); - if (dummy_present) { - HANDLE_CODE(dummy.pack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - } - return SRSASN_SUCCESS; + static const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256"}; + return convert_enum_idx(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); } -SRSASN_CODE sib_type10_s::unpack(cbit_ref& bref) +uint16_t sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_number() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(dummy_present, 1)); - - HANDLE_CODE(msg_id.unpack(bref)); - HANDLE_CODE(serial_num.unpack(bref)); - HANDLE_CODE(warning_type.unpack(bref)); - if (dummy_present) { - HANDLE_CODE(dummy.unpack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + static const uint16_t options[] = {2, 4, 8, 16, 32, 64, 128, 256}; + return map_enum_number(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); +} - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - } - return SRSASN_SUCCESS; +std::string sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_string() const +{ + static const char* options[] = {"rf2", + "rf4", + "rf8", + "rf16", + "rf32", + "rf64", + "rf128", + "rf256", + "rf512", + "rf1024", + "r2048", + "rf4096", + "rf8192", + "rf16384", + "rf32768", + "rf65536"}; + return convert_enum_idx(options, 16, value, "sib_type20_r13_s::sc_mcch_mod_period_r13_e_"); } -void sib_type10_s::to_json(json_writer& j) const +uint32_t sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_number() const { - j.start_obj(); - j.write_str("messageIdentifier", msg_id.to_string()); - j.write_str("serialNumber", serial_num.to_string()); - j.write_str("warningType", warning_type.to_string()); - if (dummy_present) { - j.write_str("dummy", dummy.to_string()); - } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - } - j.end_obj(); + static const uint32_t options[] = {2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536}; + return map_enum_number(options, 16, value, "sib_type20_r13_s::sc_mcch_mod_period_r13_e_"); } -// SystemInformationBlockType11 ::= SEQUENCE -SRSASN_CODE sib_type11_s::pack(bit_ref& bref) const +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(data_coding_scheme_present, 1)); - - HANDLE_CODE(msg_id.pack(bref)); - HANDLE_CODE(serial_num.pack(bref)); - HANDLE_CODE(warning_msg_segment_type.pack(bref)); - HANDLE_CODE(pack_integer(bref, warning_msg_segment_num, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(warning_msg_segment.pack(bref)); - if (data_coding_scheme_present) { - HANDLE_CODE(data_coding_scheme.pack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - } - return SRSASN_SUCCESS; + static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; + return convert_enum_idx(options, 9, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_e_"); } -SRSASN_CODE sib_type11_s::unpack(cbit_ref& bref) +uint16_t sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_number() const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(data_coding_scheme_present, 1)); - - HANDLE_CODE(msg_id.unpack(bref)); - HANDLE_CODE(serial_num.unpack(bref)); - HANDLE_CODE(warning_msg_segment_type.unpack(bref)); - HANDLE_CODE(unpack_integer(warning_msg_segment_num, bref, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(warning_msg_segment.unpack(bref)); - if (data_coding_scheme_present) { - HANDLE_CODE(data_coding_scheme.unpack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - } - return SRSASN_SUCCESS; + static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256}; + return map_enum_number(options, 9, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_e_"); } -void sib_type11_s::to_json(json_writer& j) const + +void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::destroy_() {} +void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::set(types::options e) { - j.start_obj(); - j.write_str("messageIdentifier", msg_id.to_string()); - j.write_str("serialNumber", serial_num.to_string()); - j.write_str("warningMessageSegmentType", warning_msg_segment_type.to_string()); - j.write_int("warningMessageSegmentNumber", warning_msg_segment_num); - j.write_str("warningMessageSegment", warning_msg_segment.to_string()); - if (data_coding_scheme_present) { - j.write_str("dataCodingScheme", data_coding_scheme.to_string()); + destroy_(); + type_ = e; +} +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::mpdcch_start_sf_sc_mcch_r14_c_( + const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) +{ + type_ = other.type(); + switch (type_) { + case types::fdd_r14: + c.init(other.c.get()); + break; + case types::tdd_r14: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } +} +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& +sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::operator=( + const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::fdd_r14: + c.set(other.c.get()); + break; + case types::tdd_r14: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); + } + + return *this; +} +void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::fdd_r14: + j.write_str("fdd-r14", c.get().to_string()); + break; + case types::tdd_r14: + j.write_str("tdd-r14", c.get().to_string()); + break; + default: + log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); } j.end_obj(); } +SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::fdd_r14: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::tdd_r14: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::fdd_r14: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::tdd_r14: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} -std::string sib_type11_s::warning_msg_segment_type_opts::to_string() const +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_string() const { - static const char* options[] = {"notLastSegment", "lastSegment"}; - return convert_enum_idx(options, 2, value, "sib_type11_s::warning_msg_segment_type_e_"); + static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; + return convert_enum_idx( + options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); +} +float sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number() const +{ + static const float options[] = {1.0, 1.5, 2.0, 2.5, 4.0, 5.0, 8.0, 10.0}; + return map_enum_number( + options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); +} +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number_string() const +{ + static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; + return convert_enum_idx( + options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); } -// SystemInformationBlockType12-r9 ::= SEQUENCE -SRSASN_CODE sib_type12_r9_s::pack(bit_ref& bref) const +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_string() const +{ + static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20"}; + return convert_enum_idx( + options, 7, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_"); +} +uint8_t sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_number() const +{ + static const uint8_t options[] = {1, 2, 4, 5, 8, 10, 20}; + return map_enum_number( + options, 7, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_"); +} + +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts::to_string() const +{ + static const char* options[] = {"off", "ce-ModeA", "ce-ModeB"}; + return convert_enum_idx( + options, 3, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_"); +} + +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_string() const +{ + static const char* options[] = {"rf32", "rf128", "rf512", "rf1024", "rf2048", "rf4096", "rf8192", "rf16384"}; + return convert_enum_idx(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); +} +uint16_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_number() const +{ + static const uint16_t options[] = {32, 128, 512, 1024, 2048, 4096, 8192, 16384}; + return map_enum_number(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); +} + +std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_string() const +{ + static const char* options[] = {"rf32", + "rf128", + "rf256", + "rf512", + "rf1024", + "rf2048", + "rf4096", + "rf8192", + "rf16384", + "rf32768", + "rf65536", + "rf131072", + "rf262144", + "rf524288", + "rf1048576"}; + return convert_enum_idx(options, 15, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_e_"); +} +uint32_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_number() const +{ + static const uint32_t options[] = { + 32, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576}; + return map_enum_number(options, 15, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_e_"); +} + +std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = {"r16", "r32"}; + return convert_enum_idx(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); +} +uint8_t sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_number() const +{ + static const uint8_t options[] = {16, 32}; + return map_enum_number(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); +} + +std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = {"r192", "r256", "r384", "r512", "r768", "r1024", "r1536", "r2048"}; + return convert_enum_idx(options, 8, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_"); +} +uint16_t sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_number() const +{ + static const uint16_t options[] = {192, 256, 384, 512, 768, 1024, 1536, 2048}; + return map_enum_number(options, 8, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_"); +} + +// SystemInformationBlockType21-r14 ::= SEQUENCE +SRSASN_CODE sib_type21_r14_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(data_coding_scheme_r9_present, 1)); + HANDLE_CODE(bref.pack(sl_v2x_cfg_common_r14_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(msg_id_r9.pack(bref)); - HANDLE_CODE(serial_num_r9.pack(bref)); - HANDLE_CODE(warning_msg_segment_type_r9.pack(bref)); - HANDLE_CODE(pack_integer(bref, warning_msg_segment_num_r9, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(warning_msg_segment_r9.pack(bref)); - if (data_coding_scheme_r9_present) { - HANDLE_CODE(data_coding_scheme_r9.pack(bref)); + if (sl_v2x_cfg_common_r14_present) { + HANDLE_CODE(sl_v2x_cfg_common_r14.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= warning_area_coordinates_segment_r15_present; - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(warning_area_coordinates_segment_r15_present, 1)); - if (warning_area_coordinates_segment_r15_present) { - HANDLE_CODE(warning_area_coordinates_segment_r15.pack(bref)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type12_r9_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type21_r14_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(data_coding_scheme_r9_present, 1)); + HANDLE_CODE(bref.unpack(sl_v2x_cfg_common_r14_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(msg_id_r9.unpack(bref)); - HANDLE_CODE(serial_num_r9.unpack(bref)); - HANDLE_CODE(warning_msg_segment_type_r9.unpack(bref)); - HANDLE_CODE(unpack_integer(warning_msg_segment_num_r9, bref, (uint8_t)0u, (uint8_t)63u)); - HANDLE_CODE(warning_msg_segment_r9.unpack(bref)); - if (data_coding_scheme_r9_present) { - HANDLE_CODE(data_coding_scheme_r9.unpack(bref)); + if (sl_v2x_cfg_common_r14_present) { + HANDLE_CODE(sl_v2x_cfg_common_r14.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(warning_area_coordinates_segment_r15_present, 1)); - if (warning_area_coordinates_segment_r15_present) { - HANDLE_CODE(warning_area_coordinates_segment_r15.unpack(bref)); - } - } - } return SRSASN_SUCCESS; } -void sib_type12_r9_s::to_json(json_writer& j) const +void sib_type21_r14_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("messageIdentifier-r9", msg_id_r9.to_string()); - j.write_str("serialNumber-r9", serial_num_r9.to_string()); - j.write_str("warningMessageSegmentType-r9", warning_msg_segment_type_r9.to_string()); - j.write_int("warningMessageSegmentNumber-r9", warning_msg_segment_num_r9); - j.write_str("warningMessageSegment-r9", warning_msg_segment_r9.to_string()); - if (data_coding_scheme_r9_present) { - j.write_str("dataCodingScheme-r9", data_coding_scheme_r9.to_string()); + if (sl_v2x_cfg_common_r14_present) { + j.write_fieldname("sl-V2X-ConfigCommon-r14"); + sl_v2x_cfg_common_r14.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (ext) { - if (warning_area_coordinates_segment_r15_present) { - j.write_str("warningAreaCoordinatesSegment-r15", warning_area_coordinates_segment_r15.to_string()); - } - } j.end_obj(); } -std::string sib_type12_r9_s::warning_msg_segment_type_r9_opts::to_string() const -{ - static const char* options[] = {"notLastSegment", "lastSegment"}; - return convert_enum_idx(options, 2, value, "sib_type12_r9_s::warning_msg_segment_type_r9_e_"); -} - -// SystemInformationBlockType13-r9 ::= SEQUENCE -SRSASN_CODE sib_type13_r9_s::pack(bit_ref& bref) const +// SystemInformationBlockType24-r15 ::= SEQUENCE +SRSASN_CODE sib_type24_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); + HANDLE_CODE(bref.pack(carrier_freq_list_nr_r15_present, 1)); + HANDLE_CODE(bref.pack(t_resel_nr_sf_r15_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, mbsfn_area_info_list_r9, 1, 8)); - HANDLE_CODE(notif_cfg_r9.pack(bref)); + if (carrier_freq_list_nr_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_nr_r15, 1, 8)); + } + HANDLE_CODE(pack_integer(bref, t_resel_nr_r15, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_nr_sf_r15_present) { + HANDLE_CODE(t_resel_nr_sf_r15.pack(bref)); + } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= notif_cfg_v1430.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(notif_cfg_v1430.is_present(), 1)); - if (notif_cfg_v1430.is_present()) { - HANDLE_CODE(notif_cfg_v1430->pack(bref)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type13_r9_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type24_r15_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(carrier_freq_list_nr_r15_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_nr_sf_r15_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(mbsfn_area_info_list_r9, bref, 1, 8)); - HANDLE_CODE(notif_cfg_r9.unpack(bref)); + if (carrier_freq_list_nr_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_nr_r15, bref, 1, 8)); + } + HANDLE_CODE(unpack_integer(t_resel_nr_r15, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_nr_sf_r15_present) { + HANDLE_CODE(t_resel_nr_sf_r15.unpack(bref)); + } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool notif_cfg_v1430_present; - HANDLE_CODE(bref.unpack(notif_cfg_v1430_present, 1)); - notif_cfg_v1430.set_present(notif_cfg_v1430_present); - if (notif_cfg_v1430.is_present()) { - HANDLE_CODE(notif_cfg_v1430->unpack(bref)); - } - } - } return SRSASN_SUCCESS; } -void sib_type13_r9_s::to_json(json_writer& j) const +void sib_type24_r15_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("mbsfn-AreaInfoList-r9"); - for (const auto& e1 : mbsfn_area_info_list_r9) { - e1.to_json(j); + if (carrier_freq_list_nr_r15_present) { + j.start_array("carrierFreqListNR-r15"); + for (const auto& e1 : carrier_freq_list_nr_r15) { + e1.to_json(j); + } + j.end_array(); + } + j.write_int("t-ReselectionNR-r15", t_resel_nr_r15); + if (t_resel_nr_sf_r15_present) { + j.write_fieldname("t-ReselectionNR-SF-r15"); + t_resel_nr_sf_r15.to_json(j); } - j.end_array(); - j.write_fieldname("notificationConfig-r9"); - notif_cfg_r9.to_json(j); if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (ext) { - if (notif_cfg_v1430.is_present()) { - j.write_fieldname("notificationConfig-v1430"); - notif_cfg_v1430->to_json(j); - } - } j.end_obj(); } -// SystemInformationBlockType14-r11 ::= SEQUENCE -SRSASN_CODE sib_type14_r11_s::pack(bit_ref& bref) const +// SystemInformationBlockType25-r15 ::= SEQUENCE +SRSASN_CODE sib_type25_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(eab_param_r11_present, 1)); + HANDLE_CODE(bref.pack(uac_barr_for_common_r15_present, 1)); + HANDLE_CODE(bref.pack(uac_barr_per_plmn_list_r15_present, 1)); + HANDLE_CODE(bref.pack(uac_ac1_select_assist_info_r15_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - if (eab_param_r11_present) { - HANDLE_CODE(eab_param_r11.pack(bref)); + if (uac_barr_for_common_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_for_common_r15, 1, 63)); + } + if (uac_barr_per_plmn_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_per_plmn_list_r15, 1, 6)); + } + HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info_set_list_r15, 1, 8)); + if (uac_ac1_select_assist_info_r15_present) { + HANDLE_CODE(uac_ac1_select_assist_info_r15.pack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= eab_per_rsrp_r15_present; - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(eab_per_rsrp_r15_present, 1)); - if (eab_per_rsrp_r15_present) { - HANDLE_CODE(eab_per_rsrp_r15.pack(bref)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type14_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type25_r15_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(eab_param_r11_present, 1)); + HANDLE_CODE(bref.unpack(uac_barr_for_common_r15_present, 1)); + HANDLE_CODE(bref.unpack(uac_barr_per_plmn_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(uac_ac1_select_assist_info_r15_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - if (eab_param_r11_present) { - HANDLE_CODE(eab_param_r11.unpack(bref)); + if (uac_barr_for_common_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(uac_barr_for_common_r15, bref, 1, 63)); + } + if (uac_barr_per_plmn_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(uac_barr_per_plmn_list_r15, bref, 1, 6)); + } + HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info_set_list_r15, bref, 1, 8)); + if (uac_ac1_select_assist_info_r15_present) { + HANDLE_CODE(uac_ac1_select_assist_info_r15.unpack(bref)); } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(eab_per_rsrp_r15_present, 1)); - if (eab_per_rsrp_r15_present) { - HANDLE_CODE(eab_per_rsrp_r15.unpack(bref)); - } - } - } return SRSASN_SUCCESS; } -void sib_type14_r11_s::to_json(json_writer& j) const +void sib_type25_r15_s::to_json(json_writer& j) const { j.start_obj(); - if (eab_param_r11_present) { - j.write_fieldname("eab-Param-r11"); - eab_param_r11.to_json(j); + if (uac_barr_for_common_r15_present) { + j.start_array("uac-BarringForCommon-r15"); + for (const auto& e1 : uac_barr_for_common_r15) { + e1.to_json(j); + } + j.end_array(); + } + if (uac_barr_per_plmn_list_r15_present) { + j.start_array("uac-BarringPerPLMN-List-r15"); + for (const auto& e1 : uac_barr_per_plmn_list_r15) { + e1.to_json(j); + } + j.end_array(); + } + j.start_array("uac-BarringInfoSetList-r15"); + for (const auto& e1 : uac_barr_info_set_list_r15) { + e1.to_json(j); + } + j.end_array(); + if (uac_ac1_select_assist_info_r15_present) { + j.write_fieldname("uac-AC1-SelectAssistInfo-r15"); + uac_ac1_select_assist_info_r15.to_json(j); } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (ext) { - if (eab_per_rsrp_r15_present) { - j.write_str("eab-PerRSRP-r15", eab_per_rsrp_r15.to_string()); - } - } j.end_obj(); } -void sib_type14_r11_s::eab_param_r11_c_::destroy_() +void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::destroy_() { switch (type_) { - case types::eab_common_r11: - c.destroy(); - break; - case types::eab_per_plmn_list_r11: - c.destroy(); + case types::individual_plmn_list_r15: + c.destroy(); break; default: break; } } -void sib_type14_r11_s::eab_param_r11_c_::set(types::options e) +void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::eab_common_r11: - c.init(); + case types::plmn_common_r15: break; - case types::eab_per_plmn_list_r11: - c.init(); + case types::individual_plmn_list_r15: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } } -sib_type14_r11_s::eab_param_r11_c_::eab_param_r11_c_(const sib_type14_r11_s::eab_param_r11_c_& other) +sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::uac_ac1_select_assist_info_r15_c_( + const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) { type_ = other.type(); switch (type_) { - case types::eab_common_r11: - c.init(other.c.get()); + case types::plmn_common_r15: + c.init(other.c.get()); break; - case types::eab_per_plmn_list_r11: - c.init(other.c.get()); + case types::individual_plmn_list_r15: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } } -sib_type14_r11_s::eab_param_r11_c_& -sib_type14_r11_s::eab_param_r11_c_::operator=(const sib_type14_r11_s::eab_param_r11_c_& other) +sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::operator=( + const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::eab_common_r11: - c.set(other.c.get()); + case types::plmn_common_r15: + c.set(other.c.get()); break; - case types::eab_per_plmn_list_r11: - c.set(other.c.get()); + case types::individual_plmn_list_r15: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } return *this; } -void sib_type14_r11_s::eab_param_r11_c_::to_json(json_writer& j) const +void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::eab_common_r11: - j.write_fieldname("eab-Common-r11"); - c.get().to_json(j); + case types::plmn_common_r15: + j.write_str("plmnCommon-r15", c.get().to_string()); break; - case types::eab_per_plmn_list_r11: - j.start_array("eab-PerPLMN-List-r11"); - for (const auto& e1 : c.get()) { - e1.to_json(j); - } - j.end_array(); + case types::individual_plmn_list_r15: + j.start_array("individualPLMNList-r15"); + for (const auto& e1 : c.get()) { + j.write_str(e1.to_string()); + } + j.end_array(); break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); } j.end_obj(); } -SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::pack(bit_ref& bref) const +SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::eab_common_r11: - HANDLE_CODE(c.get().pack(bref)); + case types::plmn_common_r15: + HANDLE_CODE(c.get().pack(bref)); break; - case types::eab_per_plmn_list_r11: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 1, 6)); + case types::individual_plmn_list_r15: + HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 2, 6)); break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type14_r11_s::eab_param_r11_c_::unpack(cbit_ref& bref) +SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::eab_common_r11: - HANDLE_CODE(c.get().unpack(bref)); + case types::plmn_common_r15: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::eab_per_plmn_list_r11: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 1, 6)); + case types::individual_plmn_list_r15: + HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 2, 6)); break; default: - log_invalid_choice_id(type_, "sib_type14_r11_s::eab_param_r11_c_"); + log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string sib_type14_r11_s::eab_per_rsrp_r15_opts::to_string() const -{ - static const char* options[] = {"thresh0", "thresh1", "thresh2", "thresh3"}; - return convert_enum_idx(options, 4, value, "sib_type14_r11_s::eab_per_rsrp_r15_e_"); -} -uint8_t sib_type14_r11_s::eab_per_rsrp_r15_opts::to_number() const -{ - static const uint8_t options[] = {0, 1, 2, 3}; - return map_enum_number(options, 4, value, "sib_type14_r11_s::eab_per_rsrp_r15_e_"); -} - -// SystemInformationBlockType15-r11 ::= SEQUENCE -SRSASN_CODE sib_type15_r11_s::pack(bit_ref& bref) const +// SystemInformationBlockType26-r15 ::= SEQUENCE +SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(mbms_sai_intra_freq_r11_present, 1)); - HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_r11_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(v2x_inter_freq_info_list_r15_present, 1)); + HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_r15_present, 1)); + HANDLE_CODE(bref.pack(v2x_packet_dupl_cfg_r15_present, 1)); + HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1)); + HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1)); + HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1)); + HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r15_present, 1)); - if (mbms_sai_intra_freq_r11_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_intra_freq_r11, 1, 64, integer_packer(0, 65535))); + if (v2x_inter_freq_info_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r15, 0, 7)); } - if (mbms_sai_inter_freq_list_r11_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, mbms_sai_inter_freq_list_r11, 1, 8)); + if (cbr_pssch_tx_cfg_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, cbr_pssch_tx_cfg_list_r15, 1, 8)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (v2x_packet_dupl_cfg_r15_present) { + HANDLE_CODE(v2x_packet_dupl_cfg_r15.pack(bref)); + } + if (sync_freq_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, sync_freq_list_r15, 1, 8, integer_packer(0, 262143))); + } + if (v2x_freq_sel_cfg_list_r15_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, v2x_freq_sel_cfg_list_r15, 1, 8)); + } + if (thresh_s_rssi_cbr_r15_present) { + HANDLE_CODE(pack_integer(bref, thresh_s_rssi_cbr_r15, (uint8_t)0u, (uint8_t)45u)); } if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= mbms_sai_inter_freq_list_v1140.is_present(); - group_flags[1] |= mbms_intra_freq_carrier_type_r14.is_present(); - group_flags[1] |= mbms_inter_freq_carrier_type_list_r14.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(mbms_sai_inter_freq_list_v1140.is_present(), 1)); - if (mbms_sai_inter_freq_list_v1140.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_sai_inter_freq_list_v1140, 1, 8)); - } - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(mbms_intra_freq_carrier_type_r14.is_present(), 1)); - HANDLE_CODE(bref.pack(mbms_inter_freq_carrier_type_list_r14.is_present(), 1)); - if (mbms_intra_freq_carrier_type_r14.is_present()) { - HANDLE_CODE(mbms_intra_freq_carrier_type_r14->pack(bref)); - } - if (mbms_inter_freq_carrier_type_list_r14.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *mbms_inter_freq_carrier_type_list_r14, 1, 8)); - } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type15_r11_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(mbms_sai_intra_freq_r11_present, 1)); - HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_r11_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(v2x_inter_freq_info_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(v2x_packet_dupl_cfg_r15_present, 1)); + HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1)); + HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1)); + HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r15_present, 1)); - if (mbms_sai_intra_freq_r11_present) { - HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_intra_freq_r11, bref, 1, 64, integer_packer(0, 65535))); + if (v2x_inter_freq_info_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r15, bref, 0, 7)); } - if (mbms_sai_inter_freq_list_r11_present) { - HANDLE_CODE(unpack_dyn_seq_of(mbms_sai_inter_freq_list_r11, bref, 1, 8)); + if (cbr_pssch_tx_cfg_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(cbr_pssch_tx_cfg_list_r15, bref, 1, 8)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (v2x_packet_dupl_cfg_r15_present) { + HANDLE_CODE(v2x_packet_dupl_cfg_r15.unpack(bref)); + } + if (sync_freq_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(sync_freq_list_r15, bref, 1, 8, integer_packer(0, 262143))); + } + if (v2x_freq_sel_cfg_list_r15_present) { + HANDLE_CODE(unpack_dyn_seq_of(v2x_freq_sel_cfg_list_r15, bref, 1, 8)); + } + if (thresh_s_rssi_cbr_r15_present) { + HANDLE_CODE(unpack_integer(thresh_s_rssi_cbr_r15, bref, (uint8_t)0u, (uint8_t)45u)); } if (ext) { - ext_groups_unpacker_guard group_flags(2); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool mbms_sai_inter_freq_list_v1140_present; - HANDLE_CODE(bref.unpack(mbms_sai_inter_freq_list_v1140_present, 1)); - mbms_sai_inter_freq_list_v1140.set_present(mbms_sai_inter_freq_list_v1140_present); - if (mbms_sai_inter_freq_list_v1140.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*mbms_sai_inter_freq_list_v1140, bref, 1, 8)); - } - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - bool mbms_intra_freq_carrier_type_r14_present; - HANDLE_CODE(bref.unpack(mbms_intra_freq_carrier_type_r14_present, 1)); - mbms_intra_freq_carrier_type_r14.set_present(mbms_intra_freq_carrier_type_r14_present); - bool mbms_inter_freq_carrier_type_list_r14_present; - HANDLE_CODE(bref.unpack(mbms_inter_freq_carrier_type_list_r14_present, 1)); - mbms_inter_freq_carrier_type_list_r14.set_present(mbms_inter_freq_carrier_type_list_r14_present); - if (mbms_intra_freq_carrier_type_r14.is_present()) { - HANDLE_CODE(mbms_intra_freq_carrier_type_r14->unpack(bref)); - } - if (mbms_inter_freq_carrier_type_list_r14.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*mbms_inter_freq_carrier_type_list_r14, bref, 1, 8)); - } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } } return SRSASN_SUCCESS; } -void sib_type15_r11_s::to_json(json_writer& j) const +void sib_type26_r15_s::to_json(json_writer& j) const { j.start_obj(); - if (mbms_sai_intra_freq_r11_present) { - j.start_array("mbms-SAI-IntraFreq-r11"); - for (const auto& e1 : mbms_sai_intra_freq_r11) { - j.write_int(e1); + if (v2x_inter_freq_info_list_r15_present) { + j.start_array("v2x-InterFreqInfoList-r15"); + for (const auto& e1 : v2x_inter_freq_info_list_r15) { + e1.to_json(j); } j.end_array(); } - if (mbms_sai_inter_freq_list_r11_present) { - j.start_array("mbms-SAI-InterFreqList-r11"); - for (const auto& e1 : mbms_sai_inter_freq_list_r11) { + if (cbr_pssch_tx_cfg_list_r15_present) { + j.start_array("cbr-pssch-TxConfigList-r15"); + for (const auto& e1 : cbr_pssch_tx_cfg_list_r15) { e1.to_json(j); } j.end_array(); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (v2x_packet_dupl_cfg_r15_present) { + j.write_fieldname("v2x-PacketDuplicationConfig-r15"); + v2x_packet_dupl_cfg_r15.to_json(j); } - if (ext) { - if (mbms_sai_inter_freq_list_v1140.is_present()) { - j.start_array("mbms-SAI-InterFreqList-v1140"); - for (const auto& e1 : *mbms_sai_inter_freq_list_v1140) { - e1.to_json(j); - } - j.end_array(); + if (sync_freq_list_r15_present) { + j.start_array("syncFreqList-r15"); + for (const auto& e1 : sync_freq_list_r15) { + j.write_int(e1); } - if (mbms_intra_freq_carrier_type_r14.is_present()) { - j.write_fieldname("mbms-IntraFreqCarrierType-r14"); - mbms_intra_freq_carrier_type_r14->to_json(j); + j.end_array(); + } + if (slss_tx_multi_freq_r15_present) { + j.write_str("slss-TxMultiFreq-r15", "true"); + } + if (v2x_freq_sel_cfg_list_r15_present) { + j.start_array("v2x-FreqSelectionConfigList-r15"); + for (const auto& e1 : v2x_freq_sel_cfg_list_r15) { + e1.to_json(j); } - if (mbms_inter_freq_carrier_type_list_r14.is_present()) { - j.start_array("mbms-InterFreqCarrierTypeList-r14"); - for (const auto& e1 : *mbms_inter_freq_carrier_type_list_r14) { - e1.to_json(j); - } - j.end_array(); + j.end_array(); + } + if (thresh_s_rssi_cbr_r15_present) { + j.write_int("threshS-RSSI-CBR-r15", thresh_s_rssi_cbr_r15); + } + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } } j.end_obj(); } -// SystemInformationBlockType16-r11 ::= SEQUENCE -SRSASN_CODE sib_type16_r11_s::pack(bit_ref& bref) const +// SystemInformationBlockType3 ::= SEQUENCE +SRSASN_CODE sib_type3_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(time_info_r11_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (time_info_r11_present) { - HANDLE_CODE(bref.pack(time_info_r11.day_light_saving_time_r11_present, 1)); - HANDLE_CODE(bref.pack(time_info_r11.leap_seconds_r11_present, 1)); - HANDLE_CODE(bref.pack(time_info_r11.local_time_offset_r11_present, 1)); - HANDLE_CODE(pack_integer(bref, time_info_r11.time_info_utc_r11, (uint64_t)0u, (uint64_t)549755813887u)); - if (time_info_r11.day_light_saving_time_r11_present) { - HANDLE_CODE(time_info_r11.day_light_saving_time_r11.pack(bref)); - } - if (time_info_r11.leap_seconds_r11_present) { - HANDLE_CODE(pack_integer(bref, time_info_r11.leap_seconds_r11, (int16_t)-127, (int16_t)128)); - } - if (time_info_r11.local_time_offset_r11_present) { - HANDLE_CODE(pack_integer(bref, time_info_r11.local_time_offset_r11, (int8_t)-63, (int8_t)64)); - } - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + HANDLE_CODE(bref.pack(cell_resel_info_common.speed_state_resel_pars_present, 1)); + HANDLE_CODE(cell_resel_info_common.q_hyst.pack(bref)); + if (cell_resel_info_common.speed_state_resel_pars_present) { + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.pack(bref)); + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.pack(bref)); + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.pack(bref)); + } + HANDLE_CODE(bref.pack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); + if (cell_resel_serving_freq_info.s_non_intra_search_present) { + HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.s_non_intra_search, (uint8_t)0u, (uint8_t)31u)); + } + HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.thresh_serving_low, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.p_max_present, 1)); + HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.s_intra_search_present, 1)); + HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); + HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); + HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.q_rx_lev_min, (int8_t)-70, (int8_t)-22)); + if (intra_freq_cell_resel_info.p_max_present) { + HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.p_max, (int8_t)-30, (int8_t)33)); + } + if (intra_freq_cell_resel_info.s_intra_search_present) { + HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.s_intra_search, (uint8_t)0u, (uint8_t)31u)); + } + if (intra_freq_cell_resel_info.allowed_meas_bw_present) { + HANDLE_CODE(intra_freq_cell_resel_info.allowed_meas_bw.pack(bref)); + } + HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.presence_ant_port1, 1)); + HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.pack(bref)); + HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.t_resel_eutra, (uint8_t)0u, (uint8_t)7u)); + if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { + HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.pack(bref)); } if (ext) { ext_groups_packer_guard group_flags; - group_flags[0] |= time_ref_info_r15.is_present(); + group_flags[0] |= late_non_crit_ext_present; + group_flags[1] |= s_intra_search_v920.is_present(); + group_flags[1] |= s_non_intra_search_v920.is_present(); + group_flags[1] |= q_qual_min_r9_present; + group_flags[1] |= thresh_serving_low_q_r9_present; + group_flags[2] |= q_qual_min_wb_r11_present; + group_flags[3] |= q_qual_min_rsrq_on_all_symbols_r12_present; + group_flags[4] |= cell_resel_serving_freq_info_v1310.is_present(); + group_flags[4] |= redist_serving_info_r13.is_present(); + group_flags[4] |= cell_sel_info_ce_r13.is_present(); + group_flags[4] |= t_resel_eutra_ce_r13_present; + group_flags[5] |= cell_sel_info_ce1_r13.is_present(); + group_flags[6] |= cell_sel_info_ce1_v1360.is_present(); + group_flags[7] |= cell_resel_info_common_v1460.is_present(); + group_flags[8] |= cell_resel_info_hsdn_r15.is_present(); + group_flags[8] |= cell_sel_info_ce_v1530.is_present(); + group_flags[8] |= crs_intf_mitig_neigh_cells_ce_r15_present; group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(time_ref_info_r15.is_present(), 1)); - if (time_ref_info_r15.is_present()) { - HANDLE_CODE(time_ref_info_r15->pack(bref)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(s_intra_search_v920.is_present(), 1)); + HANDLE_CODE(bref.pack(s_non_intra_search_v920.is_present(), 1)); + HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); + HANDLE_CODE(bref.pack(thresh_serving_low_q_r9_present, 1)); + if (s_intra_search_v920.is_present()) { + HANDLE_CODE(pack_integer(bref, s_intra_search_v920->s_intra_search_p_r9, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, s_intra_search_v920->s_intra_search_q_r9, (uint8_t)0u, (uint8_t)31u)); + } + if (s_non_intra_search_v920.is_present()) { + HANDLE_CODE(pack_integer(bref, s_non_intra_search_v920->s_non_intra_search_p_r9, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(pack_integer(bref, s_non_intra_search_v920->s_non_intra_search_q_r9, (uint8_t)0u, (uint8_t)31u)); + } + if (q_qual_min_r9_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); + } + if (thresh_serving_low_q_r9_present) { + HANDLE_CODE(pack_integer(bref, thresh_serving_low_q_r9, (uint8_t)0u, (uint8_t)31u)); } } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type16_r11_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(time_info_r11_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + if (group_flags[2]) { + varlength_field_pack_guard varlen_scope(bref, false); - if (time_info_r11_present) { - HANDLE_CODE(bref.unpack(time_info_r11.day_light_saving_time_r11_present, 1)); - HANDLE_CODE(bref.unpack(time_info_r11.leap_seconds_r11_present, 1)); - HANDLE_CODE(bref.unpack(time_info_r11.local_time_offset_r11_present, 1)); - HANDLE_CODE(unpack_integer(time_info_r11.time_info_utc_r11, bref, (uint64_t)0u, (uint64_t)549755813887u)); - if (time_info_r11.day_light_saving_time_r11_present) { - HANDLE_CODE(time_info_r11.day_light_saving_time_r11.unpack(bref)); + HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); + if (q_qual_min_wb_r11_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); + } } - if (time_info_r11.leap_seconds_r11_present) { - HANDLE_CODE(unpack_integer(time_info_r11.leap_seconds_r11, bref, (int16_t)-127, (int16_t)128)); + if (group_flags[3]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); + } } - if (time_info_r11.local_time_offset_r11_present) { - HANDLE_CODE(unpack_integer(time_info_r11.local_time_offset_r11, bref, (int8_t)-63, (int8_t)64)); + if (group_flags[4]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(cell_resel_serving_freq_info_v1310.is_present(), 1)); + HANDLE_CODE(bref.pack(redist_serving_info_r13.is_present(), 1)); + HANDLE_CODE(bref.pack(cell_sel_info_ce_r13.is_present(), 1)); + HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); + if (cell_resel_serving_freq_info_v1310.is_present()) { + HANDLE_CODE(cell_resel_serving_freq_info_v1310->pack(bref)); + } + if (redist_serving_info_r13.is_present()) { + HANDLE_CODE(redist_serving_info_r13->pack(bref)); + } + if (cell_sel_info_ce_r13.is_present()) { + HANDLE_CODE(cell_sel_info_ce_r13->pack(bref)); + } + if (t_resel_eutra_ce_r13_present) { + HANDLE_CODE(pack_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0u, (uint8_t)15u)); + } } - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + if (group_flags[5]) { + varlength_field_pack_guard varlen_scope(bref, false); - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); + HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13.is_present(), 1)); + if (cell_sel_info_ce1_r13.is_present()) { + HANDLE_CODE(cell_sel_info_ce1_r13->pack(bref)); + } + } + if (group_flags[6]) { + varlength_field_pack_guard varlen_scope(bref, false); - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360.is_present(), 1)); + if (cell_sel_info_ce1_v1360.is_present()) { + HANDLE_CODE(cell_sel_info_ce1_v1360->pack(bref)); + } + } + if (group_flags[7]) { + varlength_field_pack_guard varlen_scope(bref, false); - bool time_ref_info_r15_present; - HANDLE_CODE(bref.unpack(time_ref_info_r15_present, 1)); - time_ref_info_r15.set_present(time_ref_info_r15_present); - if (time_ref_info_r15.is_present()) { - HANDLE_CODE(time_ref_info_r15->unpack(bref)); + HANDLE_CODE(bref.pack(cell_resel_info_common_v1460.is_present(), 1)); + if (cell_resel_info_common_v1460.is_present()) { + HANDLE_CODE(cell_resel_info_common_v1460->pack(bref)); + } + } + if (group_flags[8]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(cell_resel_info_hsdn_r15.is_present(), 1)); + HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530.is_present(), 1)); + HANDLE_CODE(bref.pack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); + if (cell_resel_info_hsdn_r15.is_present()) { + HANDLE_CODE(cell_resel_info_hsdn_r15->pack(bref)); + } + if (cell_sel_info_ce_v1530.is_present()) { + HANDLE_CODE(cell_sel_info_ce_v1530->pack(bref)); } } } return SRSASN_SUCCESS; } -void sib_type16_r11_s::to_json(json_writer& j) const +SRSASN_CODE sib_type3_s::unpack(cbit_ref& bref) { - j.start_obj(); - if (time_info_r11_present) { - j.write_fieldname("timeInfo-r11"); - j.start_obj(); - j.write_int("timeInfoUTC-r11", time_info_r11.time_info_utc_r11); - if (time_info_r11.day_light_saving_time_r11_present) { - j.write_str("dayLightSavingTime-r11", time_info_r11.day_light_saving_time_r11.to_string()); - } - if (time_info_r11.leap_seconds_r11_present) { - j.write_int("leapSeconds-r11", time_info_r11.leap_seconds_r11); - } - if (time_info_r11.local_time_offset_r11_present) { - j.write_int("localTimeOffset-r11", time_info_r11.local_time_offset_r11); - } - j.end_obj(); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(cell_resel_info_common.speed_state_resel_pars_present, 1)); + HANDLE_CODE(cell_resel_info_common.q_hyst.unpack(bref)); + if (cell_resel_info_common.speed_state_resel_pars_present) { + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.unpack(bref)); + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.unpack(bref)); + HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.unpack(bref)); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); + if (cell_resel_serving_freq_info.s_non_intra_search_present) { + HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.s_non_intra_search, bref, (uint8_t)0u, (uint8_t)31u)); } - if (ext) { - if (time_ref_info_r15.is_present()) { - j.write_fieldname("timeReferenceInfo-r15"); - time_ref_info_r15->to_json(j); - } + HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.thresh_serving_low, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.p_max_present, 1)); + HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.s_intra_search_present, 1)); + HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); + HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); + HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); + if (intra_freq_cell_resel_info.p_max_present) { + HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.p_max, bref, (int8_t)-30, (int8_t)33)); } - j.end_obj(); -} - -// SystemInformationBlockType17-r12 ::= SEQUENCE -SRSASN_CODE sib_type17_r12_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(wlan_offload_info_per_plmn_list_r12_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (wlan_offload_info_per_plmn_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, wlan_offload_info_per_plmn_list_r12, 1, 6)); + if (intra_freq_cell_resel_info.s_intra_search_present) { + HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.s_intra_search, bref, (uint8_t)0u, (uint8_t)31u)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (intra_freq_cell_resel_info.allowed_meas_bw_present) { + HANDLE_CODE(intra_freq_cell_resel_info.allowed_meas_bw.unpack(bref)); + } + HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.presence_ant_port1, 1)); + HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.unpack(bref)); + HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.t_resel_eutra, bref, (uint8_t)0u, (uint8_t)7u)); + if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { + HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.unpack(bref)); } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type17_r12_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(wlan_offload_info_per_plmn_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + if (ext) { + ext_groups_unpacker_guard group_flags(9); + group_flags.unpack(bref); - if (wlan_offload_info_per_plmn_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(wlan_offload_info_per_plmn_list_r12, bref, 1, 6)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); - return SRSASN_SUCCESS; -} -void sib_type17_r12_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (wlan_offload_info_per_plmn_list_r12_present) { - j.start_array("wlan-OffloadInfoPerPLMN-List-r12"); - for (const auto& e1 : wlan_offload_info_per_plmn_list_r12) { - e1.to_json(j); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); } - j.end_array(); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - j.end_obj(); -} - -// SystemInformationBlockType18-r12 ::= SEQUENCE -SRSASN_CODE sib_type18_r12_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(comm_cfg_r12_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (comm_cfg_r12_present) { - HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); - HANDLE_CODE(bref.pack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); - HANDLE_CODE(bref.pack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_rx_pool_r12, 1, 16)); - if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_normal_common_r12, 1, 4)); - } - if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_tx_pool_exceptional_r12, 1, 4)); - } - if (comm_cfg_r12.comm_sync_cfg_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, comm_cfg_r12.comm_sync_cfg_r12, 1, 16)); + bool s_intra_search_v920_present; + HANDLE_CODE(bref.unpack(s_intra_search_v920_present, 1)); + s_intra_search_v920.set_present(s_intra_search_v920_present); + bool s_non_intra_search_v920_present; + HANDLE_CODE(bref.unpack(s_non_intra_search_v920_present, 1)); + s_non_intra_search_v920.set_present(s_non_intra_search_v920_present); + HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); + HANDLE_CODE(bref.unpack(thresh_serving_low_q_r9_present, 1)); + if (s_intra_search_v920.is_present()) { + HANDLE_CODE(unpack_integer(s_intra_search_v920->s_intra_search_p_r9, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(s_intra_search_v920->s_intra_search_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + } + if (s_non_intra_search_v920.is_present()) { + HANDLE_CODE(unpack_integer(s_non_intra_search_v920->s_non_intra_search_p_r9, bref, (uint8_t)0u, (uint8_t)31u)); + HANDLE_CODE(unpack_integer(s_non_intra_search_v920->s_non_intra_search_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + } + if (q_qual_min_r9_present) { + HANDLE_CODE(unpack_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); + } + if (thresh_serving_low_q_r9_present) { + HANDLE_CODE(unpack_integer(thresh_serving_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); + } } - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= comm_tx_pool_normal_common_ext_r13.is_present(); - group_flags[0] |= comm_tx_res_uc_req_allowed_r13_present; - group_flags[0] |= comm_tx_allow_relay_common_r13_present; - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); + if (group_flags[2]) { + varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(comm_tx_pool_normal_common_ext_r13.is_present(), 1)); - HANDLE_CODE(bref.pack(comm_tx_res_uc_req_allowed_r13_present, 1)); - HANDLE_CODE(bref.pack(comm_tx_allow_relay_common_r13_present, 1)); - if (comm_tx_pool_normal_common_ext_r13.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *comm_tx_pool_normal_common_ext_r13, 1, 4)); + HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); + if (q_qual_min_wb_r11_present) { + HANDLE_CODE(unpack_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); } } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type18_r12_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(comm_cfg_r12_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + if (group_flags[3]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (comm_cfg_r12_present) { - HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_normal_common_r12_present, 1)); - HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_tx_pool_exceptional_r12_present, 1)); - HANDLE_CODE(bref.unpack(comm_cfg_r12.comm_sync_cfg_r12_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_rx_pool_r12, bref, 1, 16)); - if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_normal_common_r12, bref, 1, 4)); + HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); + } } - if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_tx_pool_exceptional_r12, bref, 1, 4)); + if (group_flags[4]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool cell_resel_serving_freq_info_v1310_present; + HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info_v1310_present, 1)); + cell_resel_serving_freq_info_v1310.set_present(cell_resel_serving_freq_info_v1310_present); + bool redist_serving_info_r13_present; + HANDLE_CODE(bref.unpack(redist_serving_info_r13_present, 1)); + redist_serving_info_r13.set_present(redist_serving_info_r13_present); + bool cell_sel_info_ce_r13_present; + HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); + cell_sel_info_ce_r13.set_present(cell_sel_info_ce_r13_present); + HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); + if (cell_resel_serving_freq_info_v1310.is_present()) { + HANDLE_CODE(cell_resel_serving_freq_info_v1310->unpack(bref)); + } + if (redist_serving_info_r13.is_present()) { + HANDLE_CODE(redist_serving_info_r13->unpack(bref)); + } + if (cell_sel_info_ce_r13.is_present()) { + HANDLE_CODE(cell_sel_info_ce_r13->unpack(bref)); + } + if (t_resel_eutra_ce_r13_present) { + HANDLE_CODE(unpack_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0u, (uint8_t)15u)); + } } - if (comm_cfg_r12.comm_sync_cfg_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(comm_cfg_r12.comm_sync_cfg_r12, bref, 1, 16)); + if (group_flags[5]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool cell_sel_info_ce1_r13_present; + HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); + cell_sel_info_ce1_r13.set_present(cell_sel_info_ce1_r13_present); + if (cell_sel_info_ce1_r13.is_present()) { + HANDLE_CODE(cell_sel_info_ce1_r13->unpack(bref)); + } } - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + if (group_flags[6]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (ext) { - ext_groups_unpacker_guard group_flags(1); - group_flags.unpack(bref); + bool cell_sel_info_ce1_v1360_present; + HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); + cell_sel_info_ce1_v1360.set_present(cell_sel_info_ce1_v1360_present); + if (cell_sel_info_ce1_v1360.is_present()) { + HANDLE_CODE(cell_sel_info_ce1_v1360->unpack(bref)); + } + } + if (group_flags[7]) { + varlength_field_unpack_guard varlen_scope(bref, false); - if (group_flags[0]) { + bool cell_resel_info_common_v1460_present; + HANDLE_CODE(bref.unpack(cell_resel_info_common_v1460_present, 1)); + cell_resel_info_common_v1460.set_present(cell_resel_info_common_v1460_present); + if (cell_resel_info_common_v1460.is_present()) { + HANDLE_CODE(cell_resel_info_common_v1460->unpack(bref)); + } + } + if (group_flags[8]) { varlength_field_unpack_guard varlen_scope(bref, false); - bool comm_tx_pool_normal_common_ext_r13_present; - HANDLE_CODE(bref.unpack(comm_tx_pool_normal_common_ext_r13_present, 1)); - comm_tx_pool_normal_common_ext_r13.set_present(comm_tx_pool_normal_common_ext_r13_present); - HANDLE_CODE(bref.unpack(comm_tx_res_uc_req_allowed_r13_present, 1)); - HANDLE_CODE(bref.unpack(comm_tx_allow_relay_common_r13_present, 1)); - if (comm_tx_pool_normal_common_ext_r13.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*comm_tx_pool_normal_common_ext_r13, bref, 1, 4)); + bool cell_resel_info_hsdn_r15_present; + HANDLE_CODE(bref.unpack(cell_resel_info_hsdn_r15_present, 1)); + cell_resel_info_hsdn_r15.set_present(cell_resel_info_hsdn_r15_present); + bool cell_sel_info_ce_v1530_present; + HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); + cell_sel_info_ce_v1530.set_present(cell_sel_info_ce_v1530_present); + HANDLE_CODE(bref.unpack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); + if (cell_resel_info_hsdn_r15.is_present()) { + HANDLE_CODE(cell_resel_info_hsdn_r15->unpack(bref)); + } + if (cell_sel_info_ce_v1530.is_present()) { + HANDLE_CODE(cell_sel_info_ce_v1530->unpack(bref)); } } } return SRSASN_SUCCESS; } -void sib_type18_r12_s::to_json(json_writer& j) const +void sib_type3_s::to_json(json_writer& j) const { j.start_obj(); - if (comm_cfg_r12_present) { - j.write_fieldname("commConfig-r12"); + j.write_fieldname("cellReselectionInfoCommon"); + j.start_obj(); + j.write_str("q-Hyst", cell_resel_info_common.q_hyst.to_string()); + if (cell_resel_info_common.speed_state_resel_pars_present) { + j.write_fieldname("speedStateReselectionPars"); j.start_obj(); - j.start_array("commRxPool-r12"); - for (const auto& e1 : comm_cfg_r12.comm_rx_pool_r12) { - e1.to_json(j); - } - j.end_array(); - if (comm_cfg_r12.comm_tx_pool_normal_common_r12_present) { - j.start_array("commTxPoolNormalCommon-r12"); - for (const auto& e1 : comm_cfg_r12.comm_tx_pool_normal_common_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (comm_cfg_r12.comm_tx_pool_exceptional_r12_present) { - j.start_array("commTxPoolExceptional-r12"); - for (const auto& e1 : comm_cfg_r12.comm_tx_pool_exceptional_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (comm_cfg_r12.comm_sync_cfg_r12_present) { - j.start_array("commSyncConfig-r12"); - for (const auto& e1 : comm_cfg_r12.comm_sync_cfg_r12) { - e1.to_json(j); - } - j.end_array(); - } + j.write_fieldname("mobilityStateParameters"); + cell_resel_info_common.speed_state_resel_pars.mob_state_params.to_json(j); + j.write_fieldname("q-HystSF"); + j.start_obj(); + j.write_str("sf-Medium", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.to_string()); + j.write_str("sf-High", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.to_string()); + j.end_obj(); j.end_obj(); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (ext) { - if (comm_tx_pool_normal_common_ext_r13.is_present()) { - j.start_array("commTxPoolNormalCommonExt-r13"); - for (const auto& e1 : *comm_tx_pool_normal_common_ext_r13) { - e1.to_json(j); - } - j.end_array(); - } - if (comm_tx_res_uc_req_allowed_r13_present) { - j.write_str("commTxResourceUC-ReqAllowed-r13", "true"); - } - if (comm_tx_allow_relay_common_r13_present) { - j.write_str("commTxAllowRelayCommon-r13", "true"); - } + j.end_obj(); + j.write_fieldname("cellReselectionServingFreqInfo"); + j.start_obj(); + if (cell_resel_serving_freq_info.s_non_intra_search_present) { + j.write_int("s-NonIntraSearch", cell_resel_serving_freq_info.s_non_intra_search); } + j.write_int("threshServingLow", cell_resel_serving_freq_info.thresh_serving_low); + j.write_int("cellReselectionPriority", cell_resel_serving_freq_info.cell_resel_prio); j.end_obj(); -} - -// SystemInformationBlockType19-r12 ::= SEQUENCE -SRSASN_CODE sib_type19_r12_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(disc_cfg_r12_present, 1)); - HANDLE_CODE(bref.pack(disc_inter_freq_list_r12_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (disc_cfg_r12_present) { - HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); - HANDLE_CODE(bref.pack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); - HANDLE_CODE(bref.pack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_rx_pool_r12, 1, 16)); - if (disc_cfg_r12.disc_tx_pool_common_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_tx_pool_common_r12, 1, 4)); + j.write_fieldname("intraFreqCellReselectionInfo"); + j.start_obj(); + j.write_int("q-RxLevMin", intra_freq_cell_resel_info.q_rx_lev_min); + if (intra_freq_cell_resel_info.p_max_present) { + j.write_int("p-Max", intra_freq_cell_resel_info.p_max); + } + if (intra_freq_cell_resel_info.s_intra_search_present) { + j.write_int("s-IntraSearch", intra_freq_cell_resel_info.s_intra_search); + } + if (intra_freq_cell_resel_info.allowed_meas_bw_present) { + j.write_str("allowedMeasBandwidth", intra_freq_cell_resel_info.allowed_meas_bw.to_string()); + } + j.write_bool("presenceAntennaPort1", intra_freq_cell_resel_info.presence_ant_port1); + j.write_str("neighCellConfig", intra_freq_cell_resel_info.neigh_cell_cfg.to_string()); + j.write_int("t-ReselectionEUTRA", intra_freq_cell_resel_info.t_resel_eutra); + if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { + j.write_fieldname("t-ReselectionEUTRA-SF"); + intra_freq_cell_resel_info.t_resel_eutra_sf.to_json(j); + } + j.end_obj(); + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { - HANDLE_CODE( - pack_fixed_seq_of(bref, &(disc_cfg_r12.disc_tx_pwr_info_r12)[0], disc_cfg_r12.disc_tx_pwr_info_r12.size())); + if (s_intra_search_v920.is_present()) { + j.write_fieldname("s-IntraSearch-v920"); + j.start_obj(); + j.write_int("s-IntraSearchP-r9", s_intra_search_v920->s_intra_search_p_r9); + j.write_int("s-IntraSearchQ-r9", s_intra_search_v920->s_intra_search_q_r9); + j.end_obj(); } - if (disc_cfg_r12.disc_sync_cfg_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_r12.disc_sync_cfg_r12, 1, 16)); + if (s_non_intra_search_v920.is_present()) { + j.write_fieldname("s-NonIntraSearch-v920"); + j.start_obj(); + j.write_int("s-NonIntraSearchP-r9", s_non_intra_search_v920->s_non_intra_search_p_r9); + j.write_int("s-NonIntraSearchQ-r9", s_non_intra_search_v920->s_non_intra_search_q_r9); + j.end_obj(); + } + if (q_qual_min_r9_present) { + j.write_int("q-QualMin-r9", q_qual_min_r9); + } + if (thresh_serving_low_q_r9_present) { + j.write_int("threshServingLowQ-r9", thresh_serving_low_q_r9); + } + if (q_qual_min_wb_r11_present) { + j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); + } + if (q_qual_min_rsrq_on_all_symbols_r12_present) { + j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); + } + if (cell_resel_serving_freq_info_v1310.is_present()) { + j.write_fieldname("cellReselectionServingFreqInfo-v1310"); + cell_resel_serving_freq_info_v1310->to_json(j); + } + if (redist_serving_info_r13.is_present()) { + j.write_fieldname("redistributionServingInfo-r13"); + redist_serving_info_r13->to_json(j); + } + if (cell_sel_info_ce_r13.is_present()) { + j.write_fieldname("cellSelectionInfoCE-r13"); + cell_sel_info_ce_r13->to_json(j); + } + if (t_resel_eutra_ce_r13_present) { + j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); + } + if (cell_sel_info_ce1_r13.is_present()) { + j.write_fieldname("cellSelectionInfoCE1-r13"); + cell_sel_info_ce1_r13->to_json(j); + } + if (cell_sel_info_ce1_v1360.is_present()) { + j.write_fieldname("cellSelectionInfoCE1-v1360"); + cell_sel_info_ce1_v1360->to_json(j); + } + if (cell_resel_info_common_v1460.is_present()) { + j.write_fieldname("cellReselectionInfoCommon-v1460"); + cell_resel_info_common_v1460->to_json(j); + } + if (cell_resel_info_hsdn_r15.is_present()) { + j.write_fieldname("cellReselectionInfoHSDN-r15"); + cell_resel_info_hsdn_r15->to_json(j); + } + if (cell_sel_info_ce_v1530.is_present()) { + j.write_fieldname("cellSelectionInfoCE-v1530"); + cell_sel_info_ce_v1530->to_json(j); + } + if (crs_intf_mitig_neigh_cells_ce_r15_present) { + j.write_str("crs-IntfMitigNeighCellsCE-r15", "enabled"); } } - if (disc_inter_freq_list_r12_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_inter_freq_list_r12, 1, 8)); + j.end_obj(); +} + +std::string sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const +{ + static const char* options[] = {"dB0", + "dB1", + "dB2", + "dB3", + "dB4", + "dB5", + "dB6", + "dB8", + "dB10", + "dB12", + "dB14", + "dB16", + "dB18", + "dB20", + "dB22", + "dB24"}; + return convert_enum_idx(options, 16, value, "sib_type3_s::cell_resel_info_common_s_::q_hyst_e_"); +} +uint8_t sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_number() const +{ + static const uint8_t options[] = {0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24}; + return map_enum_number(options, 16, value, "sib_type3_s::cell_resel_info_common_s_::q_hyst_e_"); +} + +std::string +sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_string() const +{ + static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; + return convert_enum_idx( + options, + 4, + value, + "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); +} +int8_t +sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_number() const +{ + static const int8_t options[] = {-6, -4, -2, 0}; + return map_enum_number( + options, + 4, + value, + "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); +} + +std::string +sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_string() const +{ + static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; + return convert_enum_idx( + options, 4, value, "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_e_"); +} +int8_t sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_number() const +{ + static const int8_t options[] = {-6, -4, -2, 0}; + return map_enum_number( + options, 4, value, "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_e_"); +} + +// SystemInformationBlockType4 ::= SEQUENCE +SRSASN_CODE sib_type4_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(intra_freq_neigh_cell_list_present, 1)); + HANDLE_CODE(bref.pack(intra_freq_black_cell_list_present, 1)); + HANDLE_CODE(bref.pack(csg_pci_range_present, 1)); + + if (intra_freq_neigh_cell_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_neigh_cell_list, 1, 16)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (intra_freq_black_cell_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_black_cell_list, 1, 16)); + } + if (csg_pci_range_present) { + HANDLE_CODE(csg_pci_range.pack(bref)); } if (ext) { ext_groups_packer_guard group_flags; - group_flags[0] |= disc_cfg_v1310.is_present(); - group_flags[0] |= disc_cfg_relay_r13.is_present(); - group_flags[0] |= disc_cfg_ps_minus13.is_present(); + group_flags[0] |= late_non_crit_ext_present; + group_flags[1] |= intra_freq_neigh_hsdn_cell_list_r15.is_present(); group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(disc_cfg_v1310.is_present(), 1)); - HANDLE_CODE(bref.pack(disc_cfg_relay_r13.is_present(), 1)); - HANDLE_CODE(bref.pack(disc_cfg_ps_minus13.is_present(), 1)); - if (disc_cfg_v1310.is_present()) { - HANDLE_CODE(bref.pack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); - HANDLE_CODE(bref.pack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); - if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_v1310->disc_inter_freq_list_v1310, 1, 8)); - } - } - if (disc_cfg_relay_r13.is_present()) { - HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.pack(bref)); - HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.pack(bref)); - } - if (disc_cfg_ps_minus13.is_present()) { - HANDLE_CODE(bref.pack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_rx_pool_ps_r13, 1, 16)); - if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, 1, 4)); - } + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(intra_freq_neigh_hsdn_cell_list_r15.is_present(), 1)); + if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *intra_freq_neigh_hsdn_cell_list_r15, 1, 16)); } } } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type19_r12_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type4_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(disc_cfg_r12_present, 1)); - HANDLE_CODE(bref.unpack(disc_inter_freq_list_r12_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(intra_freq_neigh_cell_list_present, 1)); + HANDLE_CODE(bref.unpack(intra_freq_black_cell_list_present, 1)); + HANDLE_CODE(bref.unpack(csg_pci_range_present, 1)); - if (disc_cfg_r12_present) { - HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pool_common_r12_present, 1)); - HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_tx_pwr_info_r12_present, 1)); - HANDLE_CODE(bref.unpack(disc_cfg_r12.disc_sync_cfg_r12_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_rx_pool_r12, bref, 1, 16)); - if (disc_cfg_r12.disc_tx_pool_common_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_tx_pool_common_r12, bref, 1, 4)); - } - if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { - HANDLE_CODE( - unpack_fixed_seq_of(&(disc_cfg_r12.disc_tx_pwr_info_r12)[0], bref, disc_cfg_r12.disc_tx_pwr_info_r12.size())); - } - if (disc_cfg_r12.disc_sync_cfg_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_r12.disc_sync_cfg_r12, bref, 1, 16)); - } + if (intra_freq_neigh_cell_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(intra_freq_neigh_cell_list, bref, 1, 16)); } - if (disc_inter_freq_list_r12_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_inter_freq_list_r12, bref, 1, 8)); + if (intra_freq_black_cell_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(intra_freq_black_cell_list, bref, 1, 16)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (csg_pci_range_present) { + HANDLE_CODE(csg_pci_range.unpack(bref)); } if (ext) { - ext_groups_unpacker_guard group_flags(1); + ext_groups_unpacker_guard group_flags(2); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard varlen_scope(bref, false); - bool disc_cfg_v1310_present; - HANDLE_CODE(bref.unpack(disc_cfg_v1310_present, 1)); - disc_cfg_v1310.set_present(disc_cfg_v1310_present); - bool disc_cfg_relay_r13_present; - HANDLE_CODE(bref.unpack(disc_cfg_relay_r13_present, 1)); - disc_cfg_relay_r13.set_present(disc_cfg_relay_r13_present); - bool disc_cfg_ps_minus13_present; - HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13_present, 1)); - disc_cfg_ps_minus13.set_present(disc_cfg_ps_minus13_present); - if (disc_cfg_v1310.is_present()) { - HANDLE_CODE(bref.unpack(disc_cfg_v1310->disc_inter_freq_list_v1310_present, 1)); - HANDLE_CODE(bref.unpack(disc_cfg_v1310->gap_requests_allowed_common_present, 1)); - if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_v1310->disc_inter_freq_list_v1310, bref, 1, 8)); - } - } - if (disc_cfg_relay_r13.is_present()) { - HANDLE_CODE(disc_cfg_relay_r13->relay_ue_cfg_r13.unpack(bref)); - HANDLE_CODE(disc_cfg_relay_r13->remote_ue_cfg_r13.unpack(bref)); - } - if (disc_cfg_ps_minus13.is_present()) { - HANDLE_CODE(bref.unpack(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_rx_pool_ps_r13, bref, 1, 16)); - if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { - HANDLE_CODE(unpack_dyn_seq_of(disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13, bref, 1, 4)); - } + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool intra_freq_neigh_hsdn_cell_list_r15_present; + HANDLE_CODE(bref.unpack(intra_freq_neigh_hsdn_cell_list_r15_present, 1)); + intra_freq_neigh_hsdn_cell_list_r15.set_present(intra_freq_neigh_hsdn_cell_list_r15_present); + if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*intra_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); } } } return SRSASN_SUCCESS; } -void sib_type19_r12_s::to_json(json_writer& j) const +void sib_type4_s::to_json(json_writer& j) const { j.start_obj(); - if (disc_cfg_r12_present) { - j.write_fieldname("discConfig-r12"); - j.start_obj(); - j.start_array("discRxPool-r12"); - for (const auto& e1 : disc_cfg_r12.disc_rx_pool_r12) { + if (intra_freq_neigh_cell_list_present) { + j.start_array("intraFreqNeighCellList"); + for (const auto& e1 : intra_freq_neigh_cell_list) { e1.to_json(j); } j.end_array(); - if (disc_cfg_r12.disc_tx_pool_common_r12_present) { - j.start_array("discTxPoolCommon-r12"); - for (const auto& e1 : disc_cfg_r12.disc_tx_pool_common_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (disc_cfg_r12.disc_tx_pwr_info_r12_present) { - j.start_array("discTxPowerInfo-r12"); - for (const auto& e1 : disc_cfg_r12.disc_tx_pwr_info_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (disc_cfg_r12.disc_sync_cfg_r12_present) { - j.start_array("discSyncConfig-r12"); - for (const auto& e1 : disc_cfg_r12.disc_sync_cfg_r12) { - e1.to_json(j); - } - j.end_array(); - } - j.end_obj(); } - if (disc_inter_freq_list_r12_present) { - j.start_array("discInterFreqList-r12"); - for (const auto& e1 : disc_inter_freq_list_r12) { + if (intra_freq_black_cell_list_present) { + j.start_array("intraFreqBlackCellList"); + for (const auto& e1 : intra_freq_black_cell_list) { e1.to_json(j); } j.end_array(); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (csg_pci_range_present) { + j.write_fieldname("csg-PhysCellIdRange"); + csg_pci_range.to_json(j); } if (ext) { - if (disc_cfg_v1310.is_present()) { - j.write_fieldname("discConfig-v1310"); - j.start_obj(); - if (disc_cfg_v1310->disc_inter_freq_list_v1310_present) { - j.start_array("discInterFreqList-v1310"); - for (const auto& e1 : disc_cfg_v1310->disc_inter_freq_list_v1310) { - e1.to_json(j); - } - j.end_array(); - } - if (disc_cfg_v1310->gap_requests_allowed_common_present) { - j.write_str("gapRequestsAllowedCommon", "true"); - } - j.end_obj(); - } - if (disc_cfg_relay_r13.is_present()) { - j.write_fieldname("discConfigRelay-r13"); - j.start_obj(); - j.write_fieldname("relayUE-Config-r13"); - disc_cfg_relay_r13->relay_ue_cfg_r13.to_json(j); - j.write_fieldname("remoteUE-Config-r13"); - disc_cfg_relay_r13->remote_ue_cfg_r13.to_json(j); - j.end_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (disc_cfg_ps_minus13.is_present()) { - j.write_fieldname("discConfigPS-13"); - j.start_obj(); - j.start_array("discRxPoolPS-r13"); - for (const auto& e1 : disc_cfg_ps_minus13->disc_rx_pool_ps_r13) { + if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { + j.start_array("intraFreqNeighHSDN-CellList-r15"); + for (const auto& e1 : *intra_freq_neigh_hsdn_cell_list_r15) { e1.to_json(j); } j.end_array(); - if (disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13_present) { - j.start_array("discTxPoolPS-Common-r13"); - for (const auto& e1 : disc_cfg_ps_minus13->disc_tx_pool_ps_common_r13) { - e1.to_json(j); - } - j.end_array(); - } - j.end_obj(); } } j.end_obj(); } -// SystemInformationBlockType20-r13 ::= SEQUENCE -SRSASN_CODE sib_type20_r13_s::pack(bit_ref& bref) const +// SystemInformationBlockType5 ::= SEQUENCE +SRSASN_CODE sib_type5_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(sc_mcch_dur_r13_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - HANDLE_CODE(sc_mcch_repeat_period_r13.pack(bref)); - HANDLE_CODE(pack_integer(bref, sc_mcch_offset_r13, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(pack_integer(bref, sc_mcch_first_sf_r13, (uint8_t)0u, (uint8_t)9u)); - if (sc_mcch_dur_r13_present) { - HANDLE_CODE(pack_integer(bref, sc_mcch_dur_r13, (uint8_t)2u, (uint8_t)9u)); - } - HANDLE_CODE(sc_mcch_mod_period_r13.pack(bref)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list, 1, 8)); if (ext) { ext_groups_packer_guard group_flags; - group_flags[0] |= br_bcch_cfg_r14.is_present(); - group_flags[0] |= sc_mcch_sched_info_r14.is_present(); - group_flags[0] |= pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present; - group_flags[0] |= pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present; - group_flags[1] |= sc_mcch_repeat_period_v1470_present; - group_flags[1] |= sc_mcch_mod_period_v1470_present; + group_flags[0] |= late_non_crit_ext_present; + group_flags[1] |= inter_freq_carrier_freq_list_v1250.is_present(); + group_flags[1] |= inter_freq_carrier_freq_list_ext_r12.is_present(); + group_flags[2] |= inter_freq_carrier_freq_list_ext_v1280.is_present(); + group_flags[3] |= inter_freq_carrier_freq_list_v1310.is_present(); + group_flags[3] |= inter_freq_carrier_freq_list_ext_v1310.is_present(); + group_flags[4] |= inter_freq_carrier_freq_list_v1350.is_present(); + group_flags[4] |= inter_freq_carrier_freq_list_ext_v1350.is_present(); + group_flags[5] |= inter_freq_carrier_freq_list_ext_v1360.is_present(); + group_flags[6] |= scptm_freq_offset_r14_present; + group_flags[7] |= inter_freq_carrier_freq_list_v1530.is_present(); + group_flags[7] |= inter_freq_carrier_freq_list_ext_v1530.is_present(); + group_flags[7] |= meas_idle_cfg_sib_r15.is_present(); group_flags.pack(bref); if (group_flags[0]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(br_bcch_cfg_r14.is_present(), 1)); - HANDLE_CODE(bref.pack(sc_mcch_sched_info_r14.is_present(), 1)); - HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); - HANDLE_CODE(bref.pack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); - if (br_bcch_cfg_r14.is_present()) { - HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, (uint8_t)1u, (uint8_t)16u)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.pack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.pack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.pack(bref)); - HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(pack_integer(bref, br_bcch_cfg_r14->sc_mcch_offset_br_r14, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.pack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.pack(bref)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1250.is_present(), 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_r12.is_present(), 1)); + if (inter_freq_carrier_freq_list_v1250.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1250, 1, 8)); } - if (sc_mcch_sched_info_r14.is_present()) { - HANDLE_CODE(sc_mcch_sched_info_r14->pack(bref)); + if (inter_freq_carrier_freq_list_ext_r12.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_r12, 1, 8)); } - if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { - HANDLE_CODE(pdsch_max_num_repeat_cemode_a_sc_mtch_r14.pack(bref)); + } + if (group_flags[2]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1280.is_present(), 1)); + if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1280, 1, 8)); } - if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { - HANDLE_CODE(pdsch_max_num_repeat_cemode_b_sc_mtch_r14.pack(bref)); + } + if (group_flags[3]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1310.is_present(), 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1310.is_present(), 1)); + if (inter_freq_carrier_freq_list_v1310.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1310, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1310, 1, 8)); } } - if (group_flags[1]) { + if (group_flags[4]) { varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(sc_mcch_repeat_period_v1470_present, 1)); - HANDLE_CODE(bref.pack(sc_mcch_mod_period_v1470_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1350.is_present(), 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1350.is_present(), 1)); + if (inter_freq_carrier_freq_list_v1350.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1350, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1350, 1, 8)); + } + } + if (group_flags[5]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1360.is_present(), 1)); + if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1360, 1, 8)); + } + } + if (group_flags[6]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(scptm_freq_offset_r14_present, 1)); + if (scptm_freq_offset_r14_present) { + HANDLE_CODE(pack_integer(bref, scptm_freq_offset_r14, (uint8_t)1u, (uint8_t)8u)); + } + } + if (group_flags[7]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1530.is_present(), 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1530.is_present(), 1)); + HANDLE_CODE(bref.pack(meas_idle_cfg_sib_r15.is_present(), 1)); + if (inter_freq_carrier_freq_list_v1530.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1530, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1530, 1, 8)); + } + if (meas_idle_cfg_sib_r15.is_present()) { + HANDLE_CODE(meas_idle_cfg_sib_r15->pack(bref)); + } } } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type20_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type5_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(sc_mcch_dur_r13_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - - HANDLE_CODE(sc_mcch_repeat_period_r13.unpack(bref)); - HANDLE_CODE(unpack_integer(sc_mcch_offset_r13, bref, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(unpack_integer(sc_mcch_first_sf_r13, bref, (uint8_t)0u, (uint8_t)9u)); - if (sc_mcch_dur_r13_present) { - HANDLE_CODE(unpack_integer(sc_mcch_dur_r13, bref, (uint8_t)2u, (uint8_t)9u)); - } - HANDLE_CODE(sc_mcch_mod_period_r13.unpack(bref)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list, bref, 1, 8)); if (ext) { - ext_groups_unpacker_guard group_flags(2); + ext_groups_unpacker_guard group_flags(8); group_flags.unpack(bref); if (group_flags[0]) { varlength_field_unpack_guard varlen_scope(bref, false); - bool br_bcch_cfg_r14_present; - HANDLE_CODE(bref.unpack(br_bcch_cfg_r14_present, 1)); - br_bcch_cfg_r14.set_present(br_bcch_cfg_r14_present); - bool sc_mcch_sched_info_r14_present; - HANDLE_CODE(bref.unpack(sc_mcch_sched_info_r14_present, 1)); - sc_mcch_sched_info_r14.set_present(sc_mcch_sched_info_r14_present); - HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present, 1)); - HANDLE_CODE(bref.unpack(pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present, 1)); - if (br_bcch_cfg_r14.is_present()) { - HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14, bref, (uint8_t)1u, (uint8_t)16u)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.unpack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.unpack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.unpack(bref)); - HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->sc_mcch_carrier_freq_r14, bref, (uint32_t)0u, (uint32_t)262143u)); - HANDLE_CODE(unpack_integer(br_bcch_cfg_r14->sc_mcch_offset_br_r14, bref, (uint8_t)0u, (uint8_t)10u)); - HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.unpack(bref)); - HANDLE_CODE(br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool inter_freq_carrier_freq_list_v1250_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1250_present, 1)); + inter_freq_carrier_freq_list_v1250.set_present(inter_freq_carrier_freq_list_v1250_present); + bool inter_freq_carrier_freq_list_ext_r12_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_r12_present, 1)); + inter_freq_carrier_freq_list_ext_r12.set_present(inter_freq_carrier_freq_list_ext_r12_present); + if (inter_freq_carrier_freq_list_v1250.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1250, bref, 1, 8)); } - if (sc_mcch_sched_info_r14.is_present()) { - HANDLE_CODE(sc_mcch_sched_info_r14->unpack(bref)); + if (inter_freq_carrier_freq_list_ext_r12.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_r12, bref, 1, 8)); } - if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { - HANDLE_CODE(pdsch_max_num_repeat_cemode_a_sc_mtch_r14.unpack(bref)); + } + if (group_flags[2]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool inter_freq_carrier_freq_list_ext_v1280_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1280_present, 1)); + inter_freq_carrier_freq_list_ext_v1280.set_present(inter_freq_carrier_freq_list_ext_v1280_present); + if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1280, bref, 1, 8)); } - if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { - HANDLE_CODE(pdsch_max_num_repeat_cemode_b_sc_mtch_r14.unpack(bref)); + } + if (group_flags[3]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool inter_freq_carrier_freq_list_v1310_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1310_present, 1)); + inter_freq_carrier_freq_list_v1310.set_present(inter_freq_carrier_freq_list_v1310_present); + bool inter_freq_carrier_freq_list_ext_v1310_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1310_present, 1)); + inter_freq_carrier_freq_list_ext_v1310.set_present(inter_freq_carrier_freq_list_ext_v1310_present); + if (inter_freq_carrier_freq_list_v1310.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1310, bref, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1310, bref, 1, 8)); } } - if (group_flags[1]) { + if (group_flags[4]) { varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.unpack(sc_mcch_repeat_period_v1470_present, 1)); - HANDLE_CODE(bref.unpack(sc_mcch_mod_period_v1470_present, 1)); + bool inter_freq_carrier_freq_list_v1350_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1350_present, 1)); + inter_freq_carrier_freq_list_v1350.set_present(inter_freq_carrier_freq_list_v1350_present); + bool inter_freq_carrier_freq_list_ext_v1350_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1350_present, 1)); + inter_freq_carrier_freq_list_ext_v1350.set_present(inter_freq_carrier_freq_list_ext_v1350_present); + if (inter_freq_carrier_freq_list_v1350.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1350, bref, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1350, bref, 1, 8)); + } + } + if (group_flags[5]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool inter_freq_carrier_freq_list_ext_v1360_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1360_present, 1)); + inter_freq_carrier_freq_list_ext_v1360.set_present(inter_freq_carrier_freq_list_ext_v1360_present); + if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1360, bref, 1, 8)); + } + } + if (group_flags[6]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.unpack(scptm_freq_offset_r14_present, 1)); + if (scptm_freq_offset_r14_present) { + HANDLE_CODE(unpack_integer(scptm_freq_offset_r14, bref, (uint8_t)1u, (uint8_t)8u)); + } + } + if (group_flags[7]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool inter_freq_carrier_freq_list_v1530_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1530_present, 1)); + inter_freq_carrier_freq_list_v1530.set_present(inter_freq_carrier_freq_list_v1530_present); + bool inter_freq_carrier_freq_list_ext_v1530_present; + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1530_present, 1)); + inter_freq_carrier_freq_list_ext_v1530.set_present(inter_freq_carrier_freq_list_ext_v1530_present); + bool meas_idle_cfg_sib_r15_present; + HANDLE_CODE(bref.unpack(meas_idle_cfg_sib_r15_present, 1)); + meas_idle_cfg_sib_r15.set_present(meas_idle_cfg_sib_r15_present); + if (inter_freq_carrier_freq_list_v1530.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1530, bref, 1, 8)); + } + if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1530, bref, 1, 8)); + } + if (meas_idle_cfg_sib_r15.is_present()) { + HANDLE_CODE(meas_idle_cfg_sib_r15->unpack(bref)); + } } } return SRSASN_SUCCESS; } -void sib_type20_r13_s::to_json(json_writer& j) const +void sib_type5_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("sc-mcch-RepetitionPeriod-r13", sc_mcch_repeat_period_r13.to_string()); - j.write_int("sc-mcch-Offset-r13", sc_mcch_offset_r13); - j.write_int("sc-mcch-FirstSubframe-r13", sc_mcch_first_sf_r13); - if (sc_mcch_dur_r13_present) { - j.write_int("sc-mcch-duration-r13", sc_mcch_dur_r13); - } - j.write_str("sc-mcch-ModificationPeriod-r13", sc_mcch_mod_period_r13.to_string()); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + j.start_array("interFreqCarrierFreqList"); + for (const auto& e1 : inter_freq_carrier_freq_list) { + e1.to_json(j); } + j.end_array(); if (ext) { - if (br_bcch_cfg_r14.is_present()) { - j.write_fieldname("br-BCCH-Config-r14"); - j.start_obj(); - j.write_str("dummy", "rf1"); - j.write_str("dummy2", "rf1"); - j.write_int("mpdcch-Narrowband-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_nb_sc_mcch_r14); - j.write_str("mpdcch-NumRepetition-SC-MCCH-r14", br_bcch_cfg_r14->mpdcch_num_repeat_sc_mcch_r14.to_string()); - j.write_fieldname("mpdcch-StartSF-SC-MCCH-r14"); - br_bcch_cfg_r14->mpdcch_start_sf_sc_mcch_r14.to_json(j); - j.write_str("mpdcch-PDSCH-HoppingConfig-SC-MCCH-r14", - br_bcch_cfg_r14->mpdcch_pdsch_hop_cfg_sc_mcch_r14.to_string()); - j.write_int("sc-mcch-CarrierFreq-r14", br_bcch_cfg_r14->sc_mcch_carrier_freq_r14); - j.write_int("sc-mcch-Offset-BR-r14", br_bcch_cfg_r14->sc_mcch_offset_br_r14); - j.write_str("sc-mcch-RepetitionPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_repeat_period_br_r14.to_string()); - j.write_str("sc-mcch-ModificationPeriod-BR-r14", br_bcch_cfg_r14->sc_mcch_mod_period_br_r14.to_string()); - j.end_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - if (sc_mcch_sched_info_r14.is_present()) { - j.write_fieldname("sc-mcch-SchedulingInfo-r14"); - sc_mcch_sched_info_r14->to_json(j); + if (inter_freq_carrier_freq_list_v1250.is_present()) { + j.start_array("interFreqCarrierFreqList-v1250"); + for (const auto& e1 : *inter_freq_carrier_freq_list_v1250) { + e1.to_json(j); + } + j.end_array(); } - if (pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present) { - j.write_str("pdsch-maxNumRepetitionCEmodeA-SC-MTCH-r14", pdsch_max_num_repeat_cemode_a_sc_mtch_r14.to_string()); + if (inter_freq_carrier_freq_list_ext_r12.is_present()) { + j.start_array("interFreqCarrierFreqListExt-r12"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_r12) { + e1.to_json(j); + } + j.end_array(); } - if (pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present) { - j.write_str("pdsch-maxNumRepetitionCEmodeB-SC-MTCH-r14", pdsch_max_num_repeat_cemode_b_sc_mtch_r14.to_string()); + if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { + j.start_array("interFreqCarrierFreqListExt-v1280"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1280) { + e1.to_json(j); + } + j.end_array(); } - if (sc_mcch_repeat_period_v1470_present) { - j.write_str("sc-mcch-RepetitionPeriod-v1470", "rf1"); + if (inter_freq_carrier_freq_list_v1310.is_present()) { + j.start_array("interFreqCarrierFreqList-v1310"); + for (const auto& e1 : *inter_freq_carrier_freq_list_v1310) { + e1.to_json(j); + } + j.end_array(); } - if (sc_mcch_mod_period_v1470_present) { - j.write_str("sc-mcch-ModificationPeriod-v1470", "rf1"); + if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { + j.start_array("interFreqCarrierFreqListExt-v1310"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1310) { + e1.to_json(j); + } + j.end_array(); + } + if (inter_freq_carrier_freq_list_v1350.is_present()) { + j.start_array("interFreqCarrierFreqList-v1350"); + for (const auto& e1 : *inter_freq_carrier_freq_list_v1350) { + e1.to_json(j); + } + j.end_array(); + } + if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { + j.start_array("interFreqCarrierFreqListExt-v1350"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1350) { + e1.to_json(j); + } + j.end_array(); + } + if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { + j.start_array("interFreqCarrierFreqListExt-v1360"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1360) { + e1.to_json(j); + } + j.end_array(); + } + if (scptm_freq_offset_r14_present) { + j.write_int("scptm-FreqOffset-r14", scptm_freq_offset_r14); + } + if (inter_freq_carrier_freq_list_v1530.is_present()) { + j.start_array("interFreqCarrierFreqList-v1530"); + for (const auto& e1 : *inter_freq_carrier_freq_list_v1530) { + e1.to_json(j); + } + j.end_array(); + } + if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { + j.start_array("interFreqCarrierFreqListExt-v1530"); + for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1530) { + e1.to_json(j); + } + j.end_array(); + } + if (meas_idle_cfg_sib_r15.is_present()) { + j.write_fieldname("measIdleConfigSIB-r15"); + meas_idle_cfg_sib_r15->to_json(j); } } j.end_obj(); } -std::string sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_string() const -{ - static const char* options[] = {"rf2", "rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf256"}; - return convert_enum_idx(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); -} -uint16_t sib_type20_r13_s::sc_mcch_repeat_period_r13_opts::to_number() const -{ - static const uint16_t options[] = {2, 4, 8, 16, 32, 64, 128, 256}; - return map_enum_number(options, 8, value, "sib_type20_r13_s::sc_mcch_repeat_period_r13_e_"); -} - -std::string sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_string() const +// SystemInformationBlockType6 ::= SEQUENCE +SRSASN_CODE sib_type6_s::pack(bit_ref& bref) const { - static const char* options[] = {"rf2", - "rf4", - "rf8", - "rf16", - "rf32", - "rf64", - "rf128", - "rf256", - "rf512", - "rf1024", - "r2048", - "rf4096", - "rf8192", - "rf16384", - "rf32768", - "rf65536"}; - return convert_enum_idx(options, 16, value, "sib_type20_r13_s::sc_mcch_mod_period_r13_e_"); -} -uint32_t sib_type20_r13_s::sc_mcch_mod_period_r13_opts::to_number() const -{ - static const uint32_t options[] = {2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536}; - return map_enum_number(options, 16, value, "sib_type20_r13_s::sc_mcch_mod_period_r13_e_"); -} - -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_string() const -{ - static const char* options[] = {"r1", "r2", "r4", "r8", "r16", "r32", "r64", "r128", "r256"}; - return convert_enum_idx(options, 9, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_e_"); -} -uint16_t sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_opts::to_number() const -{ - static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256}; - return map_enum_number(options, 9, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_num_repeat_sc_mcch_r14_e_"); -} + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_present, 1)); + HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_present, 1)); + HANDLE_CODE(bref.pack(t_resel_utra_sf_present, 1)); -void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::destroy_() {} -void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::set(types::options e) -{ - destroy_(); - type_ = e; -} -sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::mpdcch_start_sf_sc_mcch_r14_c_( - const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::fdd_r14: - c.init(other.c.get()); - break; - case types::tdd_r14: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); + if (carrier_freq_list_utra_fdd_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd, 1, 16)); } -} -sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& -sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::operator=( - const sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_& other) -{ - if (this == &other) { - return *this; + if (carrier_freq_list_utra_tdd_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_tdd, 1, 16)); } - set(other.type()); - switch (type_) { - case types::fdd_r14: - c.set(other.c.get()); - break; - case types::tdd_r14: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); + HANDLE_CODE(pack_integer(bref, t_resel_utra, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_utra_sf_present) { + HANDLE_CODE(t_resel_utra_sf.pack(bref)); } - return *this; -} -void sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::fdd_r14: - j.write_str("fdd-r14", c.get().to_string()); - break; - case types::tdd_r14: - j.write_str("tdd-r14", c.get().to_string()); - break; - default: - log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); - } - j.end_obj(); -} -SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::fdd_r14: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::tdd_r14: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= late_non_crit_ext_present; + group_flags[1] |= carrier_freq_list_utra_fdd_v1250.is_present(); + group_flags[1] |= carrier_freq_list_utra_tdd_v1250.is_present(); + group_flags[1] |= carrier_freq_list_utra_fdd_ext_r12.is_present(); + group_flags[1] |= carrier_freq_list_utra_tdd_ext_r12.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v1250.is_present(), 1)); + HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_v1250.is_present(), 1)); + HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_ext_r12.is_present(), 1)); + HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_ext_r12.is_present(), 1)); + if (carrier_freq_list_utra_fdd_v1250.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_v1250, 1, 16)); + } + if (carrier_freq_list_utra_tdd_v1250.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_v1250, 1, 16)); + } + if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_ext_r12, 1, 16)); + } + if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_ext_r12, 1, 16)); + } + } } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::unpack(cbit_ref& bref) +SRSASN_CODE sib_type6_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::fdd_r14: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::tdd_r14: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_"); - return SRSASN_ERROR_DECODE_FAIL; + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_present, 1)); + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_utra_sf_present, 1)); + + if (carrier_freq_list_utra_fdd_present) { + HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd, bref, 1, 16)); + } + if (carrier_freq_list_utra_tdd_present) { + HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_tdd, bref, 1, 16)); + } + HANDLE_CODE(unpack_integer(t_resel_utra, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_utra_sf_present) { + HANDLE_CODE(t_resel_utra_sf.unpack(bref)); } - return SRSASN_SUCCESS; -} -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_string() const -{ - static const char* options[] = {"v1", "v1dot5", "v2", "v2dot5", "v4", "v5", "v8", "v10"}; - return convert_enum_idx( - options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); -} -float sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number() const -{ - static const float options[] = {1.0, 1.5, 2.0, 2.5, 4.0, 5.0, 8.0, 10.0}; - return map_enum_number( - options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); -} -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_opts::to_number_string() const -{ - static const char* options[] = {"1", "1.5", "2", "2.5", "4", "5", "8", "10"}; - return convert_enum_idx( - options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::fdd_r14_e_"); -} + if (ext) { + ext_groups_unpacker_guard group_flags(2); + group_flags.unpack(bref); -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_string() const -{ - static const char* options[] = {"v1", "v2", "v4", "v5", "v8", "v10", "v20"}; - return convert_enum_idx( - options, 7, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_"); -} -uint8_t sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_opts::to_number() const -{ - static const uint8_t options[] = {1, 2, 4, 5, 8, 10, 20}; - return map_enum_number( - options, 7, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_start_sf_sc_mcch_r14_c_::tdd_r14_e_"); -} + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts::to_string() const -{ - static const char* options[] = {"off", "ce-ModeA", "ce-ModeB"}; - return convert_enum_idx( - options, 3, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_"); -} + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_string() const -{ - static const char* options[] = {"rf32", "rf128", "rf512", "rf1024", "rf2048", "rf4096", "rf8192", "rf16384"}; - return convert_enum_idx(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); + bool carrier_freq_list_utra_fdd_v1250_present; + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v1250_present, 1)); + carrier_freq_list_utra_fdd_v1250.set_present(carrier_freq_list_utra_fdd_v1250_present); + bool carrier_freq_list_utra_tdd_v1250_present; + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_v1250_present, 1)); + carrier_freq_list_utra_tdd_v1250.set_present(carrier_freq_list_utra_tdd_v1250_present); + bool carrier_freq_list_utra_fdd_ext_r12_present; + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_ext_r12_present, 1)); + carrier_freq_list_utra_fdd_ext_r12.set_present(carrier_freq_list_utra_fdd_ext_r12_present); + bool carrier_freq_list_utra_tdd_ext_r12_present; + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_ext_r12_present, 1)); + carrier_freq_list_utra_tdd_ext_r12.set_present(carrier_freq_list_utra_tdd_ext_r12_present); + if (carrier_freq_list_utra_fdd_v1250.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_v1250, bref, 1, 16)); + } + if (carrier_freq_list_utra_tdd_v1250.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_v1250, bref, 1, 16)); + } + if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_ext_r12, bref, 1, 16)); + } + if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_ext_r12, bref, 1, 16)); + } + } + } + return SRSASN_SUCCESS; } -uint16_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_opts::to_number() const -{ - static const uint16_t options[] = {32, 128, 512, 1024, 2048, 4096, 8192, 16384}; - return map_enum_number(options, 8, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_repeat_period_br_r14_e_"); -} - -std::string sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_string() const -{ - static const char* options[] = {"rf32", - "rf128", - "rf256", - "rf512", - "rf1024", - "rf2048", - "rf4096", - "rf8192", - "rf16384", - "rf32768", - "rf65536", - "rf131072", - "rf262144", - "rf524288", - "rf1048576"}; - return convert_enum_idx(options, 15, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_e_"); -} -uint32_t sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_opts::to_number() const -{ - static const uint32_t options[] = { - 32, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576}; - return map_enum_number(options, 15, value, "sib_type20_r13_s::br_bcch_cfg_r14_s_::sc_mcch_mod_period_br_r14_e_"); -} - -std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_string() const -{ - static const char* options[] = {"r16", "r32"}; - return convert_enum_idx(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); -} -uint8_t sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts::to_number() const -{ - static const uint8_t options[] = {16, 32}; - return map_enum_number(options, 2, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_"); -} - -std::string sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_string() const -{ - static const char* options[] = {"r192", "r256", "r384", "r512", "r768", "r1024", "r1536", "r2048"}; - return convert_enum_idx(options, 8, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_"); -} -uint16_t sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts::to_number() const -{ - static const uint16_t options[] = {192, 256, 384, 512, 768, 1024, 1536, 2048}; - return map_enum_number(options, 8, value, "sib_type20_r13_s::pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_"); -} - -// SystemInformationBlockType21-r14 ::= SEQUENCE -SRSASN_CODE sib_type21_r14_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(sl_v2x_cfg_common_r14_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (sl_v2x_cfg_common_r14_present) { - HANDLE_CODE(sl_v2x_cfg_common_r14.pack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type21_r14_s::unpack(cbit_ref& bref) +void sib_type6_s::to_json(json_writer& j) const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(sl_v2x_cfg_common_r14_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - - if (sl_v2x_cfg_common_r14_present) { - HANDLE_CODE(sl_v2x_cfg_common_r14.unpack(bref)); + j.start_obj(); + if (carrier_freq_list_utra_fdd_present) { + j.start_array("carrierFreqListUTRA-FDD"); + for (const auto& e1 : carrier_freq_list_utra_fdd) { + e1.to_json(j); + } + j.end_array(); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (carrier_freq_list_utra_tdd_present) { + j.start_array("carrierFreqListUTRA-TDD"); + for (const auto& e1 : carrier_freq_list_utra_tdd) { + e1.to_json(j); + } + j.end_array(); } - - return SRSASN_SUCCESS; -} -void sib_type21_r14_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (sl_v2x_cfg_common_r14_present) { - j.write_fieldname("sl-V2X-ConfigCommon-r14"); - sl_v2x_cfg_common_r14.to_json(j); + j.write_int("t-ReselectionUTRA", t_resel_utra); + if (t_resel_utra_sf_present) { + j.write_fieldname("t-ReselectionUTRA-SF"); + t_resel_utra_sf.to_json(j); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (carrier_freq_list_utra_fdd_v1250.is_present()) { + j.start_array("carrierFreqListUTRA-FDD-v1250"); + for (const auto& e1 : *carrier_freq_list_utra_fdd_v1250) { + e1.to_json(j); + } + j.end_array(); + } + if (carrier_freq_list_utra_tdd_v1250.is_present()) { + j.start_array("carrierFreqListUTRA-TDD-v1250"); + for (const auto& e1 : *carrier_freq_list_utra_tdd_v1250) { + e1.to_json(j); + } + j.end_array(); + } + if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { + j.start_array("carrierFreqListUTRA-FDD-Ext-r12"); + for (const auto& e1 : *carrier_freq_list_utra_fdd_ext_r12) { + e1.to_json(j); + } + j.end_array(); + } + if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { + j.start_array("carrierFreqListUTRA-TDD-Ext-r12"); + for (const auto& e1 : *carrier_freq_list_utra_tdd_ext_r12) { + e1.to_json(j); + } + j.end_array(); + } } j.end_obj(); } -// SystemInformationBlockType24-r15 ::= SEQUENCE -SRSASN_CODE sib_type24_r15_s::pack(bit_ref& bref) const +// SystemInformationBlockType7 ::= SEQUENCE +SRSASN_CODE sib_type7_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(carrier_freq_list_nr_r15_present, 1)); - HANDLE_CODE(bref.pack(t_resel_nr_sf_r15_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(t_resel_geran_sf_present, 1)); + HANDLE_CODE(bref.pack(carrier_freqs_info_list_present, 1)); - if (carrier_freq_list_nr_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_nr_r15, 1, 8)); - } - HANDLE_CODE(pack_integer(bref, t_resel_nr_r15, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_nr_sf_r15_present) { - HANDLE_CODE(t_resel_nr_sf_r15.pack(bref)); + HANDLE_CODE(pack_integer(bref, t_resel_geran, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_geran_sf_present) { + HANDLE_CODE(t_resel_geran_sf.pack(bref)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (carrier_freqs_info_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freqs_info_list, 1, 16)); } + if (ext) { + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type24_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type7_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(carrier_freq_list_nr_r15_present, 1)); - HANDLE_CODE(bref.unpack(t_resel_nr_sf_r15_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(t_resel_geran_sf_present, 1)); + HANDLE_CODE(bref.unpack(carrier_freqs_info_list_present, 1)); - if (carrier_freq_list_nr_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_nr_r15, bref, 1, 8)); - } - HANDLE_CODE(unpack_integer(t_resel_nr_r15, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_nr_sf_r15_present) { - HANDLE_CODE(t_resel_nr_sf_r15.unpack(bref)); + HANDLE_CODE(unpack_integer(t_resel_geran, bref, (uint8_t)0u, (uint8_t)7u)); + if (t_resel_geran_sf_present) { + HANDLE_CODE(t_resel_geran_sf.unpack(bref)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (carrier_freqs_info_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(carrier_freqs_info_list, bref, 1, 16)); } + if (ext) { + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + } return SRSASN_SUCCESS; } -void sib_type24_r15_s::to_json(json_writer& j) const +void sib_type7_s::to_json(json_writer& j) const { j.start_obj(); - if (carrier_freq_list_nr_r15_present) { - j.start_array("carrierFreqListNR-r15"); - for (const auto& e1 : carrier_freq_list_nr_r15) { + j.write_int("t-ReselectionGERAN", t_resel_geran); + if (t_resel_geran_sf_present) { + j.write_fieldname("t-ReselectionGERAN-SF"); + t_resel_geran_sf.to_json(j); + } + if (carrier_freqs_info_list_present) { + j.start_array("carrierFreqsInfoList"); + for (const auto& e1 : carrier_freqs_info_list) { e1.to_json(j); } j.end_array(); } - j.write_int("t-ReselectionNR-r15", t_resel_nr_r15); - if (t_resel_nr_sf_r15_present) { - j.write_fieldname("t-ReselectionNR-SF-r15"); - t_resel_nr_sf_r15.to_json(j); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } } j.end_obj(); } -// SystemInformationBlockType25-r15 ::= SEQUENCE -SRSASN_CODE sib_type25_r15_s::pack(bit_ref& bref) const +// SystemInformationBlockType8 ::= SEQUENCE +SRSASN_CODE sib_type8_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(uac_barr_for_common_r15_present, 1)); - HANDLE_CODE(bref.pack(uac_barr_per_plmn_list_r15_present, 1)); - HANDLE_CODE(bref.pack(uac_ac1_select_assist_info_r15_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(sys_time_info_present, 1)); + HANDLE_CODE(bref.pack(search_win_size_present, 1)); + HANDLE_CODE(bref.pack(params_hrpd_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt_present, 1)); - if (uac_barr_for_common_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_for_common_r15, 1, 63)); - } - if (uac_barr_per_plmn_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_per_plmn_list_r15, 1, 6)); + if (sys_time_info_present) { + HANDLE_CODE(sys_time_info.pack(bref)); } - HANDLE_CODE(pack_dyn_seq_of(bref, uac_barr_info_set_list_r15, 1, 8)); - if (uac_ac1_select_assist_info_r15_present) { - HANDLE_CODE(uac_ac1_select_assist_info_r15.pack(bref)); + if (search_win_size_present) { + HANDLE_CODE(pack_integer(bref, search_win_size, (uint8_t)0u, (uint8_t)15u)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (params_hrpd_present) { + HANDLE_CODE(bref.pack(params_hrpd.cell_resel_params_hrpd_present, 1)); + HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.pack(bref)); + if (params_hrpd.cell_resel_params_hrpd_present) { + HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.pack(bref)); + } } - - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type25_r15_s::unpack(cbit_ref& bref) + if (params1_xrtt_present) { + HANDLE_CODE(bref.pack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt.long_code_state1_xrtt_present, 1)); + HANDLE_CODE(bref.pack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); + if (params1_xrtt.csfb_regist_param1_xrtt_present) { + HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.pack(bref)); + } + if (params1_xrtt.long_code_state1_xrtt_present) { + HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.pack(bref)); + } + if (params1_xrtt.cell_resel_params1_xrtt_present) { + HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.pack(bref)); + } + } + + if (ext) { + ext_groups_packer_guard group_flags; + group_flags[0] |= late_non_crit_ext_present; + group_flags[1] |= csfb_support_for_dual_rx_ues_r9_present; + group_flags[1] |= cell_resel_params_hrpd_v920.is_present(); + group_flags[1] |= cell_resel_params1_xrtt_v920.is_present(); + group_flags[1] |= csfb_regist_param1_xrtt_v920.is_present(); + group_flags[1] |= ac_barr_cfg1_xrtt_r9.is_present(); + group_flags[2] |= csfb_dual_rx_tx_support_r10_present; + group_flags[3] |= sib8_per_plmn_list_r11.is_present(); + group_flags.pack(bref); + + if (group_flags[0]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9_present, 1)); + HANDLE_CODE(bref.pack(cell_resel_params_hrpd_v920.is_present(), 1)); + HANDLE_CODE(bref.pack(cell_resel_params1_xrtt_v920.is_present(), 1)); + HANDLE_CODE(bref.pack(csfb_regist_param1_xrtt_v920.is_present(), 1)); + HANDLE_CODE(bref.pack(ac_barr_cfg1_xrtt_r9.is_present(), 1)); + if (csfb_support_for_dual_rx_ues_r9_present) { + HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9, 1)); + } + if (cell_resel_params_hrpd_v920.is_present()) { + HANDLE_CODE(cell_resel_params_hrpd_v920->pack(bref)); + } + if (cell_resel_params1_xrtt_v920.is_present()) { + HANDLE_CODE(cell_resel_params1_xrtt_v920->pack(bref)); + } + if (csfb_regist_param1_xrtt_v920.is_present()) { + HANDLE_CODE(csfb_regist_param1_xrtt_v920->pack(bref)); + } + if (ac_barr_cfg1_xrtt_r9.is_present()) { + HANDLE_CODE(ac_barr_cfg1_xrtt_r9->pack(bref)); + } + } + if (group_flags[2]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(csfb_dual_rx_tx_support_r10_present, 1)); + } + if (group_flags[3]) { + varlength_field_pack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.pack(sib8_per_plmn_list_r11.is_present(), 1)); + if (sib8_per_plmn_list_r11.is_present()) { + HANDLE_CODE(pack_dyn_seq_of(bref, *sib8_per_plmn_list_r11, 1, 6)); + } + } + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type8_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(uac_barr_for_common_r15_present, 1)); - HANDLE_CODE(bref.unpack(uac_barr_per_plmn_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(uac_ac1_select_assist_info_r15_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(sys_time_info_present, 1)); + HANDLE_CODE(bref.unpack(search_win_size_present, 1)); + HANDLE_CODE(bref.unpack(params_hrpd_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt_present, 1)); - if (uac_barr_for_common_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(uac_barr_for_common_r15, bref, 1, 63)); + if (sys_time_info_present) { + HANDLE_CODE(sys_time_info.unpack(bref)); } - if (uac_barr_per_plmn_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(uac_barr_per_plmn_list_r15, bref, 1, 6)); + if (search_win_size_present) { + HANDLE_CODE(unpack_integer(search_win_size, bref, (uint8_t)0u, (uint8_t)15u)); } - HANDLE_CODE(unpack_dyn_seq_of(uac_barr_info_set_list_r15, bref, 1, 8)); - if (uac_ac1_select_assist_info_r15_present) { - HANDLE_CODE(uac_ac1_select_assist_info_r15.unpack(bref)); + if (params_hrpd_present) { + HANDLE_CODE(bref.unpack(params_hrpd.cell_resel_params_hrpd_present, 1)); + HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.unpack(bref)); + if (params_hrpd.cell_resel_params_hrpd_present) { + HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.unpack(bref)); + } } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (params1_xrtt_present) { + HANDLE_CODE(bref.unpack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt.long_code_state1_xrtt_present, 1)); + HANDLE_CODE(bref.unpack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); + if (params1_xrtt.csfb_regist_param1_xrtt_present) { + HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.unpack(bref)); + } + if (params1_xrtt.long_code_state1_xrtt_present) { + HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.unpack(bref)); + } + if (params1_xrtt.cell_resel_params1_xrtt_present) { + HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.unpack(bref)); + } } + if (ext) { + ext_groups_unpacker_guard group_flags(4); + group_flags.unpack(bref); + + if (group_flags[0]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + } + if (group_flags[1]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9_present, 1)); + bool cell_resel_params_hrpd_v920_present; + HANDLE_CODE(bref.unpack(cell_resel_params_hrpd_v920_present, 1)); + cell_resel_params_hrpd_v920.set_present(cell_resel_params_hrpd_v920_present); + bool cell_resel_params1_xrtt_v920_present; + HANDLE_CODE(bref.unpack(cell_resel_params1_xrtt_v920_present, 1)); + cell_resel_params1_xrtt_v920.set_present(cell_resel_params1_xrtt_v920_present); + bool csfb_regist_param1_xrtt_v920_present; + HANDLE_CODE(bref.unpack(csfb_regist_param1_xrtt_v920_present, 1)); + csfb_regist_param1_xrtt_v920.set_present(csfb_regist_param1_xrtt_v920_present); + bool ac_barr_cfg1_xrtt_r9_present; + HANDLE_CODE(bref.unpack(ac_barr_cfg1_xrtt_r9_present, 1)); + ac_barr_cfg1_xrtt_r9.set_present(ac_barr_cfg1_xrtt_r9_present); + if (csfb_support_for_dual_rx_ues_r9_present) { + HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9, 1)); + } + if (cell_resel_params_hrpd_v920.is_present()) { + HANDLE_CODE(cell_resel_params_hrpd_v920->unpack(bref)); + } + if (cell_resel_params1_xrtt_v920.is_present()) { + HANDLE_CODE(cell_resel_params1_xrtt_v920->unpack(bref)); + } + if (csfb_regist_param1_xrtt_v920.is_present()) { + HANDLE_CODE(csfb_regist_param1_xrtt_v920->unpack(bref)); + } + if (ac_barr_cfg1_xrtt_r9.is_present()) { + HANDLE_CODE(ac_barr_cfg1_xrtt_r9->unpack(bref)); + } + } + if (group_flags[2]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + HANDLE_CODE(bref.unpack(csfb_dual_rx_tx_support_r10_present, 1)); + } + if (group_flags[3]) { + varlength_field_unpack_guard varlen_scope(bref, false); + + bool sib8_per_plmn_list_r11_present; + HANDLE_CODE(bref.unpack(sib8_per_plmn_list_r11_present, 1)); + sib8_per_plmn_list_r11.set_present(sib8_per_plmn_list_r11_present); + if (sib8_per_plmn_list_r11.is_present()) { + HANDLE_CODE(unpack_dyn_seq_of(*sib8_per_plmn_list_r11, bref, 1, 6)); + } + } + } return SRSASN_SUCCESS; } -void sib_type25_r15_s::to_json(json_writer& j) const +void sib_type8_s::to_json(json_writer& j) const { j.start_obj(); - if (uac_barr_for_common_r15_present) { - j.start_array("uac-BarringForCommon-r15"); - for (const auto& e1 : uac_barr_for_common_r15) { - e1.to_json(j); - } - j.end_array(); + if (sys_time_info_present) { + j.write_fieldname("systemTimeInfo"); + sys_time_info.to_json(j); } - if (uac_barr_per_plmn_list_r15_present) { - j.start_array("uac-BarringPerPLMN-List-r15"); - for (const auto& e1 : uac_barr_per_plmn_list_r15) { - e1.to_json(j); - } - j.end_array(); + if (search_win_size_present) { + j.write_int("searchWindowSize", search_win_size); } - j.start_array("uac-BarringInfoSetList-r15"); - for (const auto& e1 : uac_barr_info_set_list_r15) { - e1.to_json(j); + if (params_hrpd_present) { + j.write_fieldname("parametersHRPD"); + j.start_obj(); + j.write_fieldname("preRegistrationInfoHRPD"); + params_hrpd.pre_regist_info_hrpd.to_json(j); + if (params_hrpd.cell_resel_params_hrpd_present) { + j.write_fieldname("cellReselectionParametersHRPD"); + params_hrpd.cell_resel_params_hrpd.to_json(j); + } + j.end_obj(); } - j.end_array(); - if (uac_ac1_select_assist_info_r15_present) { - j.write_fieldname("uac-AC1-SelectAssistInfo-r15"); - uac_ac1_select_assist_info_r15.to_json(j); + if (params1_xrtt_present) { + j.write_fieldname("parameters1XRTT"); + j.start_obj(); + if (params1_xrtt.csfb_regist_param1_xrtt_present) { + j.write_fieldname("csfb-RegistrationParam1XRTT"); + params1_xrtt.csfb_regist_param1_xrtt.to_json(j); + } + if (params1_xrtt.long_code_state1_xrtt_present) { + j.write_str("longCodeState1XRTT", params1_xrtt.long_code_state1_xrtt.to_string()); + } + if (params1_xrtt.cell_resel_params1_xrtt_present) { + j.write_fieldname("cellReselectionParameters1XRTT"); + params1_xrtt.cell_resel_params1_xrtt.to_json(j); + } + j.end_obj(); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (ext) { + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (csfb_support_for_dual_rx_ues_r9_present) { + j.write_bool("csfb-SupportForDualRxUEs-r9", csfb_support_for_dual_rx_ues_r9); + } + if (cell_resel_params_hrpd_v920.is_present()) { + j.write_fieldname("cellReselectionParametersHRPD-v920"); + cell_resel_params_hrpd_v920->to_json(j); + } + if (cell_resel_params1_xrtt_v920.is_present()) { + j.write_fieldname("cellReselectionParameters1XRTT-v920"); + cell_resel_params1_xrtt_v920->to_json(j); + } + if (csfb_regist_param1_xrtt_v920.is_present()) { + j.write_fieldname("csfb-RegistrationParam1XRTT-v920"); + csfb_regist_param1_xrtt_v920->to_json(j); + } + if (ac_barr_cfg1_xrtt_r9.is_present()) { + j.write_fieldname("ac-BarringConfig1XRTT-r9"); + ac_barr_cfg1_xrtt_r9->to_json(j); + } + if (csfb_dual_rx_tx_support_r10_present) { + j.write_str("csfb-DualRxTxSupport-r10", "true"); + } + if (sib8_per_plmn_list_r11.is_present()) { + j.start_array("sib8-PerPLMN-List-r11"); + for (const auto& e1 : *sib8_per_plmn_list_r11) { + e1.to_json(j); + } + j.end_array(); + } } j.end_obj(); } -void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::destroy_() -{ - switch (type_) { - case types::individual_plmn_list_r15: - c.destroy(); - break; - default: - break; - } -} -void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::plmn_common_r15: - break; - case types::individual_plmn_list_r15: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - } -} -sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::uac_ac1_select_assist_info_r15_c_( - const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::plmn_common_r15: - c.init(other.c.get()); - break; - case types::individual_plmn_list_r15: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - } -} -sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::operator=( - const sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::plmn_common_r15: - c.set(other.c.get()); - break; - case types::individual_plmn_list_r15: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - } - - return *this; -} -void sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::plmn_common_r15: - j.write_str("plmnCommon-r15", c.get().to_string()); - break; - case types::individual_plmn_list_r15: - j.start_array("individualPLMNList-r15"); - for (const auto& e1 : c.get()) { - j.write_str(e1.to_string()); - } - j.end_array(); - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - } - j.end_obj(); -} -SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::plmn_common_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::individual_plmn_list_r15: - HANDLE_CODE(pack_dyn_seq_of(bref, c.get(), 2, 6)); - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::plmn_common_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::individual_plmn_list_r15: - HANDLE_CODE(unpack_dyn_seq_of(c.get(), bref, 2, 6)); - break; - default: - log_invalid_choice_id(type_, "sib_type25_r15_s::uac_ac1_select_assist_info_r15_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -// SystemInformationBlockType26-r15 ::= SEQUENCE -SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const +// SystemInformationBlockType9 ::= SEQUENCE +SRSASN_CODE sib_type9_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(v2x_inter_freq_info_list_r15_present, 1)); - HANDLE_CODE(bref.pack(cbr_pssch_tx_cfg_list_r15_present, 1)); - HANDLE_CODE(bref.pack(v2x_packet_dupl_cfg_r15_present, 1)); - HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1)); - HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1)); - HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1)); - HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r15_present, 1)); + HANDLE_CODE(bref.pack(hnb_name_present, 1)); - if (v2x_inter_freq_info_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r15, 0, 7)); - } - if (cbr_pssch_tx_cfg_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, cbr_pssch_tx_cfg_list_r15, 1, 8)); - } - if (v2x_packet_dupl_cfg_r15_present) { - HANDLE_CODE(v2x_packet_dupl_cfg_r15.pack(bref)); - } - if (sync_freq_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, sync_freq_list_r15, 1, 8, integer_packer(0, 262143))); - } - if (v2x_freq_sel_cfg_list_r15_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, v2x_freq_sel_cfg_list_r15, 1, 8)); - } - if (thresh_s_rssi_cbr_r15_present) { - HANDLE_CODE(pack_integer(bref, thresh_s_rssi_cbr_r15, (uint8_t)0u, (uint8_t)45u)); + if (hnb_name_present) { + HANDLE_CODE(hnb_name.pack(bref)); } if (ext) { @@ -7397,34 +7633,13 @@ SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type9_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(v2x_inter_freq_info_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(cbr_pssch_tx_cfg_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(v2x_packet_dupl_cfg_r15_present, 1)); - HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1)); - HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1)); - HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r15_present, 1)); + HANDLE_CODE(bref.unpack(hnb_name_present, 1)); - if (v2x_inter_freq_info_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r15, bref, 0, 7)); - } - if (cbr_pssch_tx_cfg_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(cbr_pssch_tx_cfg_list_r15, bref, 1, 8)); - } - if (v2x_packet_dupl_cfg_r15_present) { - HANDLE_CODE(v2x_packet_dupl_cfg_r15.unpack(bref)); - } - if (sync_freq_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(sync_freq_list_r15, bref, 1, 8, integer_packer(0, 262143))); - } - if (v2x_freq_sel_cfg_list_r15_present) { - HANDLE_CODE(unpack_dyn_seq_of(v2x_freq_sel_cfg_list_r15, bref, 1, 8)); - } - if (thresh_s_rssi_cbr_r15_present) { - HANDLE_CODE(unpack_integer(thresh_s_rssi_cbr_r15, bref, (uint8_t)0u, (uint8_t)45u)); + if (hnb_name_present) { + HANDLE_CODE(hnb_name.unpack(bref)); } if (ext) { @@ -7436,46 +7651,11 @@ SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } -void sib_type26_r15_s::to_json(json_writer& j) const +void sib_type9_s::to_json(json_writer& j) const { j.start_obj(); - if (v2x_inter_freq_info_list_r15_present) { - j.start_array("v2x-InterFreqInfoList-r15"); - for (const auto& e1 : v2x_inter_freq_info_list_r15) { - e1.to_json(j); - } - j.end_array(); - } - if (cbr_pssch_tx_cfg_list_r15_present) { - j.start_array("cbr-pssch-TxConfigList-r15"); - for (const auto& e1 : cbr_pssch_tx_cfg_list_r15) { - e1.to_json(j); - } - j.end_array(); - } - if (v2x_packet_dupl_cfg_r15_present) { - j.write_fieldname("v2x-PacketDuplicationConfig-r15"); - v2x_packet_dupl_cfg_r15.to_json(j); - } - if (sync_freq_list_r15_present) { - j.start_array("syncFreqList-r15"); - for (const auto& e1 : sync_freq_list_r15) { - j.write_int(e1); - } - j.end_array(); - } - if (slss_tx_multi_freq_r15_present) { - j.write_str("slss-TxMultiFreq-r15", "true"); - } - if (v2x_freq_sel_cfg_list_r15_present) { - j.start_array("v2x-FreqSelectionConfigList-r15"); - for (const auto& e1 : v2x_freq_sel_cfg_list_r15) { - e1.to_json(j); - } - j.end_array(); - } - if (thresh_s_rssi_cbr_r15_present) { - j.write_int("threshS-RSSI-CBR-r15", thresh_s_rssi_cbr_r15); + if (hnb_name_present) { + j.write_str("hnb-Name", hnb_name.to_string()); } if (ext) { if (late_non_crit_ext_present) { @@ -7485,3819 +7665,3477 @@ void sib_type26_r15_s::to_json(json_writer& j) const j.end_obj(); } -// SystemInformationBlockType3 ::= SEQUENCE -SRSASN_CODE sib_type3_s::pack(bit_ref& bref) const +// PosSystemInformation-r15-IEs ::= SEQUENCE +SRSASN_CODE pos_sys_info_r15_ies_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(cell_resel_info_common.speed_state_resel_pars_present, 1)); - HANDLE_CODE(cell_resel_info_common.q_hyst.pack(bref)); - if (cell_resel_info_common.speed_state_resel_pars_present) { - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.pack(bref)); - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.pack(bref)); - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.pack(bref)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, pos_sib_type_and_info_r15, 1, 32)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } - HANDLE_CODE(bref.pack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); - if (cell_resel_serving_freq_info.s_non_intra_search_present) { - HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.s_non_intra_search, (uint8_t)0u, (uint8_t)31u)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE pos_sys_info_r15_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(pos_sib_type_and_info_r15, bref, 1, 32)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.thresh_serving_low, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, cell_resel_serving_freq_info.cell_resel_prio, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.p_max_present, 1)); - HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.s_intra_search_present, 1)); - HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); - HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); - HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.q_rx_lev_min, (int8_t)-70, (int8_t)-22)); - if (intra_freq_cell_resel_info.p_max_present) { - HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.p_max, (int8_t)-30, (int8_t)33)); - } - if (intra_freq_cell_resel_info.s_intra_search_present) { - HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.s_intra_search, (uint8_t)0u, (uint8_t)31u)); - } - if (intra_freq_cell_resel_info.allowed_meas_bw_present) { - HANDLE_CODE(intra_freq_cell_resel_info.allowed_meas_bw.pack(bref)); - } - HANDLE_CODE(bref.pack(intra_freq_cell_resel_info.presence_ant_port1, 1)); - HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.pack(bref)); - HANDLE_CODE(pack_integer(bref, intra_freq_cell_resel_info.t_resel_eutra, (uint8_t)0u, (uint8_t)7u)); - if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { - HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.pack(bref)); - } - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= late_non_crit_ext_present; - group_flags[1] |= s_intra_search_v920.is_present(); - group_flags[1] |= s_non_intra_search_v920.is_present(); - group_flags[1] |= q_qual_min_r9_present; - group_flags[1] |= thresh_serving_low_q_r9_present; - group_flags[2] |= q_qual_min_wb_r11_present; - group_flags[3] |= q_qual_min_rsrq_on_all_symbols_r12_present; - group_flags[4] |= cell_resel_serving_freq_info_v1310.is_present(); - group_flags[4] |= redist_serving_info_r13.is_present(); - group_flags[4] |= cell_sel_info_ce_r13.is_present(); - group_flags[4] |= t_resel_eutra_ce_r13_present; - group_flags[5] |= cell_sel_info_ce1_r13.is_present(); - group_flags[6] |= cell_sel_info_ce1_v1360.is_present(); - group_flags[7] |= cell_resel_info_common_v1460.is_present(); - group_flags[8] |= cell_resel_info_hsdn_r15.is_present(); - group_flags[8] |= cell_sel_info_ce_v1530.is_present(); - group_flags[8] |= crs_intf_mitig_neigh_cells_ce_r15_present; - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(s_intra_search_v920.is_present(), 1)); - HANDLE_CODE(bref.pack(s_non_intra_search_v920.is_present(), 1)); - HANDLE_CODE(bref.pack(q_qual_min_r9_present, 1)); - HANDLE_CODE(bref.pack(thresh_serving_low_q_r9_present, 1)); - if (s_intra_search_v920.is_present()) { - HANDLE_CODE(pack_integer(bref, s_intra_search_v920->s_intra_search_p_r9, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, s_intra_search_v920->s_intra_search_q_r9, (uint8_t)0u, (uint8_t)31u)); - } - if (s_non_intra_search_v920.is_present()) { - HANDLE_CODE(pack_integer(bref, s_non_intra_search_v920->s_non_intra_search_p_r9, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(pack_integer(bref, s_non_intra_search_v920->s_non_intra_search_q_r9, (uint8_t)0u, (uint8_t)31u)); - } - if (q_qual_min_r9_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_r9, (int8_t)-34, (int8_t)-3)); - } - if (thresh_serving_low_q_r9_present) { - HANDLE_CODE(pack_integer(bref, thresh_serving_low_q_r9, (uint8_t)0u, (uint8_t)31u)); - } - } - if (group_flags[2]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(q_qual_min_wb_r11_present, 1)); - if (q_qual_min_wb_r11_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_wb_r11, (int8_t)-34, (int8_t)-3)); - } - } - if (group_flags[3]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(pack_integer(bref, q_qual_min_rsrq_on_all_symbols_r12, (int8_t)-34, (int8_t)-3)); - } - } - if (group_flags[4]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(cell_resel_serving_freq_info_v1310.is_present(), 1)); - HANDLE_CODE(bref.pack(redist_serving_info_r13.is_present(), 1)); - HANDLE_CODE(bref.pack(cell_sel_info_ce_r13.is_present(), 1)); - HANDLE_CODE(bref.pack(t_resel_eutra_ce_r13_present, 1)); - if (cell_resel_serving_freq_info_v1310.is_present()) { - HANDLE_CODE(cell_resel_serving_freq_info_v1310->pack(bref)); - } - if (redist_serving_info_r13.is_present()) { - HANDLE_CODE(redist_serving_info_r13->pack(bref)); - } - if (cell_sel_info_ce_r13.is_present()) { - HANDLE_CODE(cell_sel_info_ce_r13->pack(bref)); - } - if (t_resel_eutra_ce_r13_present) { - HANDLE_CODE(pack_integer(bref, t_resel_eutra_ce_r13, (uint8_t)0u, (uint8_t)15u)); - } - } - if (group_flags[5]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(cell_sel_info_ce1_r13.is_present(), 1)); - if (cell_sel_info_ce1_r13.is_present()) { - HANDLE_CODE(cell_sel_info_ce1_r13->pack(bref)); - } - } - if (group_flags[6]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(cell_sel_info_ce1_v1360.is_present(), 1)); - if (cell_sel_info_ce1_v1360.is_present()) { - HANDLE_CODE(cell_sel_info_ce1_v1360->pack(bref)); - } - } - if (group_flags[7]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(cell_resel_info_common_v1460.is_present(), 1)); - if (cell_resel_info_common_v1460.is_present()) { - HANDLE_CODE(cell_resel_info_common_v1460->pack(bref)); - } - } - if (group_flags[8]) { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(bref.pack(cell_resel_info_hsdn_r15.is_present(), 1)); - HANDLE_CODE(bref.pack(cell_sel_info_ce_v1530.is_present(), 1)); - HANDLE_CODE(bref.pack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); - if (cell_resel_info_hsdn_r15.is_present()) { - HANDLE_CODE(cell_resel_info_hsdn_r15->pack(bref)); - } - if (cell_sel_info_ce_v1530.is_present()) { - HANDLE_CODE(cell_sel_info_ce_v1530->pack(bref)); - } - } - } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type3_s::unpack(cbit_ref& bref) +void pos_sys_info_r15_ies_s::to_json(json_writer& j) const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(cell_resel_info_common.speed_state_resel_pars_present, 1)); - HANDLE_CODE(cell_resel_info_common.q_hyst.unpack(bref)); - if (cell_resel_info_common.speed_state_resel_pars_present) { - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.mob_state_params.unpack(bref)); - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.unpack(bref)); - HANDLE_CODE(cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.unpack(bref)); - } - HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info.s_non_intra_search_present, 1)); - if (cell_resel_serving_freq_info.s_non_intra_search_present) { - HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.s_non_intra_search, bref, (uint8_t)0u, (uint8_t)31u)); - } - HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.thresh_serving_low, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(cell_resel_serving_freq_info.cell_resel_prio, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.p_max_present, 1)); - HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.s_intra_search_present, 1)); - HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.allowed_meas_bw_present, 1)); - HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.t_resel_eutra_sf_present, 1)); - HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.q_rx_lev_min, bref, (int8_t)-70, (int8_t)-22)); - if (intra_freq_cell_resel_info.p_max_present) { - HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.p_max, bref, (int8_t)-30, (int8_t)33)); - } - if (intra_freq_cell_resel_info.s_intra_search_present) { - HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.s_intra_search, bref, (uint8_t)0u, (uint8_t)31u)); + j.start_obj(); + j.start_array("posSIB-TypeAndInfo-r15"); + for (const auto& e1 : pos_sib_type_and_info_r15) { + e1.to_json(j); } - if (intra_freq_cell_resel_info.allowed_meas_bw_present) { - HANDLE_CODE(intra_freq_cell_resel_info.allowed_meas_bw.unpack(bref)); + j.end_array(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } - HANDLE_CODE(bref.unpack(intra_freq_cell_resel_info.presence_ant_port1, 1)); - HANDLE_CODE(intra_freq_cell_resel_info.neigh_cell_cfg.unpack(bref)); - HANDLE_CODE(unpack_integer(intra_freq_cell_resel_info.t_resel_eutra, bref, (uint8_t)0u, (uint8_t)7u)); - if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { - HANDLE_CODE(intra_freq_cell_resel_info.t_resel_eutra_sf.unpack(bref)); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } + j.end_obj(); +} - if (ext) { - ext_groups_unpacker_guard group_flags(9); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool s_intra_search_v920_present; - HANDLE_CODE(bref.unpack(s_intra_search_v920_present, 1)); - s_intra_search_v920.set_present(s_intra_search_v920_present); - bool s_non_intra_search_v920_present; - HANDLE_CODE(bref.unpack(s_non_intra_search_v920_present, 1)); - s_non_intra_search_v920.set_present(s_non_intra_search_v920_present); - HANDLE_CODE(bref.unpack(q_qual_min_r9_present, 1)); - HANDLE_CODE(bref.unpack(thresh_serving_low_q_r9_present, 1)); - if (s_intra_search_v920.is_present()) { - HANDLE_CODE(unpack_integer(s_intra_search_v920->s_intra_search_p_r9, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(s_intra_search_v920->s_intra_search_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - } - if (s_non_intra_search_v920.is_present()) { - HANDLE_CODE(unpack_integer(s_non_intra_search_v920->s_non_intra_search_p_r9, bref, (uint8_t)0u, (uint8_t)31u)); - HANDLE_CODE(unpack_integer(s_non_intra_search_v920->s_non_intra_search_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - } - if (q_qual_min_r9_present) { - HANDLE_CODE(unpack_integer(q_qual_min_r9, bref, (int8_t)-34, (int8_t)-3)); - } - if (thresh_serving_low_q_r9_present) { - HANDLE_CODE(unpack_integer(thresh_serving_low_q_r9, bref, (uint8_t)0u, (uint8_t)31u)); - } - } - if (group_flags[2]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(q_qual_min_wb_r11_present, 1)); - if (q_qual_min_wb_r11_present) { - HANDLE_CODE(unpack_integer(q_qual_min_wb_r11, bref, (int8_t)-34, (int8_t)-3)); - } - } - if (group_flags[3]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(q_qual_min_rsrq_on_all_symbols_r12_present, 1)); - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - HANDLE_CODE(unpack_integer(q_qual_min_rsrq_on_all_symbols_r12, bref, (int8_t)-34, (int8_t)-3)); - } - } - if (group_flags[4]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool cell_resel_serving_freq_info_v1310_present; - HANDLE_CODE(bref.unpack(cell_resel_serving_freq_info_v1310_present, 1)); - cell_resel_serving_freq_info_v1310.set_present(cell_resel_serving_freq_info_v1310_present); - bool redist_serving_info_r13_present; - HANDLE_CODE(bref.unpack(redist_serving_info_r13_present, 1)); - redist_serving_info_r13.set_present(redist_serving_info_r13_present); - bool cell_sel_info_ce_r13_present; - HANDLE_CODE(bref.unpack(cell_sel_info_ce_r13_present, 1)); - cell_sel_info_ce_r13.set_present(cell_sel_info_ce_r13_present); - HANDLE_CODE(bref.unpack(t_resel_eutra_ce_r13_present, 1)); - if (cell_resel_serving_freq_info_v1310.is_present()) { - HANDLE_CODE(cell_resel_serving_freq_info_v1310->unpack(bref)); - } - if (redist_serving_info_r13.is_present()) { - HANDLE_CODE(redist_serving_info_r13->unpack(bref)); - } - if (cell_sel_info_ce_r13.is_present()) { - HANDLE_CODE(cell_sel_info_ce_r13->unpack(bref)); - } - if (t_resel_eutra_ce_r13_present) { - HANDLE_CODE(unpack_integer(t_resel_eutra_ce_r13, bref, (uint8_t)0u, (uint8_t)15u)); - } - } - if (group_flags[5]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool cell_sel_info_ce1_r13_present; - HANDLE_CODE(bref.unpack(cell_sel_info_ce1_r13_present, 1)); - cell_sel_info_ce1_r13.set_present(cell_sel_info_ce1_r13_present); - if (cell_sel_info_ce1_r13.is_present()) { - HANDLE_CODE(cell_sel_info_ce1_r13->unpack(bref)); - } - } - if (group_flags[6]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool cell_sel_info_ce1_v1360_present; - HANDLE_CODE(bref.unpack(cell_sel_info_ce1_v1360_present, 1)); - cell_sel_info_ce1_v1360.set_present(cell_sel_info_ce1_v1360_present); - if (cell_sel_info_ce1_v1360.is_present()) { - HANDLE_CODE(cell_sel_info_ce1_v1360->unpack(bref)); - } - } - if (group_flags[7]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool cell_resel_info_common_v1460_present; - HANDLE_CODE(bref.unpack(cell_resel_info_common_v1460_present, 1)); - cell_resel_info_common_v1460.set_present(cell_resel_info_common_v1460_present); - if (cell_resel_info_common_v1460.is_present()) { - HANDLE_CODE(cell_resel_info_common_v1460->unpack(bref)); - } - } - if (group_flags[8]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool cell_resel_info_hsdn_r15_present; - HANDLE_CODE(bref.unpack(cell_resel_info_hsdn_r15_present, 1)); - cell_resel_info_hsdn_r15.set_present(cell_resel_info_hsdn_r15_present); - bool cell_sel_info_ce_v1530_present; - HANDLE_CODE(bref.unpack(cell_sel_info_ce_v1530_present, 1)); - cell_sel_info_ce_v1530.set_present(cell_sel_info_ce_v1530_present); - HANDLE_CODE(bref.unpack(crs_intf_mitig_neigh_cells_ce_r15_present, 1)); - if (cell_resel_info_hsdn_r15.is_present()) { - HANDLE_CODE(cell_resel_info_hsdn_r15->unpack(bref)); - } - if (cell_sel_info_ce_v1530.is_present()) { - HANDLE_CODE(cell_sel_info_ce_v1530->unpack(bref)); - } - } +void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::destroy_() +{ + switch (type_) { + case types::pos_sib1_minus1_r15: + c.destroy(); + break; + case types::pos_sib1_minus2_r15: + c.destroy(); + break; + case types::pos_sib1_minus3_r15: + c.destroy(); + break; + case types::pos_sib1_minus4_r15: + c.destroy(); + break; + case types::pos_sib1_minus5_r15: + c.destroy(); + break; + case types::pos_sib1_minus6_r15: + c.destroy(); + break; + case types::pos_sib1_minus7_r15: + c.destroy(); + break; + case types::pos_sib2_minus1_r15: + c.destroy(); + break; + case types::pos_sib2_minus2_r15: + c.destroy(); + break; + case types::pos_sib2_minus3_r15: + c.destroy(); + break; + case types::pos_sib2_minus4_r15: + c.destroy(); + break; + case types::pos_sib2_minus5_r15: + c.destroy(); + break; + case types::pos_sib2_minus6_r15: + c.destroy(); + break; + case types::pos_sib2_minus7_r15: + c.destroy(); + break; + case types::pos_sib2_minus8_r15: + c.destroy(); + break; + case types::pos_sib2_minus9_r15: + c.destroy(); + break; + case types::pos_sib2_minus10_r15: + c.destroy(); + break; + case types::pos_sib2_minus11_r15: + c.destroy(); + break; + case types::pos_sib2_minus12_r15: + c.destroy(); + break; + case types::pos_sib2_minus13_r15: + c.destroy(); + break; + case types::pos_sib2_minus14_r15: + c.destroy(); + break; + case types::pos_sib2_minus15_r15: + c.destroy(); + break; + case types::pos_sib2_minus16_r15: + c.destroy(); + break; + case types::pos_sib2_minus17_r15: + c.destroy(); + break; + case types::pos_sib2_minus18_r15: + c.destroy(); + break; + case types::pos_sib2_minus19_r15: + c.destroy(); + break; + case types::pos_sib3_minus1_r15: + c.destroy(); + break; + default: + break; } - return SRSASN_SUCCESS; } -void sib_type3_s::to_json(json_writer& j) const +void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set(types::options e) { - j.start_obj(); - j.write_fieldname("cellReselectionInfoCommon"); - j.start_obj(); - j.write_str("q-Hyst", cell_resel_info_common.q_hyst.to_string()); - if (cell_resel_info_common.speed_state_resel_pars_present) { - j.write_fieldname("speedStateReselectionPars"); - j.start_obj(); - j.write_fieldname("mobilityStateParameters"); - cell_resel_info_common.speed_state_resel_pars.mob_state_params.to_json(j); - j.write_fieldname("q-HystSF"); - j.start_obj(); - j.write_str("sf-Medium", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_medium.to_string()); - j.write_str("sf-High", cell_resel_info_common.speed_state_resel_pars.q_hyst_sf.sf_high.to_string()); - j.end_obj(); - j.end_obj(); - } - j.end_obj(); - j.write_fieldname("cellReselectionServingFreqInfo"); - j.start_obj(); - if (cell_resel_serving_freq_info.s_non_intra_search_present) { - j.write_int("s-NonIntraSearch", cell_resel_serving_freq_info.s_non_intra_search); + destroy_(); + type_ = e; + switch (type_) { + case types::pos_sib1_minus1_r15: + c.init(); + break; + case types::pos_sib1_minus2_r15: + c.init(); + break; + case types::pos_sib1_minus3_r15: + c.init(); + break; + case types::pos_sib1_minus4_r15: + c.init(); + break; + case types::pos_sib1_minus5_r15: + c.init(); + break; + case types::pos_sib1_minus6_r15: + c.init(); + break; + case types::pos_sib1_minus7_r15: + c.init(); + break; + case types::pos_sib2_minus1_r15: + c.init(); + break; + case types::pos_sib2_minus2_r15: + c.init(); + break; + case types::pos_sib2_minus3_r15: + c.init(); + break; + case types::pos_sib2_minus4_r15: + c.init(); + break; + case types::pos_sib2_minus5_r15: + c.init(); + break; + case types::pos_sib2_minus6_r15: + c.init(); + break; + case types::pos_sib2_minus7_r15: + c.init(); + break; + case types::pos_sib2_minus8_r15: + c.init(); + break; + case types::pos_sib2_minus9_r15: + c.init(); + break; + case types::pos_sib2_minus10_r15: + c.init(); + break; + case types::pos_sib2_minus11_r15: + c.init(); + break; + case types::pos_sib2_minus12_r15: + c.init(); + break; + case types::pos_sib2_minus13_r15: + c.init(); + break; + case types::pos_sib2_minus14_r15: + c.init(); + break; + case types::pos_sib2_minus15_r15: + c.init(); + break; + case types::pos_sib2_minus16_r15: + c.init(); + break; + case types::pos_sib2_minus17_r15: + c.init(); + break; + case types::pos_sib2_minus18_r15: + c.init(); + break; + case types::pos_sib2_minus19_r15: + c.init(); + break; + case types::pos_sib3_minus1_r15: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } - j.write_int("threshServingLow", cell_resel_serving_freq_info.thresh_serving_low); - j.write_int("cellReselectionPriority", cell_resel_serving_freq_info.cell_resel_prio); - j.end_obj(); - j.write_fieldname("intraFreqCellReselectionInfo"); - j.start_obj(); - j.write_int("q-RxLevMin", intra_freq_cell_resel_info.q_rx_lev_min); - if (intra_freq_cell_resel_info.p_max_present) { - j.write_int("p-Max", intra_freq_cell_resel_info.p_max); - } - if (intra_freq_cell_resel_info.s_intra_search_present) { - j.write_int("s-IntraSearch", intra_freq_cell_resel_info.s_intra_search); - } - if (intra_freq_cell_resel_info.allowed_meas_bw_present) { - j.write_str("allowedMeasBandwidth", intra_freq_cell_resel_info.allowed_meas_bw.to_string()); - } - j.write_bool("presenceAntennaPort1", intra_freq_cell_resel_info.presence_ant_port1); - j.write_str("neighCellConfig", intra_freq_cell_resel_info.neigh_cell_cfg.to_string()); - j.write_int("t-ReselectionEUTRA", intra_freq_cell_resel_info.t_resel_eutra); - if (intra_freq_cell_resel_info.t_resel_eutra_sf_present) { - j.write_fieldname("t-ReselectionEUTRA-SF"); - intra_freq_cell_resel_info.t_resel_eutra_sf.to_json(j); - } - j.end_obj(); - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (s_intra_search_v920.is_present()) { - j.write_fieldname("s-IntraSearch-v920"); - j.start_obj(); - j.write_int("s-IntraSearchP-r9", s_intra_search_v920->s_intra_search_p_r9); - j.write_int("s-IntraSearchQ-r9", s_intra_search_v920->s_intra_search_q_r9); - j.end_obj(); - } - if (s_non_intra_search_v920.is_present()) { - j.write_fieldname("s-NonIntraSearch-v920"); - j.start_obj(); - j.write_int("s-NonIntraSearchP-r9", s_non_intra_search_v920->s_non_intra_search_p_r9); - j.write_int("s-NonIntraSearchQ-r9", s_non_intra_search_v920->s_non_intra_search_q_r9); - j.end_obj(); - } - if (q_qual_min_r9_present) { - j.write_int("q-QualMin-r9", q_qual_min_r9); - } - if (thresh_serving_low_q_r9_present) { - j.write_int("threshServingLowQ-r9", thresh_serving_low_q_r9); - } - if (q_qual_min_wb_r11_present) { - j.write_int("q-QualMinWB-r11", q_qual_min_wb_r11); - } - if (q_qual_min_rsrq_on_all_symbols_r12_present) { - j.write_int("q-QualMinRSRQ-OnAllSymbols-r12", q_qual_min_rsrq_on_all_symbols_r12); - } - if (cell_resel_serving_freq_info_v1310.is_present()) { - j.write_fieldname("cellReselectionServingFreqInfo-v1310"); - cell_resel_serving_freq_info_v1310->to_json(j); - } - if (redist_serving_info_r13.is_present()) { - j.write_fieldname("redistributionServingInfo-r13"); - redist_serving_info_r13->to_json(j); - } - if (cell_sel_info_ce_r13.is_present()) { - j.write_fieldname("cellSelectionInfoCE-r13"); - cell_sel_info_ce_r13->to_json(j); - } - if (t_resel_eutra_ce_r13_present) { - j.write_int("t-ReselectionEUTRA-CE-r13", t_resel_eutra_ce_r13); - } - if (cell_sel_info_ce1_r13.is_present()) { - j.write_fieldname("cellSelectionInfoCE1-r13"); - cell_sel_info_ce1_r13->to_json(j); - } - if (cell_sel_info_ce1_v1360.is_present()) { - j.write_fieldname("cellSelectionInfoCE1-v1360"); - cell_sel_info_ce1_v1360->to_json(j); - } - if (cell_resel_info_common_v1460.is_present()) { - j.write_fieldname("cellReselectionInfoCommon-v1460"); - cell_resel_info_common_v1460->to_json(j); - } - if (cell_resel_info_hsdn_r15.is_present()) { - j.write_fieldname("cellReselectionInfoHSDN-r15"); - cell_resel_info_hsdn_r15->to_json(j); - } - if (cell_sel_info_ce_v1530.is_present()) { - j.write_fieldname("cellSelectionInfoCE-v1530"); - cell_sel_info_ce_v1530->to_json(j); - } - if (crs_intf_mitig_neigh_cells_ce_r15_present) { - j.write_str("crs-IntfMitigNeighCellsCE-r15", "enabled"); - } - } - j.end_obj(); -} - -std::string sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_string() const -{ - static const char* options[] = {"dB0", - "dB1", - "dB2", - "dB3", - "dB4", - "dB5", - "dB6", - "dB8", - "dB10", - "dB12", - "dB14", - "dB16", - "dB18", - "dB20", - "dB22", - "dB24"}; - return convert_enum_idx(options, 16, value, "sib_type3_s::cell_resel_info_common_s_::q_hyst_e_"); -} -uint8_t sib_type3_s::cell_resel_info_common_s_::q_hyst_opts::to_number() const -{ - static const uint8_t options[] = {0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24}; - return map_enum_number(options, 16, value, "sib_type3_s::cell_resel_info_common_s_::q_hyst_e_"); -} - -std::string -sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_string() const -{ - static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; - return convert_enum_idx( - options, - 4, - value, - "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); -} -int8_t -sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_opts::to_number() const -{ - static const int8_t options[] = {-6, -4, -2, 0}; - return map_enum_number( - options, - 4, - value, - "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_medium_e_"); -} - -std::string -sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_string() const -{ - static const char* options[] = {"dB-6", "dB-4", "dB-2", "dB0"}; - return convert_enum_idx( - options, 4, value, "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_e_"); -} -int8_t sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_opts::to_number() const -{ - static const int8_t options[] = {-6, -4, -2, 0}; - return map_enum_number( - options, 4, value, "sib_type3_s::cell_resel_info_common_s_::speed_state_resel_pars_s_::q_hyst_sf_s_::sf_high_e_"); -} - -// SystemInformationBlockType4 ::= SEQUENCE -SRSASN_CODE sib_type4_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(intra_freq_neigh_cell_list_present, 1)); - HANDLE_CODE(bref.pack(intra_freq_black_cell_list_present, 1)); - HANDLE_CODE(bref.pack(csg_pci_range_present, 1)); - - if (intra_freq_neigh_cell_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_neigh_cell_list, 1, 16)); - } - if (intra_freq_black_cell_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, intra_freq_black_cell_list, 1, 16)); - } - if (csg_pci_range_present) { - HANDLE_CODE(csg_pci_range.pack(bref)); - } - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= late_non_crit_ext_present; - group_flags[1] |= intra_freq_neigh_hsdn_cell_list_r15.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(intra_freq_neigh_hsdn_cell_list_r15.is_present(), 1)); - if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *intra_freq_neigh_hsdn_cell_list_r15, 1, 16)); - } - } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type4_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(intra_freq_neigh_cell_list_present, 1)); - HANDLE_CODE(bref.unpack(intra_freq_black_cell_list_present, 1)); - HANDLE_CODE(bref.unpack(csg_pci_range_present, 1)); - - if (intra_freq_neigh_cell_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(intra_freq_neigh_cell_list, bref, 1, 16)); - } - if (intra_freq_black_cell_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(intra_freq_black_cell_list, bref, 1, 16)); - } - if (csg_pci_range_present) { - HANDLE_CODE(csg_pci_range.unpack(bref)); - } - - if (ext) { - ext_groups_unpacker_guard group_flags(2); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool intra_freq_neigh_hsdn_cell_list_r15_present; - HANDLE_CODE(bref.unpack(intra_freq_neigh_hsdn_cell_list_r15_present, 1)); - intra_freq_neigh_hsdn_cell_list_r15.set_present(intra_freq_neigh_hsdn_cell_list_r15_present); - if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*intra_freq_neigh_hsdn_cell_list_r15, bref, 1, 16)); - } - } - } - return SRSASN_SUCCESS; -} -void sib_type4_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (intra_freq_neigh_cell_list_present) { - j.start_array("intraFreqNeighCellList"); - for (const auto& e1 : intra_freq_neigh_cell_list) { - e1.to_json(j); - } - j.end_array(); - } - if (intra_freq_black_cell_list_present) { - j.start_array("intraFreqBlackCellList"); - for (const auto& e1 : intra_freq_black_cell_list) { - e1.to_json(j); - } - j.end_array(); - } - if (csg_pci_range_present) { - j.write_fieldname("csg-PhysCellIdRange"); - csg_pci_range.to_json(j); - } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (intra_freq_neigh_hsdn_cell_list_r15.is_present()) { - j.start_array("intraFreqNeighHSDN-CellList-r15"); - for (const auto& e1 : *intra_freq_neigh_hsdn_cell_list_r15) { - e1.to_json(j); - } - j.end_array(); - } - } - j.end_obj(); -} - -// SystemInformationBlockType5 ::= SEQUENCE -SRSASN_CODE sib_type5_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list, 1, 8)); - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= late_non_crit_ext_present; - group_flags[1] |= inter_freq_carrier_freq_list_v1250.is_present(); - group_flags[1] |= inter_freq_carrier_freq_list_ext_r12.is_present(); - group_flags[2] |= inter_freq_carrier_freq_list_ext_v1280.is_present(); - group_flags[3] |= inter_freq_carrier_freq_list_v1310.is_present(); - group_flags[3] |= inter_freq_carrier_freq_list_ext_v1310.is_present(); - group_flags[4] |= inter_freq_carrier_freq_list_v1350.is_present(); - group_flags[4] |= inter_freq_carrier_freq_list_ext_v1350.is_present(); - group_flags[5] |= inter_freq_carrier_freq_list_ext_v1360.is_present(); - group_flags[6] |= scptm_freq_offset_r14_present; - group_flags[7] |= inter_freq_carrier_freq_list_v1530.is_present(); - group_flags[7] |= inter_freq_carrier_freq_list_ext_v1530.is_present(); - group_flags[7] |= meas_idle_cfg_sib_r15.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1250.is_present(), 1)); - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_r12.is_present(), 1)); - if (inter_freq_carrier_freq_list_v1250.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1250, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_r12.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_r12, 1, 8)); - } - } - if (group_flags[2]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1280.is_present(), 1)); - if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1280, 1, 8)); - } - } - if (group_flags[3]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1310.is_present(), 1)); - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1310.is_present(), 1)); - if (inter_freq_carrier_freq_list_v1310.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1310, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1310, 1, 8)); - } - } - if (group_flags[4]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1350.is_present(), 1)); - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1350.is_present(), 1)); - if (inter_freq_carrier_freq_list_v1350.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1350, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1350, 1, 8)); - } - } - if (group_flags[5]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1360.is_present(), 1)); - if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1360, 1, 8)); - } - } - if (group_flags[6]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(scptm_freq_offset_r14_present, 1)); - if (scptm_freq_offset_r14_present) { - HANDLE_CODE(pack_integer(bref, scptm_freq_offset_r14, (uint8_t)1u, (uint8_t)8u)); - } - } - if (group_flags[7]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v1530.is_present(), 1)); - HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_ext_v1530.is_present(), 1)); - HANDLE_CODE(bref.pack(meas_idle_cfg_sib_r15.is_present(), 1)); - if (inter_freq_carrier_freq_list_v1530.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_v1530, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_carrier_freq_list_ext_v1530, 1, 8)); - } - if (meas_idle_cfg_sib_r15.is_present()) { - HANDLE_CODE(meas_idle_cfg_sib_r15->pack(bref)); - } - } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type5_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list, bref, 1, 8)); - - if (ext) { - ext_groups_unpacker_guard group_flags(8); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_v1250_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1250_present, 1)); - inter_freq_carrier_freq_list_v1250.set_present(inter_freq_carrier_freq_list_v1250_present); - bool inter_freq_carrier_freq_list_ext_r12_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_r12_present, 1)); - inter_freq_carrier_freq_list_ext_r12.set_present(inter_freq_carrier_freq_list_ext_r12_present); - if (inter_freq_carrier_freq_list_v1250.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1250, bref, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_r12.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_r12, bref, 1, 8)); - } - } - if (group_flags[2]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_ext_v1280_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1280_present, 1)); - inter_freq_carrier_freq_list_ext_v1280.set_present(inter_freq_carrier_freq_list_ext_v1280_present); - if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1280, bref, 1, 8)); - } - } - if (group_flags[3]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_v1310_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1310_present, 1)); - inter_freq_carrier_freq_list_v1310.set_present(inter_freq_carrier_freq_list_v1310_present); - bool inter_freq_carrier_freq_list_ext_v1310_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1310_present, 1)); - inter_freq_carrier_freq_list_ext_v1310.set_present(inter_freq_carrier_freq_list_ext_v1310_present); - if (inter_freq_carrier_freq_list_v1310.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1310, bref, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1310, bref, 1, 8)); - } - } - if (group_flags[4]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_v1350_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1350_present, 1)); - inter_freq_carrier_freq_list_v1350.set_present(inter_freq_carrier_freq_list_v1350_present); - bool inter_freq_carrier_freq_list_ext_v1350_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1350_present, 1)); - inter_freq_carrier_freq_list_ext_v1350.set_present(inter_freq_carrier_freq_list_ext_v1350_present); - if (inter_freq_carrier_freq_list_v1350.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1350, bref, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1350, bref, 1, 8)); - } - } - if (group_flags[5]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_ext_v1360_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1360_present, 1)); - inter_freq_carrier_freq_list_ext_v1360.set_present(inter_freq_carrier_freq_list_ext_v1360_present); - if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1360, bref, 1, 8)); - } - } - if (group_flags[6]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(scptm_freq_offset_r14_present, 1)); - if (scptm_freq_offset_r14_present) { - HANDLE_CODE(unpack_integer(scptm_freq_offset_r14, bref, (uint8_t)1u, (uint8_t)8u)); - } - } - if (group_flags[7]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool inter_freq_carrier_freq_list_v1530_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v1530_present, 1)); - inter_freq_carrier_freq_list_v1530.set_present(inter_freq_carrier_freq_list_v1530_present); - bool inter_freq_carrier_freq_list_ext_v1530_present; - HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_ext_v1530_present, 1)); - inter_freq_carrier_freq_list_ext_v1530.set_present(inter_freq_carrier_freq_list_ext_v1530_present); - bool meas_idle_cfg_sib_r15_present; - HANDLE_CODE(bref.unpack(meas_idle_cfg_sib_r15_present, 1)); - meas_idle_cfg_sib_r15.set_present(meas_idle_cfg_sib_r15_present); - if (inter_freq_carrier_freq_list_v1530.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_v1530, bref, 1, 8)); - } - if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_carrier_freq_list_ext_v1530, bref, 1, 8)); - } - if (meas_idle_cfg_sib_r15.is_present()) { - HANDLE_CODE(meas_idle_cfg_sib_r15->unpack(bref)); - } - } - } - return SRSASN_SUCCESS; -} -void sib_type5_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("interFreqCarrierFreqList"); - for (const auto& e1 : inter_freq_carrier_freq_list) { - e1.to_json(j); - } - j.end_array(); - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (inter_freq_carrier_freq_list_v1250.is_present()) { - j.start_array("interFreqCarrierFreqList-v1250"); - for (const auto& e1 : *inter_freq_carrier_freq_list_v1250) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_r12.is_present()) { - j.start_array("interFreqCarrierFreqListExt-r12"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_v1280.is_present()) { - j.start_array("interFreqCarrierFreqListExt-v1280"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1280) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_v1310.is_present()) { - j.start_array("interFreqCarrierFreqList-v1310"); - for (const auto& e1 : *inter_freq_carrier_freq_list_v1310) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_v1310.is_present()) { - j.start_array("interFreqCarrierFreqListExt-v1310"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1310) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_v1350.is_present()) { - j.start_array("interFreqCarrierFreqList-v1350"); - for (const auto& e1 : *inter_freq_carrier_freq_list_v1350) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_v1350.is_present()) { - j.start_array("interFreqCarrierFreqListExt-v1350"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1350) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_v1360.is_present()) { - j.start_array("interFreqCarrierFreqListExt-v1360"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1360) { - e1.to_json(j); - } - j.end_array(); - } - if (scptm_freq_offset_r14_present) { - j.write_int("scptm-FreqOffset-r14", scptm_freq_offset_r14); - } - if (inter_freq_carrier_freq_list_v1530.is_present()) { - j.start_array("interFreqCarrierFreqList-v1530"); - for (const auto& e1 : *inter_freq_carrier_freq_list_v1530) { - e1.to_json(j); - } - j.end_array(); - } - if (inter_freq_carrier_freq_list_ext_v1530.is_present()) { - j.start_array("interFreqCarrierFreqListExt-v1530"); - for (const auto& e1 : *inter_freq_carrier_freq_list_ext_v1530) { - e1.to_json(j); - } - j.end_array(); - } - if (meas_idle_cfg_sib_r15.is_present()) { - j.write_fieldname("measIdleConfigSIB-r15"); - meas_idle_cfg_sib_r15->to_json(j); - } - } - j.end_obj(); -} - -// SystemInformationBlockType6 ::= SEQUENCE -SRSASN_CODE sib_type6_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_present, 1)); - HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_present, 1)); - HANDLE_CODE(bref.pack(t_resel_utra_sf_present, 1)); - - if (carrier_freq_list_utra_fdd_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd, 1, 16)); - } - if (carrier_freq_list_utra_tdd_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_tdd, 1, 16)); - } - HANDLE_CODE(pack_integer(bref, t_resel_utra, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_utra_sf_present) { - HANDLE_CODE(t_resel_utra_sf.pack(bref)); - } - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= late_non_crit_ext_present; - group_flags[1] |= carrier_freq_list_utra_fdd_v1250.is_present(); - group_flags[1] |= carrier_freq_list_utra_tdd_v1250.is_present(); - group_flags[1] |= carrier_freq_list_utra_fdd_ext_r12.is_present(); - group_flags[1] |= carrier_freq_list_utra_tdd_ext_r12.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v1250.is_present(), 1)); - HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_v1250.is_present(), 1)); - HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_ext_r12.is_present(), 1)); - HANDLE_CODE(bref.pack(carrier_freq_list_utra_tdd_ext_r12.is_present(), 1)); - if (carrier_freq_list_utra_fdd_v1250.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_v1250, 1, 16)); - } - if (carrier_freq_list_utra_tdd_v1250.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_v1250, 1, 16)); - } - if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_fdd_ext_r12, 1, 16)); - } - if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *carrier_freq_list_utra_tdd_ext_r12, 1, 16)); - } - } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type6_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_present, 1)); - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_present, 1)); - HANDLE_CODE(bref.unpack(t_resel_utra_sf_present, 1)); - - if (carrier_freq_list_utra_fdd_present) { - HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd, bref, 1, 16)); - } - if (carrier_freq_list_utra_tdd_present) { - HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_tdd, bref, 1, 16)); - } - HANDLE_CODE(unpack_integer(t_resel_utra, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_utra_sf_present) { - HANDLE_CODE(t_resel_utra_sf.unpack(bref)); - } - - if (ext) { - ext_groups_unpacker_guard group_flags(2); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool carrier_freq_list_utra_fdd_v1250_present; - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v1250_present, 1)); - carrier_freq_list_utra_fdd_v1250.set_present(carrier_freq_list_utra_fdd_v1250_present); - bool carrier_freq_list_utra_tdd_v1250_present; - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_v1250_present, 1)); - carrier_freq_list_utra_tdd_v1250.set_present(carrier_freq_list_utra_tdd_v1250_present); - bool carrier_freq_list_utra_fdd_ext_r12_present; - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_ext_r12_present, 1)); - carrier_freq_list_utra_fdd_ext_r12.set_present(carrier_freq_list_utra_fdd_ext_r12_present); - bool carrier_freq_list_utra_tdd_ext_r12_present; - HANDLE_CODE(bref.unpack(carrier_freq_list_utra_tdd_ext_r12_present, 1)); - carrier_freq_list_utra_tdd_ext_r12.set_present(carrier_freq_list_utra_tdd_ext_r12_present); - if (carrier_freq_list_utra_fdd_v1250.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_v1250, bref, 1, 16)); - } - if (carrier_freq_list_utra_tdd_v1250.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_v1250, bref, 1, 16)); - } - if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_fdd_ext_r12, bref, 1, 16)); - } - if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*carrier_freq_list_utra_tdd_ext_r12, bref, 1, 16)); - } - } - } - return SRSASN_SUCCESS; -} -void sib_type6_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (carrier_freq_list_utra_fdd_present) { - j.start_array("carrierFreqListUTRA-FDD"); - for (const auto& e1 : carrier_freq_list_utra_fdd) { - e1.to_json(j); - } - j.end_array(); - } - if (carrier_freq_list_utra_tdd_present) { - j.start_array("carrierFreqListUTRA-TDD"); - for (const auto& e1 : carrier_freq_list_utra_tdd) { - e1.to_json(j); - } - j.end_array(); - } - j.write_int("t-ReselectionUTRA", t_resel_utra); - if (t_resel_utra_sf_present) { - j.write_fieldname("t-ReselectionUTRA-SF"); - t_resel_utra_sf.to_json(j); - } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (carrier_freq_list_utra_fdd_v1250.is_present()) { - j.start_array("carrierFreqListUTRA-FDD-v1250"); - for (const auto& e1 : *carrier_freq_list_utra_fdd_v1250) { - e1.to_json(j); - } - j.end_array(); - } - if (carrier_freq_list_utra_tdd_v1250.is_present()) { - j.start_array("carrierFreqListUTRA-TDD-v1250"); - for (const auto& e1 : *carrier_freq_list_utra_tdd_v1250) { - e1.to_json(j); - } - j.end_array(); - } - if (carrier_freq_list_utra_fdd_ext_r12.is_present()) { - j.start_array("carrierFreqListUTRA-FDD-Ext-r12"); - for (const auto& e1 : *carrier_freq_list_utra_fdd_ext_r12) { - e1.to_json(j); - } - j.end_array(); - } - if (carrier_freq_list_utra_tdd_ext_r12.is_present()) { - j.start_array("carrierFreqListUTRA-TDD-Ext-r12"); - for (const auto& e1 : *carrier_freq_list_utra_tdd_ext_r12) { - e1.to_json(j); - } - j.end_array(); - } - } - j.end_obj(); -} - -// SystemInformationBlockType7 ::= SEQUENCE -SRSASN_CODE sib_type7_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(t_resel_geran_sf_present, 1)); - HANDLE_CODE(bref.pack(carrier_freqs_info_list_present, 1)); - - HANDLE_CODE(pack_integer(bref, t_resel_geran, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_geran_sf_present) { - HANDLE_CODE(t_resel_geran_sf.pack(bref)); - } - if (carrier_freqs_info_list_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freqs_info_list, 1, 16)); - } - - if (ext) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type7_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(t_resel_geran_sf_present, 1)); - HANDLE_CODE(bref.unpack(carrier_freqs_info_list_present, 1)); - - HANDLE_CODE(unpack_integer(t_resel_geran, bref, (uint8_t)0u, (uint8_t)7u)); - if (t_resel_geran_sf_present) { - HANDLE_CODE(t_resel_geran_sf.unpack(bref)); - } - if (carrier_freqs_info_list_present) { - HANDLE_CODE(unpack_dyn_seq_of(carrier_freqs_info_list, bref, 1, 16)); - } - - if (ext) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - } - return SRSASN_SUCCESS; -} -void sib_type7_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("t-ReselectionGERAN", t_resel_geran); - if (t_resel_geran_sf_present) { - j.write_fieldname("t-ReselectionGERAN-SF"); - t_resel_geran_sf.to_json(j); - } - if (carrier_freqs_info_list_present) { - j.start_array("carrierFreqsInfoList"); - for (const auto& e1 : carrier_freqs_info_list) { - e1.to_json(j); - } - j.end_array(); - } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - } - j.end_obj(); -} - -// SystemInformationBlockType8 ::= SEQUENCE -SRSASN_CODE sib_type8_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(sys_time_info_present, 1)); - HANDLE_CODE(bref.pack(search_win_size_present, 1)); - HANDLE_CODE(bref.pack(params_hrpd_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt_present, 1)); - - if (sys_time_info_present) { - HANDLE_CODE(sys_time_info.pack(bref)); - } - if (search_win_size_present) { - HANDLE_CODE(pack_integer(bref, search_win_size, (uint8_t)0u, (uint8_t)15u)); - } - if (params_hrpd_present) { - HANDLE_CODE(bref.pack(params_hrpd.cell_resel_params_hrpd_present, 1)); - HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.pack(bref)); - if (params_hrpd.cell_resel_params_hrpd_present) { - HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.pack(bref)); - } - } - if (params1_xrtt_present) { - HANDLE_CODE(bref.pack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt.long_code_state1_xrtt_present, 1)); - HANDLE_CODE(bref.pack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); - if (params1_xrtt.csfb_regist_param1_xrtt_present) { - HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.pack(bref)); - } - if (params1_xrtt.long_code_state1_xrtt_present) { - HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.pack(bref)); - } - if (params1_xrtt.cell_resel_params1_xrtt_present) { - HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.pack(bref)); - } - } - - if (ext) { - ext_groups_packer_guard group_flags; - group_flags[0] |= late_non_crit_ext_present; - group_flags[1] |= csfb_support_for_dual_rx_ues_r9_present; - group_flags[1] |= cell_resel_params_hrpd_v920.is_present(); - group_flags[1] |= cell_resel_params1_xrtt_v920.is_present(); - group_flags[1] |= csfb_regist_param1_xrtt_v920.is_present(); - group_flags[1] |= ac_barr_cfg1_xrtt_r9.is_present(); - group_flags[2] |= csfb_dual_rx_tx_support_r10_present; - group_flags[3] |= sib8_per_plmn_list_r11.is_present(); - group_flags.pack(bref); - - if (group_flags[0]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9_present, 1)); - HANDLE_CODE(bref.pack(cell_resel_params_hrpd_v920.is_present(), 1)); - HANDLE_CODE(bref.pack(cell_resel_params1_xrtt_v920.is_present(), 1)); - HANDLE_CODE(bref.pack(csfb_regist_param1_xrtt_v920.is_present(), 1)); - HANDLE_CODE(bref.pack(ac_barr_cfg1_xrtt_r9.is_present(), 1)); - if (csfb_support_for_dual_rx_ues_r9_present) { - HANDLE_CODE(bref.pack(csfb_support_for_dual_rx_ues_r9, 1)); - } - if (cell_resel_params_hrpd_v920.is_present()) { - HANDLE_CODE(cell_resel_params_hrpd_v920->pack(bref)); - } - if (cell_resel_params1_xrtt_v920.is_present()) { - HANDLE_CODE(cell_resel_params1_xrtt_v920->pack(bref)); - } - if (csfb_regist_param1_xrtt_v920.is_present()) { - HANDLE_CODE(csfb_regist_param1_xrtt_v920->pack(bref)); - } - if (ac_barr_cfg1_xrtt_r9.is_present()) { - HANDLE_CODE(ac_barr_cfg1_xrtt_r9->pack(bref)); - } - } - if (group_flags[2]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(csfb_dual_rx_tx_support_r10_present, 1)); - } - if (group_flags[3]) { - varlength_field_pack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.pack(sib8_per_plmn_list_r11.is_present(), 1)); - if (sib8_per_plmn_list_r11.is_present()) { - HANDLE_CODE(pack_dyn_seq_of(bref, *sib8_per_plmn_list_r11, 1, 6)); - } - } - } - return SRSASN_SUCCESS; } -SRSASN_CODE sib_type8_s::unpack(cbit_ref& bref) +pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pos_sib_type_and_info_r15_item_c_( + const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(sys_time_info_present, 1)); - HANDLE_CODE(bref.unpack(search_win_size_present, 1)); - HANDLE_CODE(bref.unpack(params_hrpd_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt_present, 1)); - - if (sys_time_info_present) { - HANDLE_CODE(sys_time_info.unpack(bref)); - } - if (search_win_size_present) { - HANDLE_CODE(unpack_integer(search_win_size, bref, (uint8_t)0u, (uint8_t)15u)); - } - if (params_hrpd_present) { - HANDLE_CODE(bref.unpack(params_hrpd.cell_resel_params_hrpd_present, 1)); - HANDLE_CODE(params_hrpd.pre_regist_info_hrpd.unpack(bref)); - if (params_hrpd.cell_resel_params_hrpd_present) { - HANDLE_CODE(params_hrpd.cell_resel_params_hrpd.unpack(bref)); - } - } - if (params1_xrtt_present) { - HANDLE_CODE(bref.unpack(params1_xrtt.csfb_regist_param1_xrtt_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt.long_code_state1_xrtt_present, 1)); - HANDLE_CODE(bref.unpack(params1_xrtt.cell_resel_params1_xrtt_present, 1)); - if (params1_xrtt.csfb_regist_param1_xrtt_present) { - HANDLE_CODE(params1_xrtt.csfb_regist_param1_xrtt.unpack(bref)); - } - if (params1_xrtt.long_code_state1_xrtt_present) { - HANDLE_CODE(params1_xrtt.long_code_state1_xrtt.unpack(bref)); - } - if (params1_xrtt.cell_resel_params1_xrtt_present) { - HANDLE_CODE(params1_xrtt.cell_resel_params1_xrtt.unpack(bref)); - } - } - - if (ext) { - ext_groups_unpacker_guard group_flags(4); - group_flags.unpack(bref); - - if (group_flags[0]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - } - if (group_flags[1]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9_present, 1)); - bool cell_resel_params_hrpd_v920_present; - HANDLE_CODE(bref.unpack(cell_resel_params_hrpd_v920_present, 1)); - cell_resel_params_hrpd_v920.set_present(cell_resel_params_hrpd_v920_present); - bool cell_resel_params1_xrtt_v920_present; - HANDLE_CODE(bref.unpack(cell_resel_params1_xrtt_v920_present, 1)); - cell_resel_params1_xrtt_v920.set_present(cell_resel_params1_xrtt_v920_present); - bool csfb_regist_param1_xrtt_v920_present; - HANDLE_CODE(bref.unpack(csfb_regist_param1_xrtt_v920_present, 1)); - csfb_regist_param1_xrtt_v920.set_present(csfb_regist_param1_xrtt_v920_present); - bool ac_barr_cfg1_xrtt_r9_present; - HANDLE_CODE(bref.unpack(ac_barr_cfg1_xrtt_r9_present, 1)); - ac_barr_cfg1_xrtt_r9.set_present(ac_barr_cfg1_xrtt_r9_present); - if (csfb_support_for_dual_rx_ues_r9_present) { - HANDLE_CODE(bref.unpack(csfb_support_for_dual_rx_ues_r9, 1)); - } - if (cell_resel_params_hrpd_v920.is_present()) { - HANDLE_CODE(cell_resel_params_hrpd_v920->unpack(bref)); - } - if (cell_resel_params1_xrtt_v920.is_present()) { - HANDLE_CODE(cell_resel_params1_xrtt_v920->unpack(bref)); - } - if (csfb_regist_param1_xrtt_v920.is_present()) { - HANDLE_CODE(csfb_regist_param1_xrtt_v920->unpack(bref)); - } - if (ac_barr_cfg1_xrtt_r9.is_present()) { - HANDLE_CODE(ac_barr_cfg1_xrtt_r9->unpack(bref)); - } - } - if (group_flags[2]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - HANDLE_CODE(bref.unpack(csfb_dual_rx_tx_support_r10_present, 1)); - } - if (group_flags[3]) { - varlength_field_unpack_guard varlen_scope(bref, false); - - bool sib8_per_plmn_list_r11_present; - HANDLE_CODE(bref.unpack(sib8_per_plmn_list_r11_present, 1)); - sib8_per_plmn_list_r11.set_present(sib8_per_plmn_list_r11_present); - if (sib8_per_plmn_list_r11.is_present()) { - HANDLE_CODE(unpack_dyn_seq_of(*sib8_per_plmn_list_r11, bref, 1, 6)); - } - } + type_ = other.type(); + switch (type_) { + case types::pos_sib1_minus1_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus2_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus3_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus4_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus5_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus6_r15: + c.init(other.c.get()); + break; + case types::pos_sib1_minus7_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus1_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus2_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus3_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus4_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus5_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus6_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus7_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus8_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus9_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus10_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus11_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus12_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus13_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus14_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus15_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus16_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus17_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus18_r15: + c.init(other.c.get()); + break; + case types::pos_sib2_minus19_r15: + c.init(other.c.get()); + break; + case types::pos_sib3_minus1_r15: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } - return SRSASN_SUCCESS; } -void sib_type8_s::to_json(json_writer& j) const +pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& +pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::operator=( + const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) { - j.start_obj(); - if (sys_time_info_present) { - j.write_fieldname("systemTimeInfo"); - sys_time_info.to_json(j); - } - if (search_win_size_present) { - j.write_int("searchWindowSize", search_win_size); - } - if (params_hrpd_present) { - j.write_fieldname("parametersHRPD"); - j.start_obj(); - j.write_fieldname("preRegistrationInfoHRPD"); - params_hrpd.pre_regist_info_hrpd.to_json(j); - if (params_hrpd.cell_resel_params_hrpd_present) { - j.write_fieldname("cellReselectionParametersHRPD"); - params_hrpd.cell_resel_params_hrpd.to_json(j); - } - j.end_obj(); + if (this == &other) { + return *this; } - if (params1_xrtt_present) { - j.write_fieldname("parameters1XRTT"); - j.start_obj(); - if (params1_xrtt.csfb_regist_param1_xrtt_present) { - j.write_fieldname("csfb-RegistrationParam1XRTT"); - params1_xrtt.csfb_regist_param1_xrtt.to_json(j); - } - if (params1_xrtt.long_code_state1_xrtt_present) { - j.write_str("longCodeState1XRTT", params1_xrtt.long_code_state1_xrtt.to_string()); - } - if (params1_xrtt.cell_resel_params1_xrtt_present) { - j.write_fieldname("cellReselectionParameters1XRTT"); - params1_xrtt.cell_resel_params1_xrtt.to_json(j); - } - j.end_obj(); + set(other.type()); + switch (type_) { + case types::pos_sib1_minus1_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus2_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus3_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus4_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus5_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus6_r15: + c.set(other.c.get()); + break; + case types::pos_sib1_minus7_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus1_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus2_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus3_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus4_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus5_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus6_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus7_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus8_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus9_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus10_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus11_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus12_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus13_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus14_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus15_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus16_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus17_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus18_r15: + c.set(other.c.get()); + break; + case types::pos_sib2_minus19_r15: + c.set(other.c.get()); + break; + case types::pos_sib3_minus1_r15: + c.set(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (csfb_support_for_dual_rx_ues_r9_present) { - j.write_bool("csfb-SupportForDualRxUEs-r9", csfb_support_for_dual_rx_ues_r9); - } - if (cell_resel_params_hrpd_v920.is_present()) { - j.write_fieldname("cellReselectionParametersHRPD-v920"); - cell_resel_params_hrpd_v920->to_json(j); - } - if (cell_resel_params1_xrtt_v920.is_present()) { - j.write_fieldname("cellReselectionParameters1XRTT-v920"); - cell_resel_params1_xrtt_v920->to_json(j); - } - if (csfb_regist_param1_xrtt_v920.is_present()) { - j.write_fieldname("csfb-RegistrationParam1XRTT-v920"); - csfb_regist_param1_xrtt_v920->to_json(j); - } - if (ac_barr_cfg1_xrtt_r9.is_present()) { - j.write_fieldname("ac-BarringConfig1XRTT-r9"); - ac_barr_cfg1_xrtt_r9->to_json(j); - } - if (csfb_dual_rx_tx_support_r10_present) { - j.write_str("csfb-DualRxTxSupport-r10", "true"); - } - if (sib8_per_plmn_list_r11.is_present()) { - j.start_array("sib8-PerPLMN-List-r11"); - for (const auto& e1 : *sib8_per_plmn_list_r11) { - e1.to_json(j); - } - j.end_array(); - } + + return *this; +} +void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::pos_sib1_minus1_r15: + j.write_fieldname("posSib1-1-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus2_r15: + j.write_fieldname("posSib1-2-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus3_r15: + j.write_fieldname("posSib1-3-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus4_r15: + j.write_fieldname("posSib1-4-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus5_r15: + j.write_fieldname("posSib1-5-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus6_r15: + j.write_fieldname("posSib1-6-r15"); + c.get().to_json(j); + break; + case types::pos_sib1_minus7_r15: + j.write_fieldname("posSib1-7-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus1_r15: + j.write_fieldname("posSib2-1-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus2_r15: + j.write_fieldname("posSib2-2-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus3_r15: + j.write_fieldname("posSib2-3-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus4_r15: + j.write_fieldname("posSib2-4-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus5_r15: + j.write_fieldname("posSib2-5-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus6_r15: + j.write_fieldname("posSib2-6-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus7_r15: + j.write_fieldname("posSib2-7-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus8_r15: + j.write_fieldname("posSib2-8-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus9_r15: + j.write_fieldname("posSib2-9-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus10_r15: + j.write_fieldname("posSib2-10-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus11_r15: + j.write_fieldname("posSib2-11-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus12_r15: + j.write_fieldname("posSib2-12-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus13_r15: + j.write_fieldname("posSib2-13-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus14_r15: + j.write_fieldname("posSib2-14-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus15_r15: + j.write_fieldname("posSib2-15-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus16_r15: + j.write_fieldname("posSib2-16-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus17_r15: + j.write_fieldname("posSib2-17-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus18_r15: + j.write_fieldname("posSib2-18-r15"); + c.get().to_json(j); + break; + case types::pos_sib2_minus19_r15: + j.write_fieldname("posSib2-19-r15"); + c.get().to_json(j); + break; + case types::pos_sib3_minus1_r15: + j.write_fieldname("posSib3-1-r15"); + c.get().to_json(j); + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); } j.end_obj(); } - -// SystemInformationBlockType9 ::= SEQUENCE -SRSASN_CODE sib_type9_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(hnb_name_present, 1)); - - if (hnb_name_present) { - HANDLE_CODE(hnb_name.pack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - } - return SRSASN_SUCCESS; -} -SRSASN_CODE sib_type9_s::unpack(cbit_ref& bref) +SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pack(bit_ref& bref) const { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(hnb_name_present, 1)); - - if (hnb_name_present) { - HANDLE_CODE(hnb_name.unpack(bref)); - } - - if (ext) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + type_.pack(bref); + switch (type_) { + case types::pos_sib1_minus1_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus2_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus3_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus4_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus5_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus6_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib1_minus7_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus1_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus2_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus3_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus4_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus5_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus6_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus7_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus8_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus9_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus10_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus11_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus12_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus13_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus14_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus15_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus16_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus17_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus18_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib2_minus19_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + case types::pos_sib3_minus1_r15: + HANDLE_CODE(c.get().pack(bref)); + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -void sib_type9_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (hnb_name_present) { - j.write_str("hnb-Name", hnb_name.to_string()); - } - if (ext) { - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - } - j.end_obj(); -} - -// PosSystemInformation-r15-IEs ::= SEQUENCE -SRSASN_CODE pos_sys_info_r15_ies_s::pack(bit_ref& bref) const +SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(pack_dyn_seq_of(bref, pos_sib_type_and_info_r15, 1, 32)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::pos_sib1_minus1_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus2_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus3_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus4_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus5_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus6_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib1_minus7_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus1_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus2_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus3_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus4_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus5_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus6_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus7_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus8_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus9_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus10_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus11_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus12_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus13_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus14_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus15_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus16_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus17_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus18_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib2_minus19_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::pos_sib3_minus1_r15: + HANDLE_CODE(c.get().unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE pos_sys_info_r15_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(pos_sib_type_and_info_r15, bref, 1, 32)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); +void sib_info_item_c::destroy_() +{ + switch (type_) { + case types::sib2: + c.destroy(); + break; + case types::sib3: + c.destroy(); + break; + case types::sib4: + c.destroy(); + break; + case types::sib5: + c.destroy(); + break; + case types::sib6: + c.destroy(); + break; + case types::sib7: + c.destroy(); + break; + case types::sib8: + c.destroy(); + break; + case types::sib9: + c.destroy(); + break; + case types::sib10: + c.destroy(); + break; + case types::sib11: + c.destroy(); + break; + case types::sib12_v920: + c.destroy(); + break; + case types::sib13_v920: + c.destroy(); + break; + case types::sib14_v1130: + c.destroy(); + break; + case types::sib15_v1130: + c.destroy(); + break; + case types::sib16_v1130: + c.destroy(); + break; + case types::sib17_v1250: + c.destroy(); + break; + case types::sib18_v1250: + c.destroy(); + break; + case types::sib19_v1250: + c.destroy(); + break; + case types::sib20_v1310: + c.destroy(); + break; + case types::sib21_v1430: + c.destroy(); + break; + case types::sib24_v1530: + c.destroy(); + break; + case types::sib25_v1530: + c.destroy(); + break; + case types::sib26_v1530: + c.destroy(); + break; + default: + break; } - - return SRSASN_SUCCESS; } -void pos_sys_info_r15_ies_s::to_json(json_writer& j) const +void sib_info_item_c::set(types::options e) { - j.start_obj(); - j.start_array("posSIB-TypeAndInfo-r15"); - for (const auto& e1 : pos_sib_type_and_info_r15) { - e1.to_json(j); - } - j.end_array(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + destroy_(); + type_ = e; + switch (type_) { + case types::sib2: + c.init(); + break; + case types::sib3: + c.init(); + break; + case types::sib4: + c.init(); + break; + case types::sib5: + c.init(); + break; + case types::sib6: + c.init(); + break; + case types::sib7: + c.init(); + break; + case types::sib8: + c.init(); + break; + case types::sib9: + c.init(); + break; + case types::sib10: + c.init(); + break; + case types::sib11: + c.init(); + break; + case types::sib12_v920: + c.init(); + break; + case types::sib13_v920: + c.init(); + break; + case types::sib14_v1130: + c.init(); + break; + case types::sib15_v1130: + c.init(); + break; + case types::sib16_v1130: + c.init(); + break; + case types::sib17_v1250: + c.init(); + break; + case types::sib18_v1250: + c.init(); + break; + case types::sib19_v1250: + c.init(); + break; + case types::sib20_v1310: + c.init(); + break; + case types::sib21_v1430: + c.init(); + break; + case types::sib24_v1530: + c.init(); + break; + case types::sib25_v1530: + c.init(); + break; + case types::sib26_v1530: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sib_info_item_c"); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); +} +sib_info_item_c::sib_info_item_c(const sib_info_item_c& other) +{ + type_ = other.type(); + switch (type_) { + case types::sib2: + c.init(other.c.get()); + break; + case types::sib3: + c.init(other.c.get()); + break; + case types::sib4: + c.init(other.c.get()); + break; + case types::sib5: + c.init(other.c.get()); + break; + case types::sib6: + c.init(other.c.get()); + break; + case types::sib7: + c.init(other.c.get()); + break; + case types::sib8: + c.init(other.c.get()); + break; + case types::sib9: + c.init(other.c.get()); + break; + case types::sib10: + c.init(other.c.get()); + break; + case types::sib11: + c.init(other.c.get()); + break; + case types::sib12_v920: + c.init(other.c.get()); + break; + case types::sib13_v920: + c.init(other.c.get()); + break; + case types::sib14_v1130: + c.init(other.c.get()); + break; + case types::sib15_v1130: + c.init(other.c.get()); + break; + case types::sib16_v1130: + c.init(other.c.get()); + break; + case types::sib17_v1250: + c.init(other.c.get()); + break; + case types::sib18_v1250: + c.init(other.c.get()); + break; + case types::sib19_v1250: + c.init(other.c.get()); + break; + case types::sib20_v1310: + c.init(other.c.get()); + break; + case types::sib21_v1430: + c.init(other.c.get()); + break; + case types::sib24_v1530: + c.init(other.c.get()); + break; + case types::sib25_v1530: + c.init(other.c.get()); + break; + case types::sib26_v1530: + c.init(other.c.get()); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "sib_info_item_c"); } - j.end_obj(); } - -void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::destroy_() +sib_info_item_c& sib_info_item_c::operator=(const sib_info_item_c& other) { + if (this == &other) { + return *this; + } + set(other.type()); switch (type_) { - case types::pos_sib1_minus1_r15: - c.destroy(); - break; - case types::pos_sib1_minus2_r15: - c.destroy(); - break; - case types::pos_sib1_minus3_r15: - c.destroy(); - break; - case types::pos_sib1_minus4_r15: - c.destroy(); + case types::sib2: + c.set(other.c.get()); break; - case types::pos_sib1_minus5_r15: - c.destroy(); + case types::sib3: + c.set(other.c.get()); break; - case types::pos_sib1_minus6_r15: - c.destroy(); + case types::sib4: + c.set(other.c.get()); break; - case types::pos_sib1_minus7_r15: - c.destroy(); + case types::sib5: + c.set(other.c.get()); break; - case types::pos_sib2_minus1_r15: - c.destroy(); + case types::sib6: + c.set(other.c.get()); break; - case types::pos_sib2_minus2_r15: - c.destroy(); + case types::sib7: + c.set(other.c.get()); break; - case types::pos_sib2_minus3_r15: - c.destroy(); + case types::sib8: + c.set(other.c.get()); break; - case types::pos_sib2_minus4_r15: - c.destroy(); + case types::sib9: + c.set(other.c.get()); break; - case types::pos_sib2_minus5_r15: - c.destroy(); + case types::sib10: + c.set(other.c.get()); break; - case types::pos_sib2_minus6_r15: - c.destroy(); + case types::sib11: + c.set(other.c.get()); break; - case types::pos_sib2_minus7_r15: - c.destroy(); + case types::sib12_v920: + c.set(other.c.get()); break; - case types::pos_sib2_minus8_r15: - c.destroy(); + case types::sib13_v920: + c.set(other.c.get()); break; - case types::pos_sib2_minus9_r15: - c.destroy(); + case types::sib14_v1130: + c.set(other.c.get()); break; - case types::pos_sib2_minus10_r15: - c.destroy(); + case types::sib15_v1130: + c.set(other.c.get()); break; - case types::pos_sib2_minus11_r15: - c.destroy(); + case types::sib16_v1130: + c.set(other.c.get()); break; - case types::pos_sib2_minus12_r15: - c.destroy(); + case types::sib17_v1250: + c.set(other.c.get()); break; - case types::pos_sib2_minus13_r15: - c.destroy(); + case types::sib18_v1250: + c.set(other.c.get()); break; - case types::pos_sib2_minus14_r15: - c.destroy(); + case types::sib19_v1250: + c.set(other.c.get()); break; - case types::pos_sib2_minus15_r15: - c.destroy(); + case types::sib20_v1310: + c.set(other.c.get()); break; - case types::pos_sib2_minus16_r15: - c.destroy(); + case types::sib21_v1430: + c.set(other.c.get()); break; - case types::pos_sib2_minus17_r15: - c.destroy(); + case types::sib24_v1530: + c.set(other.c.get()); break; - case types::pos_sib2_minus18_r15: - c.destroy(); + case types::sib25_v1530: + c.set(other.c.get()); break; - case types::pos_sib2_minus19_r15: - c.destroy(); + case types::sib26_v1530: + c.set(other.c.get()); break; - case types::pos_sib3_minus1_r15: - c.destroy(); + case types::nulltype: break; default: - break; + log_invalid_choice_id(type_, "sib_info_item_c"); } + + return *this; } -void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::set(types::options e) +void sib_info_item_c::to_json(json_writer& j) const { - destroy_(); - type_ = e; + j.start_obj(); switch (type_) { - case types::pos_sib1_minus1_r15: - c.init(); - break; - case types::pos_sib1_minus2_r15: - c.init(); - break; - case types::pos_sib1_minus3_r15: - c.init(); - break; - case types::pos_sib1_minus4_r15: - c.init(); - break; - case types::pos_sib1_minus5_r15: - c.init(); - break; - case types::pos_sib1_minus6_r15: - c.init(); + case types::sib2: + j.write_fieldname("sib2"); + c.get().to_json(j); break; - case types::pos_sib1_minus7_r15: - c.init(); + case types::sib3: + j.write_fieldname("sib3"); + c.get().to_json(j); break; - case types::pos_sib2_minus1_r15: - c.init(); + case types::sib4: + j.write_fieldname("sib4"); + c.get().to_json(j); break; - case types::pos_sib2_minus2_r15: - c.init(); + case types::sib5: + j.write_fieldname("sib5"); + c.get().to_json(j); break; - case types::pos_sib2_minus3_r15: - c.init(); + case types::sib6: + j.write_fieldname("sib6"); + c.get().to_json(j); break; - case types::pos_sib2_minus4_r15: - c.init(); + case types::sib7: + j.write_fieldname("sib7"); + c.get().to_json(j); break; - case types::pos_sib2_minus5_r15: - c.init(); + case types::sib8: + j.write_fieldname("sib8"); + c.get().to_json(j); break; - case types::pos_sib2_minus6_r15: - c.init(); + case types::sib9: + j.write_fieldname("sib9"); + c.get().to_json(j); break; - case types::pos_sib2_minus7_r15: - c.init(); + case types::sib10: + j.write_fieldname("sib10"); + c.get().to_json(j); break; - case types::pos_sib2_minus8_r15: - c.init(); + case types::sib11: + j.write_fieldname("sib11"); + c.get().to_json(j); break; - case types::pos_sib2_minus9_r15: - c.init(); + case types::sib12_v920: + j.write_fieldname("sib12-v920"); + c.get().to_json(j); break; - case types::pos_sib2_minus10_r15: - c.init(); + case types::sib13_v920: + j.write_fieldname("sib13-v920"); + c.get().to_json(j); break; - case types::pos_sib2_minus11_r15: - c.init(); + case types::sib14_v1130: + j.write_fieldname("sib14-v1130"); + c.get().to_json(j); break; - case types::pos_sib2_minus12_r15: - c.init(); + case types::sib15_v1130: + j.write_fieldname("sib15-v1130"); + c.get().to_json(j); break; - case types::pos_sib2_minus13_r15: - c.init(); + case types::sib16_v1130: + j.write_fieldname("sib16-v1130"); + c.get().to_json(j); break; - case types::pos_sib2_minus14_r15: - c.init(); + case types::sib17_v1250: + j.write_fieldname("sib17-v1250"); + c.get().to_json(j); break; - case types::pos_sib2_minus15_r15: - c.init(); + case types::sib18_v1250: + j.write_fieldname("sib18-v1250"); + c.get().to_json(j); break; - case types::pos_sib2_minus16_r15: - c.init(); + case types::sib19_v1250: + j.write_fieldname("sib19-v1250"); + c.get().to_json(j); break; - case types::pos_sib2_minus17_r15: - c.init(); + case types::sib20_v1310: + j.write_fieldname("sib20-v1310"); + c.get().to_json(j); break; - case types::pos_sib2_minus18_r15: - c.init(); + case types::sib21_v1430: + j.write_fieldname("sib21-v1430"); + c.get().to_json(j); break; - case types::pos_sib2_minus19_r15: - c.init(); + case types::sib24_v1530: + j.write_fieldname("sib24-v1530"); + c.get().to_json(j); break; - case types::pos_sib3_minus1_r15: - c.init(); + case types::sib25_v1530: + j.write_fieldname("sib25-v1530"); + c.get().to_json(j); break; - case types::nulltype: + case types::sib26_v1530: + j.write_fieldname("sib26-v1530"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + log_invalid_choice_id(type_, "sib_info_item_c"); } + j.end_obj(); } -pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pos_sib_type_and_info_r15_item_c_( - const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) +SRSASN_CODE sib_info_item_c::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { - case types::pos_sib1_minus1_r15: - c.init(other.c.get()); + case types::sib2: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus2_r15: - c.init(other.c.get()); + case types::sib3: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus3_r15: - c.init(other.c.get()); + case types::sib4: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus4_r15: - c.init(other.c.get()); + case types::sib5: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus5_r15: - c.init(other.c.get()); + case types::sib6: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus6_r15: - c.init(other.c.get()); + case types::sib7: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus7_r15: - c.init(other.c.get()); + case types::sib8: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus1_r15: - c.init(other.c.get()); + case types::sib9: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus2_r15: - c.init(other.c.get()); + case types::sib10: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus3_r15: - c.init(other.c.get()); + case types::sib11: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus4_r15: - c.init(other.c.get()); + case types::sib12_v920: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib13_v920: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib14_v1130: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib15_v1130: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib16_v1130: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib17_v1250: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib18_v1250: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib19_v1250: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib20_v1310: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib21_v1430: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib24_v1530: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib25_v1530: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + case types::sib26_v1530: { + varlength_field_pack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().pack(bref)); + } break; + default: + log_invalid_choice_id(type_, "sib_info_item_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_info_item_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sib2: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus5_r15: - c.init(other.c.get()); + case types::sib3: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus6_r15: - c.init(other.c.get()); + case types::sib4: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus7_r15: - c.init(other.c.get()); + case types::sib5: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus8_r15: - c.init(other.c.get()); + case types::sib6: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus9_r15: - c.init(other.c.get()); + case types::sib7: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus10_r15: - c.init(other.c.get()); + case types::sib8: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus11_r15: - c.init(other.c.get()); + case types::sib9: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus12_r15: - c.init(other.c.get()); + case types::sib10: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus13_r15: - c.init(other.c.get()); + case types::sib11: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::sib12_v920: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib13_v920: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib14_v1130: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib15_v1130: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib16_v1130: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib17_v1250: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib18_v1250: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib19_v1250: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib20_v1310: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib21_v1430: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib24_v1530: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib25_v1530: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + case types::sib26_v1530: { + varlength_field_unpack_guard varlen_scope(bref, false); + HANDLE_CODE(c.get().unpack(bref)); + } break; + default: + log_invalid_choice_id(type_, "sib_info_item_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// SystemInformation-r8-IEs ::= SEQUENCE +SRSASN_CODE sys_info_r8_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, sib_type_and_info, 1, 32)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE sys_info_r8_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(sib_type_and_info, bref, 1, 32)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void sys_info_r8_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.start_array("sib-TypeAndInfo"); + for (const auto& e1 : sib_type_and_info) { + e1.to_json(j); + } + j.end_array(); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// SystemInformation ::= SEQUENCE +SRSASN_CODE sys_info_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(crit_exts.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE sys_info_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void sys_info_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void sys_info_s::crit_exts_c_::destroy_() +{ + switch (type_) { + case types::sys_info_r8: + c.destroy(); break; - case types::pos_sib2_minus14_r15: - c.init(other.c.get()); + case types::crit_exts_future_r15: + c.destroy(); break; - case types::pos_sib2_minus15_r15: - c.init(other.c.get()); + default: break; - case types::pos_sib2_minus16_r15: - c.init(other.c.get()); + } +} +void sys_info_s::crit_exts_c_::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::sys_info_r8: + c.init(); break; - case types::pos_sib2_minus17_r15: - c.init(other.c.get()); + case types::crit_exts_future_r15: + c.init(); break; - case types::pos_sib2_minus18_r15: - c.init(other.c.get()); + case types::nulltype: break; - case types::pos_sib2_minus19_r15: - c.init(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + } +} +sys_info_s::crit_exts_c_::crit_exts_c_(const sys_info_s::crit_exts_c_& other) +{ + type_ = other.type(); + switch (type_) { + case types::sys_info_r8: + c.init(other.c.get()); break; - case types::pos_sib3_minus1_r15: - c.init(other.c.get()); + case types::crit_exts_future_r15: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); } } -pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& -pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::operator=( - const pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_& other) +sys_info_s::crit_exts_c_& sys_info_s::crit_exts_c_::operator=(const sys_info_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::pos_sib1_minus1_r15: - c.set(other.c.get()); + case types::sys_info_r8: + c.set(other.c.get()); break; - case types::pos_sib1_minus2_r15: - c.set(other.c.get()); + case types::crit_exts_future_r15: + c.set(other.c.get()); break; - case types::pos_sib1_minus3_r15: - c.set(other.c.get()); + case types::nulltype: break; - case types::pos_sib1_minus4_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + } + + return *this; +} +void sys_info_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::sys_info_r8: + j.write_fieldname("systemInformation-r8"); + c.get().to_json(j); break; - case types::pos_sib1_minus5_r15: - c.set(other.c.get()); + case types::crit_exts_future_r15: + j.write_fieldname("criticalExtensionsFuture-r15"); + c.get().to_json(j); break; - case types::pos_sib1_minus6_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + } + j.end_obj(); +} +SRSASN_CODE sys_info_s::crit_exts_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::sys_info_r8: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus7_r15: - c.set(other.c.get()); + case types::crit_exts_future_r15: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus1_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sys_info_s::crit_exts_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sys_info_r8: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus2_r15: - c.set(other.c.get()); + case types::crit_exts_future_r15: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib2_minus3_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set(types::options e) +{ + type_ = e; +} +void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::pos_sys_info_r15: + j.write_fieldname("posSystemInformation-r15"); + c.to_json(j); break; - case types::pos_sib2_minus4_r15: - c.set(other.c.get()); + case types::crit_exts_future: break; - case types::pos_sib2_minus5_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + } + j.end_obj(); +} +SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::pos_sys_info_r15: + HANDLE_CODE(c.pack(bref)); break; - case types::pos_sib2_minus6_r15: - c.set(other.c.get()); + case types::crit_exts_future: break; - case types::pos_sib2_minus7_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::pos_sys_info_r15: + HANDLE_CODE(c.unpack(bref)); break; - case types::pos_sib2_minus8_r15: - c.set(other.c.get()); + case types::crit_exts_future: break; - case types::pos_sib2_minus9_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// BCCH-DL-SCH-MessageType ::= CHOICE +void bcch_dl_sch_msg_type_c::set(types::options e) +{ + type_ = e; +} +void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); break; - case types::pos_sib2_minus10_r15: - c.set(other.c.get()); + case types::msg_class_ext: break; - case types::pos_sib2_minus11_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + } + j.end_obj(); +} +SRSASN_CODE bcch_dl_sch_msg_type_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); break; - case types::pos_sib2_minus12_r15: - c.set(other.c.get()); + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_type_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::c1: + HANDLE_CODE(c.unpack(bref)); + break; + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +void bcch_dl_sch_msg_type_c::c1_c_::destroy_() +{ + switch (type_) { + case types::sys_info: + c.destroy(); + break; + case types::sib_type1: + c.destroy(); break; - case types::pos_sib2_minus13_r15: - c.set(other.c.get()); + default: break; - case types::pos_sib2_minus14_r15: - c.set(other.c.get()); + } +} +void bcch_dl_sch_msg_type_c::c1_c_::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::sys_info: + c.init(); break; - case types::pos_sib2_minus15_r15: - c.set(other.c.get()); + case types::sib_type1: + c.init(); break; - case types::pos_sib2_minus16_r15: - c.set(other.c.get()); + case types::nulltype: break; - case types::pos_sib2_minus17_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + } +} +bcch_dl_sch_msg_type_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_c::c1_c_& other) +{ + type_ = other.type(); + switch (type_) { + case types::sys_info: + c.init(other.c.get()); break; - case types::pos_sib2_minus18_r15: - c.set(other.c.get()); + case types::sib_type1: + c.init(other.c.get()); break; - case types::pos_sib2_minus19_r15: - c.set(other.c.get()); + case types::nulltype: break; - case types::pos_sib3_minus1_r15: - c.set(other.c.get()); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + } +} +bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::c1_c_::operator=(const bcch_dl_sch_msg_type_c::c1_c_& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::sys_info: + c.set(other.c.get()); + break; + case types::sib_type1: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); } return *this; } -void pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::to_json(json_writer& j) const +void bcch_dl_sch_msg_type_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::pos_sib1_minus1_r15: - j.write_fieldname("posSib1-1-r15"); - c.get().to_json(j); + case types::sys_info: + j.write_fieldname("systemInformation"); + c.get().to_json(j); break; - case types::pos_sib1_minus2_r15: - j.write_fieldname("posSib1-2-r15"); - c.get().to_json(j); + case types::sib_type1: + j.write_fieldname("systemInformationBlockType1"); + c.get().to_json(j); break; - case types::pos_sib1_minus3_r15: - j.write_fieldname("posSib1-3-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + } + j.end_obj(); +} +SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::sys_info: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus4_r15: - j.write_fieldname("posSib1-4-r15"); - c.get().to_json(j); + case types::sib_type1: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib1_minus5_r15: - j.write_fieldname("posSib1-5-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sys_info: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib1_minus6_r15: - j.write_fieldname("posSib1-6-r15"); - c.get().to_json(j); + case types::sib_type1: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib1_minus7_r15: - j.write_fieldname("posSib1-7-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// BCCH-DL-SCH-Message ::= SEQUENCE +SRSASN_CODE bcch_dl_sch_msg_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(msg.pack(bref)); + + bref.align_bytes_zero(); + + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(msg.unpack(bref)); + + bref.align_bytes(); + + return SRSASN_SUCCESS; +} +void bcch_dl_sch_msg_s::to_json(json_writer& j) const +{ + j.start_array(); + j.start_obj(); + j.start_obj("BCCH-DL-SCH-Message"); + j.write_fieldname("message"); + msg.to_json(j); + j.end_obj(); + j.end_obj(); + j.end_array(); +} + +// BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE +void bcch_dl_sch_msg_type_br_r13_c::set(types::options e) +{ + type_ = e; +} +void bcch_dl_sch_msg_type_br_r13_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); break; - case types::pos_sib2_minus1_r15: - j.write_fieldname("posSib2-1-r15"); - c.get().to_json(j); + case types::msg_class_ext: break; - case types::pos_sib2_minus2_r15: - j.write_fieldname("posSib2-2-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + } + j.end_obj(); +} +SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); break; - case types::pos_sib2_minus3_r15: - j.write_fieldname("posSib2-3-r15"); - c.get().to_json(j); + case types::msg_class_ext: break; - case types::pos_sib2_minus4_r15: - j.write_fieldname("posSib2-4-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::c1: + HANDLE_CODE(c.unpack(bref)); break; - case types::pos_sib2_minus5_r15: - j.write_fieldname("posSib2-5-r15"); - c.get().to_json(j); + case types::msg_class_ext: break; - case types::pos_sib2_minus6_r15: - j.write_fieldname("posSib2-6-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +void bcch_dl_sch_msg_type_br_r13_c::c1_c_::destroy_() +{ + switch (type_) { + case types::sys_info_br_r13: + c.destroy(); break; - case types::pos_sib2_minus7_r15: - j.write_fieldname("posSib2-7-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + c.destroy(); break; - case types::pos_sib2_minus8_r15: - j.write_fieldname("posSib2-8-r15"); - c.get().to_json(j); + default: break; - case types::pos_sib2_minus9_r15: - j.write_fieldname("posSib2-9-r15"); - c.get().to_json(j); + } +} +void bcch_dl_sch_msg_type_br_r13_c::c1_c_::set(types::options e) +{ + destroy_(); + type_ = e; + switch (type_) { + case types::sys_info_br_r13: + c.init(); + break; + case types::sib_type1_br_r13: + c.init(); + break; + case types::nulltype: + break; + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + } +} +bcch_dl_sch_msg_type_br_r13_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) +{ + type_ = other.type(); + switch (type_) { + case types::sys_info_br_r13: + c.init(other.c.get()); break; - case types::pos_sib2_minus10_r15: - j.write_fieldname("posSib2-10-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + c.init(other.c.get()); break; - case types::pos_sib2_minus11_r15: - j.write_fieldname("posSib2-11-r15"); - c.get().to_json(j); + case types::nulltype: break; - case types::pos_sib2_minus12_r15: - j.write_fieldname("posSib2-12-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + } +} +bcch_dl_sch_msg_type_br_r13_c::c1_c_& +bcch_dl_sch_msg_type_br_r13_c::c1_c_::operator=(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) +{ + if (this == &other) { + return *this; + } + set(other.type()); + switch (type_) { + case types::sys_info_br_r13: + c.set(other.c.get()); break; - case types::pos_sib2_minus13_r15: - j.write_fieldname("posSib2-13-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + c.set(other.c.get()); break; - case types::pos_sib2_minus14_r15: - j.write_fieldname("posSib2-14-r15"); - c.get().to_json(j); + case types::nulltype: break; - case types::pos_sib2_minus15_r15: - j.write_fieldname("posSib2-15-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + } + + return *this; +} +void bcch_dl_sch_msg_type_br_r13_c::c1_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::sys_info_br_r13: + j.write_fieldname("systemInformation-BR-r13"); + c.get().to_json(j); break; - case types::pos_sib2_minus16_r15: - j.write_fieldname("posSib2-16-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + j.write_fieldname("systemInformationBlockType1-BR-r13"); + c.get().to_json(j); break; - case types::pos_sib2_minus17_r15: - j.write_fieldname("posSib2-17-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + } + j.end_obj(); +} +SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::sys_info_br_r13: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus18_r15: - j.write_fieldname("posSib2-18-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + HANDLE_CODE(c.get().pack(bref)); break; - case types::pos_sib2_minus19_r15: - j.write_fieldname("posSib2-19-r15"); - c.get().to_json(j); + default: + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::sys_info_br_r13: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::pos_sib3_minus1_r15: - j.write_fieldname("posSib3-1-r15"); - c.get().to_json(j); + case types::sib_type1_br_r13: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); + log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// BCCH-DL-SCH-Message-BR ::= SEQUENCE +SRSASN_CODE bcch_dl_sch_msg_br_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(msg.pack(bref)); + + bref.align_bytes_zero(); + + return SRSASN_SUCCESS; +} +SRSASN_CODE bcch_dl_sch_msg_br_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(msg.unpack(bref)); + + bref.align_bytes(); + + return SRSASN_SUCCESS; +} +void bcch_dl_sch_msg_br_s::to_json(json_writer& j) const +{ + j.start_array(); + j.start_obj(); + j.start_obj("BCCH-DL-SCH-Message-BR"); + j.write_fieldname("message"); + msg.to_json(j); + j.end_obj(); + j.end_obj(); + j.end_array(); +} + +// SIB-Type-MBMS-r14 ::= ENUMERATED +std::string sib_type_mbms_r14_opts::to_string() const +{ + static const char* options[] = { + "sibType10", "sibType11", "sibType12-v920", "sibType13-v920", "sibType15-v1130", "sibType16-v1130"}; + return convert_enum_idx(options, 6, value, "sib_type_mbms_r14_e"); +} +uint8_t sib_type_mbms_r14_opts::to_number() const +{ + static const uint8_t options[] = {10, 11, 12, 13, 15, 16}; + return map_enum_number(options, 6, value, "sib_type_mbms_r14_e"); +} + +// SchedulingInfo-MBMS-r14 ::= SEQUENCE +SRSASN_CODE sched_info_mbms_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(si_periodicity_r14.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r14, 0, 31)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE sched_info_mbms_r14_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(si_periodicity_r14.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r14, bref, 0, 31)); + + return SRSASN_SUCCESS; +} +void sched_info_mbms_r14_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("si-Periodicity-r14", si_periodicity_r14.to_string()); + j.start_array("sib-MappingInfo-r14"); + for (const auto& e1 : sib_map_info_r14) { + j.write_str(e1.to_string()); } + j.end_array(); + j.end_obj(); +} + +std::string sched_info_mbms_r14_s::si_periodicity_r14_opts::to_string() const +{ + static const char* options[] = {"rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; + return convert_enum_idx(options, 6, value, "sched_info_mbms_r14_s::si_periodicity_r14_e_"); +} +uint16_t sched_info_mbms_r14_s::si_periodicity_r14_opts::to_number() const +{ + static const uint16_t options[] = {16, 32, 64, 128, 256, 512}; + return map_enum_number(options, 6, value, "sched_info_mbms_r14_s::si_periodicity_r14_e_"); +} + +// NonMBSFN-SubframeConfig-r14 ::= SEQUENCE +SRSASN_CODE non_mbsfn_sf_cfg_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(radio_frame_alloc_period_r14.pack(bref)); + HANDLE_CODE(pack_integer(bref, radio_frame_alloc_offset_r14, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(sf_alloc_r14.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE non_mbsfn_sf_cfg_r14_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(radio_frame_alloc_period_r14.unpack(bref)); + HANDLE_CODE(unpack_integer(radio_frame_alloc_offset_r14, bref, (uint8_t)0u, (uint8_t)7u)); + HANDLE_CODE(sf_alloc_r14.unpack(bref)); + + return SRSASN_SUCCESS; +} +void non_mbsfn_sf_cfg_r14_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("radioFrameAllocationPeriod-r14", radio_frame_alloc_period_r14.to_string()); + j.write_int("radioFrameAllocationOffset-r14", radio_frame_alloc_offset_r14); + j.write_str("subframeAllocation-r14", sf_alloc_r14.to_string()); j.end_obj(); } -SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::pack(bit_ref& bref) const + +std::string non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_string() const +{ + static const char* options[] = {"rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf512"}; + return convert_enum_idx(options, 7, value, "non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_e_"); +} +uint16_t non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_number() const +{ + static const uint16_t options[] = {4, 8, 16, 32, 64, 128, 512}; + return map_enum_number(options, 7, value, "non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_e_"); +} + +// SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE +SRSASN_CODE sib_type1_mbms_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(multi_band_info_list_r14_present, 1)); + HANDLE_CODE(bref.pack(non_mbsfn_sf_cfg_r14_present, 1)); + HANDLE_CODE(bref.pack(sib_type13_r14_present, 1)); + HANDLE_CODE(bref.pack(cell_access_related_info_list_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_r14.plmn_id_list_r14, 1, 6)); + HANDLE_CODE(cell_access_related_info_r14.tac_r14.pack(bref)); + HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.pack(bref)); + HANDLE_CODE(pack_integer(bref, freq_band_ind_r14, (uint16_t)1u, (uint16_t)256u)); + if (multi_band_info_list_r14_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r14, 1, 8, integer_packer(1, 256))); + } + HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_mbms_r14, 1, 32)); + HANDLE_CODE(si_win_len_r14.pack(bref)); + HANDLE_CODE(pack_integer(bref, sys_info_value_tag_r14, (uint8_t)0u, (uint8_t)31u)); + if (non_mbsfn_sf_cfg_r14_present) { + HANDLE_CODE(non_mbsfn_sf_cfg_r14.pack(bref)); + } + HANDLE_CODE(pdsch_cfg_common_r14.pack(bref)); + if (sib_type13_r14_present) { + HANDLE_CODE(sib_type13_r14.pack(bref)); + } + if (cell_access_related_info_list_r14_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_list_r14, 1, 5)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type1_mbms_r14_s::unpack(cbit_ref& bref) { - type_.pack(bref); - switch (type_) { - case types::pos_sib1_minus1_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus2_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus3_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus4_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus5_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus6_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib1_minus7_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus1_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus2_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus3_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus4_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus5_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus6_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus7_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus8_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus9_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus10_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus11_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus12_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus13_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus14_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus15_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus16_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus17_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus18_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib2_minus19_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::pos_sib3_minus1_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.unpack(multi_band_info_list_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_mbsfn_sf_cfg_r14_present, 1)); + HANDLE_CODE(bref.unpack(sib_type13_r14_present, 1)); + HANDLE_CODE(bref.unpack(cell_access_related_info_list_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_r14.plmn_id_list_r14, bref, 1, 6)); + HANDLE_CODE(cell_access_related_info_r14.tac_r14.unpack(bref)); + HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.unpack(bref)); + HANDLE_CODE(unpack_integer(freq_band_ind_r14, bref, (uint16_t)1u, (uint16_t)256u)); + if (multi_band_info_list_r14_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r14, bref, 1, 8, integer_packer(1, 256))); + } + HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_mbms_r14, bref, 1, 32)); + HANDLE_CODE(si_win_len_r14.unpack(bref)); + HANDLE_CODE(unpack_integer(sys_info_value_tag_r14, bref, (uint8_t)0u, (uint8_t)31u)); + if (non_mbsfn_sf_cfg_r14_present) { + HANDLE_CODE(non_mbsfn_sf_cfg_r14.unpack(bref)); + } + HANDLE_CODE(pdsch_cfg_common_r14.unpack(bref)); + if (sib_type13_r14_present) { + HANDLE_CODE(sib_type13_r14.unpack(bref)); + } + if (cell_access_related_info_list_r14_present) { + HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_list_r14, bref, 1, 5)); } + return SRSASN_SUCCESS; } -SRSASN_CODE pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_::unpack(cbit_ref& bref) +void sib_type1_mbms_r14_s::to_json(json_writer& j) const { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::pos_sib1_minus1_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus2_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus3_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus4_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus5_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus6_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib1_minus7_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus1_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus2_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus3_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus4_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus5_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus6_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus7_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus8_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus9_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus10_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus11_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus12_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus13_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus14_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus15_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus16_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus17_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus18_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib2_minus19_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::pos_sib3_minus1_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "pos_sys_info_r15_ies_s::pos_sib_type_and_info_r15_item_c_"); - return SRSASN_ERROR_DECODE_FAIL; + j.start_obj(); + j.write_fieldname("cellAccessRelatedInfo-r14"); + j.start_obj(); + j.start_array("plmn-IdentityList-r14"); + for (const auto& e1 : cell_access_related_info_r14.plmn_id_list_r14) { + e1.to_json(j); } - return SRSASN_SUCCESS; + j.end_array(); + j.write_str("trackingAreaCode-r14", cell_access_related_info_r14.tac_r14.to_string()); + j.write_str("cellIdentity-r14", cell_access_related_info_r14.cell_id_r14.to_string()); + j.end_obj(); + j.write_int("freqBandIndicator-r14", freq_band_ind_r14); + if (multi_band_info_list_r14_present) { + j.start_array("multiBandInfoList-r14"); + for (const auto& e1 : multi_band_info_list_r14) { + j.write_int(e1); + } + j.end_array(); + } + j.start_array("schedulingInfoList-MBMS-r14"); + for (const auto& e1 : sched_info_list_mbms_r14) { + e1.to_json(j); + } + j.end_array(); + j.write_str("si-WindowLength-r14", si_win_len_r14.to_string()); + j.write_int("systemInfoValueTag-r14", sys_info_value_tag_r14); + if (non_mbsfn_sf_cfg_r14_present) { + j.write_fieldname("nonMBSFN-SubframeConfig-r14"); + non_mbsfn_sf_cfg_r14.to_json(j); + } + j.write_fieldname("pdsch-ConfigCommon-r14"); + pdsch_cfg_common_r14.to_json(j); + if (sib_type13_r14_present) { + j.write_fieldname("systemInformationBlockType13-r14"); + sib_type13_r14.to_json(j); + } + if (cell_access_related_info_list_r14_present) { + j.start_array("cellAccessRelatedInfoList-r14"); + for (const auto& e1 : cell_access_related_info_list_r14) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +std::string sib_type1_mbms_r14_s::si_win_len_r14_opts::to_string() const +{ + static const char* options[] = {"ms1", "ms2", "ms5", "ms10", "ms15", "ms20", "ms40", "ms80"}; + return convert_enum_idx(options, 8, value, "sib_type1_mbms_r14_s::si_win_len_r14_e_"); +} +uint8_t sib_type1_mbms_r14_s::si_win_len_r14_opts::to_number() const +{ + static const uint8_t options[] = {1, 2, 5, 10, 15, 20, 40, 80}; + return map_enum_number(options, 8, value, "sib_type1_mbms_r14_s::si_win_len_r14_e_"); } -void sib_info_item_c::destroy_() +// CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE +SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::pack(bit_ref& bref) const { - switch (type_) { - case types::sib2: - c.destroy(); - break; - case types::sib3: - c.destroy(); - break; - case types::sib4: - c.destroy(); - break; - case types::sib5: - c.destroy(); - break; - case types::sib6: - c.destroy(); - break; - case types::sib7: - c.destroy(); - break; - case types::sib8: - c.destroy(); - break; - case types::sib9: - c.destroy(); - break; - case types::sib10: - c.destroy(); - break; - case types::sib11: - c.destroy(); - break; - case types::sib12_v920: - c.destroy(); - break; - case types::sib13_v920: - c.destroy(); - break; - case types::sib14_v1130: - c.destroy(); - break; - case types::sib15_v1130: - c.destroy(); - break; - case types::sib16_v1130: - c.destroy(); - break; - case types::sib17_v1250: - c.destroy(); - break; - case types::sib18_v1250: - c.destroy(); - break; - case types::sib19_v1250: - c.destroy(); - break; - case types::sib20_v1310: - c.destroy(); - break; - case types::sib21_v1430: - c.destroy(); - break; - case types::sib24_v1530: - c.destroy(); - break; - case types::sib25_v1530: - c.destroy(); - break; - case types::sib26_v1530: - c.destroy(); - break; - default: - break; + HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 86))); } + + return SRSASN_SUCCESS; } -void sib_info_item_c::set(types::options e) +SRSASN_CODE carrier_freq_info_utra_fdd_v8h0_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::sib2: - c.init(); - break; - case types::sib3: - c.init(); - break; - case types::sib4: - c.init(); - break; - case types::sib5: - c.init(); - break; - case types::sib6: - c.init(); - break; - case types::sib7: - c.init(); - break; - case types::sib8: - c.init(); - break; - case types::sib9: - c.init(); - break; - case types::sib10: - c.init(); - break; - case types::sib11: - c.init(); - break; - case types::sib12_v920: - c.init(); - break; - case types::sib13_v920: - c.init(); - break; - case types::sib14_v1130: - c.init(); - break; - case types::sib15_v1130: - c.init(); - break; - case types::sib16_v1130: - c.init(); - break; - case types::sib17_v1250: - c.init(); - break; - case types::sib18_v1250: - c.init(); - break; - case types::sib19_v1250: - c.init(); - break; - case types::sib20_v1310: - c.init(); - break; - case types::sib21_v1430: - c.init(); - break; - case types::sib24_v1530: - c.init(); - break; - case types::sib25_v1530: - c.init(); - break; - case types::sib26_v1530: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); + HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 86))); } + + return SRSASN_SUCCESS; } -sib_info_item_c::sib_info_item_c(const sib_info_item_c& other) +void carrier_freq_info_utra_fdd_v8h0_s::to_json(json_writer& j) const { - type_ = other.type(); - switch (type_) { - case types::sib2: - c.init(other.c.get()); - break; - case types::sib3: - c.init(other.c.get()); - break; - case types::sib4: - c.init(other.c.get()); - break; - case types::sib5: - c.init(other.c.get()); - break; - case types::sib6: - c.init(other.c.get()); - break; - case types::sib7: - c.init(other.c.get()); - break; - case types::sib8: - c.init(other.c.get()); - break; - case types::sib9: - c.init(other.c.get()); - break; - case types::sib10: - c.init(other.c.get()); - break; - case types::sib11: - c.init(other.c.get()); - break; - case types::sib12_v920: - c.init(other.c.get()); - break; - case types::sib13_v920: - c.init(other.c.get()); - break; - case types::sib14_v1130: - c.init(other.c.get()); - break; - case types::sib15_v1130: - c.init(other.c.get()); - break; - case types::sib16_v1130: - c.init(other.c.get()); - break; - case types::sib17_v1250: - c.init(other.c.get()); - break; - case types::sib18_v1250: - c.init(other.c.get()); - break; - case types::sib19_v1250: - c.init(other.c.get()); - break; - case types::sib20_v1310: - c.init(other.c.get()); - break; - case types::sib21_v1430: - c.init(other.c.get()); - break; - case types::sib24_v1530: - c.init(other.c.get()); - break; - case types::sib25_v1530: - c.init(other.c.get()); - break; - case types::sib26_v1530: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); + j.start_obj(); + if (multi_band_info_list_present) { + j.start_array("multiBandInfoList"); + for (const auto& e1 : multi_band_info_list) { + j.write_int(e1); + } + j.end_array(); } + j.end_obj(); } -sib_info_item_c& sib_info_item_c::operator=(const sib_info_item_c& other) + +// NS-PmaxValue-v10l0 ::= SEQUENCE +SRSASN_CODE ns_pmax_value_v10l0_s::pack(bit_ref& bref) const { - if (this == &other) { - return *this; + HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); + + if (add_spec_emission_v10l0_present) { + HANDLE_CODE(pack_integer(bref, add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); } - set(other.type()); - switch (type_) { - case types::sib2: - c.set(other.c.get()); - break; - case types::sib3: - c.set(other.c.get()); - break; - case types::sib4: - c.set(other.c.get()); - break; - case types::sib5: - c.set(other.c.get()); - break; - case types::sib6: - c.set(other.c.get()); - break; - case types::sib7: - c.set(other.c.get()); - break; - case types::sib8: - c.set(other.c.get()); - break; - case types::sib9: - c.set(other.c.get()); - break; - case types::sib10: - c.set(other.c.get()); - break; - case types::sib11: - c.set(other.c.get()); - break; - case types::sib12_v920: - c.set(other.c.get()); - break; - case types::sib13_v920: - c.set(other.c.get()); - break; - case types::sib14_v1130: - c.set(other.c.get()); - break; - case types::sib15_v1130: - c.set(other.c.get()); - break; - case types::sib16_v1130: - c.set(other.c.get()); - break; - case types::sib17_v1250: - c.set(other.c.get()); - break; - case types::sib18_v1250: - c.set(other.c.get()); - break; - case types::sib19_v1250: - c.set(other.c.get()); - break; - case types::sib20_v1310: - c.set(other.c.get()); - break; - case types::sib21_v1430: - c.set(other.c.get()); - break; - case types::sib24_v1530: - c.set(other.c.get()); - break; - case types::sib25_v1530: - c.set(other.c.get()); - break; - case types::sib26_v1530: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ns_pmax_value_v10l0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); + + if (add_spec_emission_v10l0_present) { + HANDLE_CODE(unpack_integer(add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); } - return *this; + return SRSASN_SUCCESS; } -void sib_info_item_c::to_json(json_writer& j) const +void ns_pmax_value_v10l0_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::sib2: - j.write_fieldname("sib2"); - c.get().to_json(j); - break; - case types::sib3: - j.write_fieldname("sib3"); - c.get().to_json(j); - break; - case types::sib4: - j.write_fieldname("sib4"); - c.get().to_json(j); - break; - case types::sib5: - j.write_fieldname("sib5"); - c.get().to_json(j); - break; - case types::sib6: - j.write_fieldname("sib6"); - c.get().to_json(j); - break; - case types::sib7: - j.write_fieldname("sib7"); - c.get().to_json(j); - break; - case types::sib8: - j.write_fieldname("sib8"); - c.get().to_json(j); - break; - case types::sib9: - j.write_fieldname("sib9"); - c.get().to_json(j); - break; - case types::sib10: - j.write_fieldname("sib10"); - c.get().to_json(j); - break; - case types::sib11: - j.write_fieldname("sib11"); - c.get().to_json(j); - break; - case types::sib12_v920: - j.write_fieldname("sib12-v920"); - c.get().to_json(j); - break; - case types::sib13_v920: - j.write_fieldname("sib13-v920"); - c.get().to_json(j); - break; - case types::sib14_v1130: - j.write_fieldname("sib14-v1130"); - c.get().to_json(j); - break; - case types::sib15_v1130: - j.write_fieldname("sib15-v1130"); - c.get().to_json(j); - break; - case types::sib16_v1130: - j.write_fieldname("sib16-v1130"); - c.get().to_json(j); - break; - case types::sib17_v1250: - j.write_fieldname("sib17-v1250"); - c.get().to_json(j); - break; - case types::sib18_v1250: - j.write_fieldname("sib18-v1250"); - c.get().to_json(j); - break; - case types::sib19_v1250: - j.write_fieldname("sib19-v1250"); - c.get().to_json(j); - break; - case types::sib20_v1310: - j.write_fieldname("sib20-v1310"); - c.get().to_json(j); - break; - case types::sib21_v1430: - j.write_fieldname("sib21-v1430"); - c.get().to_json(j); - break; - case types::sib24_v1530: - j.write_fieldname("sib24-v1530"); - c.get().to_json(j); - break; - case types::sib25_v1530: - j.write_fieldname("sib25-v1530"); - c.get().to_json(j); - break; - case types::sib26_v1530: - j.write_fieldname("sib26-v1530"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); + if (add_spec_emission_v10l0_present) { + j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); + } + j.end_obj(); +} + +// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE inter_freq_carrier_freq_info_v10l0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + + return SRSASN_SUCCESS; +} +void inter_freq_carrier_freq_info_v10l0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (freq_band_info_v10l0_present) { + j.start_array("freqBandInfo-v10l0"); + for (const auto& e1 : freq_band_info_v10l0) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10l0_present) { + j.start_array("multiBandInfoList-v10l0"); + for (const auto& e1 : multi_band_info_list_v10l0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + j.end_obj(); +} + +// InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 64))); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE inter_freq_carrier_freq_info_v8h0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 64))); + } + + return SRSASN_SUCCESS; +} +void inter_freq_carrier_freq_info_v8h0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (multi_band_info_list_present) { + j.start_array("multiBandInfoList"); + for (const auto& e1 : multi_band_info_list) { + j.write_int(e1); + } + j.end_array(); } j.end_obj(); } -SRSASN_CODE sib_info_item_c::pack(bit_ref& bref) const + +// MultiBandInfo-v9e0 ::= SEQUENCE +SRSASN_CODE multi_band_info_v9e0_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::sib2: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib3: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib4: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib5: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib6: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib7: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib8: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib9: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib10: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib11: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib12_v920: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib13_v920: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib14_v1130: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib15_v1130: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib16_v1130: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib17_v1250: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib18_v1250: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib19_v1250: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib20_v1310: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib21_v1430: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib24_v1530: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib25_v1530: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - case types::sib26_v1530: { - varlength_field_pack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().pack(bref)); - } break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); + + if (freq_band_ind_v9e0_present) { + HANDLE_CODE(pack_integer(bref, freq_band_ind_v9e0, (uint16_t)65u, (uint16_t)256u)); } + return SRSASN_SUCCESS; } -SRSASN_CODE sib_info_item_c::unpack(cbit_ref& bref) +SRSASN_CODE multi_band_info_v9e0_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sib2: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib3: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib4: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib5: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib6: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib7: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib8: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib9: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib10: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib11: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib12_v920: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib13_v920: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib14_v1130: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib15_v1130: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib16_v1130: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib17_v1250: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib18_v1250: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib19_v1250: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib20_v1310: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib21_v1430: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib24_v1530: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib25_v1530: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - case types::sib26_v1530: { - varlength_field_unpack_guard varlen_scope(bref, false); - HANDLE_CODE(c.get().unpack(bref)); - } break; - default: - log_invalid_choice_id(type_, "sib_info_item_c"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); + + if (freq_band_ind_v9e0_present) { + HANDLE_CODE(unpack_integer(freq_band_ind_v9e0, bref, (uint16_t)65u, (uint16_t)256u)); + } + + return SRSASN_SUCCESS; +} +void multi_band_info_v9e0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (freq_band_ind_v9e0_present) { + j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); + } + j.end_obj(); +} + +// InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE +SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(dl_carrier_freq_v9e0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); + + if (dl_carrier_freq_v9e0_present) { + HANDLE_CODE(pack_integer(bref, dl_carrier_freq_v9e0, (uint32_t)65536u, (uint32_t)262143u)); + } + if (multi_band_info_list_v9e0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE inter_freq_carrier_freq_info_v9e0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(dl_carrier_freq_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); + + if (dl_carrier_freq_v9e0_present) { + HANDLE_CODE(unpack_integer(dl_carrier_freq_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); + } + if (multi_band_info_list_v9e0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); } + return SRSASN_SUCCESS; } +void inter_freq_carrier_freq_info_v9e0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (dl_carrier_freq_v9e0_present) { + j.write_int("dl-CarrierFreq-v9e0", dl_carrier_freq_v9e0); + } + if (multi_band_info_list_v9e0_present) { + j.start_array("multiBandInfoList-v9e0"); + for (const auto& e1 : multi_band_info_list_v9e0) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); +} -// SystemInformation-r8-IEs ::= SEQUENCE -SRSASN_CODE sys_info_r8_ies_s::pack(bit_ref& bref) const +// SIB-Type-v12j0 ::= ENUMERATED +std::string sib_type_v12j0_opts::to_string() const { - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + static const char* options[] = {"sibType19-v1250", + "sibType20-v1310", + "sibType21-v1430", + "sibType24-v1530", + "sibType25-v1530", + "sibType26-v1530", + "spare10", + "spare9", + "spare8", + "spare7", + "spare6", + "spare5", + "spare4", + "spare3", + "spare2", + "spare1"}; + return convert_enum_idx(options, 16, value, "sib_type_v12j0_e"); +} +uint8_t sib_type_v12j0_opts::to_number() const +{ + static const uint8_t options[] = {19, 20, 21, 24, 25, 26}; + return map_enum_number(options, 6, value, "sib_type_v12j0_e"); +} - HANDLE_CODE(pack_dyn_seq_of(bref, sib_type_and_info, 1, 32)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); +// SchedulingInfo-v12j0 ::= SEQUENCE +SRSASN_CODE sched_info_v12j0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(sib_map_info_v12j0_present, 1)); + + if (sib_map_info_v12j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_v12j0, 1, 31)); } return SRSASN_SUCCESS; } -SRSASN_CODE sys_info_r8_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE sched_info_v12j0_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(sib_map_info_v12j0_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(sib_type_and_info, bref, 1, 32)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (sib_map_info_v12j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_v12j0, bref, 1, 31)); } return SRSASN_SUCCESS; } -void sys_info_r8_ies_s::to_json(json_writer& j) const +void sched_info_v12j0_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("sib-TypeAndInfo"); - for (const auto& e1 : sib_type_and_info) { - e1.to_json(j); - } - j.end_array(); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (sib_map_info_v12j0_present) { + j.start_array("sib-MappingInfo-v12j0"); + for (const auto& e1 : sib_map_info_v12j0) { + j.write_str(e1.to_string()); + } + j.end_array(); } j.end_obj(); } -// SystemInformation ::= SEQUENCE -SRSASN_CODE sys_info_s::pack(bit_ref& bref) const +// SchedulingInfoExt-r12 ::= SEQUENCE +SRSASN_CODE sched_info_ext_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(crit_exts.pack(bref)); + HANDLE_CODE(si_periodicity_r12.pack(bref)); + HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r12, 1, 31)); return SRSASN_SUCCESS; } -SRSASN_CODE sys_info_s::unpack(cbit_ref& bref) +SRSASN_CODE sched_info_ext_r12_s::unpack(cbit_ref& bref) { - HANDLE_CODE(crit_exts.unpack(bref)); + HANDLE_CODE(si_periodicity_r12.unpack(bref)); + HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r12, bref, 1, 31)); return SRSASN_SUCCESS; } -void sys_info_s::to_json(json_writer& j) const +void sched_info_ext_r12_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); + j.write_str("si-Periodicity-r12", si_periodicity_r12.to_string()); + j.start_array("sib-MappingInfo-r12"); + for (const auto& e1 : sib_map_info_r12) { + j.write_str(e1.to_string()); + } + j.end_array(); j.end_obj(); } -void sys_info_s::crit_exts_c_::destroy_() +// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v12j0_ies_s::pack(bit_ref& bref) const { - switch (type_) { - case types::sys_info_r8: - c.destroy(); - break; - case types::crit_exts_future_r15: - c.destroy(); - break; - default: - break; + HANDLE_CODE(bref.pack(sched_info_list_v12j0_present, 1)); + HANDLE_CODE(bref.pack(sched_info_list_ext_r12_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (sched_info_list_v12j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_v12j0, 1, 32)); } + if (sched_info_list_ext_r12_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_ext_r12, 1, 32)); + } + + return SRSASN_SUCCESS; } -void sys_info_s::crit_exts_c_::set(types::options e) +SRSASN_CODE sib_type1_v12j0_ies_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::sys_info_r8: - c.init(); - break; - case types::crit_exts_future_r15: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + HANDLE_CODE(bref.unpack(sched_info_list_v12j0_present, 1)); + HANDLE_CODE(bref.unpack(sched_info_list_ext_r12_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (sched_info_list_v12j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_v12j0, bref, 1, 32)); + } + if (sched_info_list_ext_r12_present) { + HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_ext_r12, bref, 1, 32)); } + + return SRSASN_SUCCESS; } -sys_info_s::crit_exts_c_::crit_exts_c_(const sys_info_s::crit_exts_c_& other) +void sib_type1_v12j0_ies_s::to_json(json_writer& j) const { - type_ = other.type(); - switch (type_) { - case types::sys_info_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future_r15: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + j.start_obj(); + if (sched_info_list_v12j0_present) { + j.start_array("schedulingInfoList-v12j0"); + for (const auto& e1 : sched_info_list_v12j0) { + e1.to_json(j); + } + j.end_array(); + } + if (sched_info_list_ext_r12_present) { + j.start_array("schedulingInfoListExt-r12"); + for (const auto& e1 : sched_info_list_ext_r12) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } + j.end_obj(); } -sys_info_s::crit_exts_c_& sys_info_s::crit_exts_c_::operator=(const sys_info_s::crit_exts_c_& other) + +// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v10x0_ies_s::pack(bit_ref& bref) const { - if (this == &other) { - return *this; + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } - set(other.type()); - switch (type_) { - case types::sys_info_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future_r15: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void sys_info_s::crit_exts_c_::to_json(json_writer& j) const +SRSASN_CODE sib_type1_v10x0_ies_s::unpack(cbit_ref& bref) { - j.start_obj(); - switch (type_) { - case types::sys_info_r8: - j.write_fieldname("systemInformation-r8"); - c.get().to_json(j); - break; - case types::crit_exts_future_r15: - j.write_fieldname("criticalExtensionsFuture-r15"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - j.end_obj(); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; } -SRSASN_CODE sys_info_s::crit_exts_c_::pack(bit_ref& bref) const +void sib_type1_v10x0_ies_s::to_json(json_writer& j) const { - type_.pack(bref); - switch (type_) { - case types::sys_info_r8: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE sys_info_s::crit_exts_c_::unpack(cbit_ref& bref) + +// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v10l0_ies_s::pack(bit_ref& bref) const { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sys_info_r8: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } + return SRSASN_SUCCESS; } - -void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::destroy_() +SRSASN_CODE sib_type1_v10l0_ies_s::unpack(cbit_ref& bref) { - switch (type_) { - case types::pos_sys_info_r15: - c.destroy(); - break; - default: - break; + HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + + return SRSASN_SUCCESS; } -void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::set(types::options e) +void sib_type1_v10l0_ies_s::to_json(json_writer& j) const { - destroy_(); - type_ = e; - switch (type_) { - case types::pos_sys_info_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + j.start_obj(); + if (freq_band_info_v10l0_present) { + j.start_array("freqBandInfo-v10l0"); + for (const auto& e1 : freq_band_info_v10l0) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10l0_present) { + j.start_array("multiBandInfoList-v10l0"); + for (const auto& e1 : multi_band_info_list_v10l0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } + j.end_obj(); } -sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::crit_exts_future_r15_c_( - const sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& other) + +// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v10j0_ies_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::pos_sys_info_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_band_info_r10_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); + } + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; } -sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::operator=( - const sys_info_s::crit_exts_c_::crit_exts_future_r15_c_& other) +SRSASN_CODE sib_type1_v10j0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_band_info_r10_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); } - set(other.type()); - switch (type_) { - case types::pos_sys_info_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::to_json(json_writer& j) const +void sib_type1_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::pos_sys_info_r15: - j.write_fieldname("posSystemInformation-r15"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); + if (freq_band_info_r10_present) { + j.start_array("freqBandInfo-r10"); + for (const auto& e1 : freq_band_info_r10) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10j0_present) { + j.start_array("multiBandInfoList-v10j0"); + for (const auto& e1 : multi_band_info_list_v10j0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } j.end_obj(); } -SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::pack(bit_ref& bref) const + +// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v9e0_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::pos_sys_info_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(freq_band_ind_v9e0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_band_ind_v9e0_present) { + HANDLE_CODE(pack_integer(bref, freq_band_ind_v9e0, (uint16_t)65u, (uint16_t)256u)); + } + if (multi_band_info_list_v9e0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v9e0, 1, 8)); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE sys_info_s::crit_exts_c_::crit_exts_future_r15_c_::unpack(cbit_ref& bref) +SRSASN_CODE sib_type1_v9e0_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::pos_sys_info_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_::crit_exts_future_r15_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(freq_band_ind_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_band_ind_v9e0_present) { + HANDLE_CODE(unpack_integer(freq_band_ind_v9e0, bref, (uint16_t)65u, (uint16_t)256u)); + } + if (multi_band_info_list_v9e0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v9e0, bref, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + return SRSASN_SUCCESS; } - -// BCCH-DL-SCH-MessageType ::= CHOICE -void bcch_dl_sch_msg_type_c::destroy_() +void sib_type1_v9e0_ies_s::to_json(json_writer& j) const { - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; + j.start_obj(); + if (freq_band_ind_v9e0_present) { + j.write_int("freqBandIndicator-v9e0", freq_band_ind_v9e0); } -} -void bcch_dl_sch_msg_type_c::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + if (multi_band_info_list_v9e0_present) { + j.start_array("multiBandInfoList-v9e0"); + for (const auto& e1 : multi_band_info_list_v9e0) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } + j.end_obj(); } -bcch_dl_sch_msg_type_c::bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other) + +// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE +SRSASN_CODE sib_type1_v8h0_ies_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 64))); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; } -bcch_dl_sch_msg_type_c& bcch_dl_sch_msg_type_c::operator=(const bcch_dl_sch_msg_type_c& other) +SRSASN_CODE sib_type1_v8h0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 64))); } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const +void sib_type1_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); + if (multi_band_info_list_present) { + j.start_array("multiBandInfoList"); + for (const auto& e1 : multi_band_info_list) { + j.write_int(e1); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } j.end_obj(); } -SRSASN_CODE bcch_dl_sch_msg_type_c::pack(bit_ref& bref) const + +// SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v13c0_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(ul_pwr_ctrl_common_v13c0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (ul_pwr_ctrl_common_v13c0_present) { + HANDLE_CODE(ul_pwr_ctrl_common_v13c0.pack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_type_c::unpack(cbit_ref& bref) +SRSASN_CODE sib_type2_v13c0_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(ul_pwr_ctrl_common_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (ul_pwr_ctrl_common_v13c0_present) { + HANDLE_CODE(ul_pwr_ctrl_common_v13c0.unpack(bref)); } + return SRSASN_SUCCESS; } - -void bcch_dl_sch_msg_type_c::c1_c_::destroy_() +void sib_type2_v13c0_ies_s::to_json(json_writer& j) const { - switch (type_) { - case types::sys_info: - c.destroy(); - break; - case types::sib_type1: - c.destroy(); - break; - default: - break; + j.start_obj(); + if (ul_pwr_ctrl_common_v13c0_present) { + j.write_fieldname("uplinkPowerControlCommon-v13c0"); + ul_pwr_ctrl_common_v13c0.to_json(j); } -} -void bcch_dl_sch_msg_type_c::c1_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::sys_info: - c.init(); - break; - case types::sib_type1: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } + j.end_obj(); } -bcch_dl_sch_msg_type_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_c::c1_c_& other) + +// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v10n0_ies_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::sys_info: - c.init(other.c.get()); - break; - case types::sib_type1: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } + + return SRSASN_SUCCESS; } -bcch_dl_sch_msg_type_c::c1_c_& bcch_dl_sch_msg_type_c::c1_c_::operator=(const bcch_dl_sch_msg_type_c::c1_c_& other) +SRSASN_CODE sib_type2_v10n0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - set(other.type()); - switch (type_) { - case types::sys_info: - c.set(other.c.get()); - break; - case types::sib_type1: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_type_c::c1_c_::to_json(json_writer& j) const +void sib_type2_v10n0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::sys_info: - j.write_fieldname("systemInformation"); - c.get().to_json(j); - break; - case types::sib_type1: - j.write_fieldname("systemInformationBlockType1"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } j.end_obj(); } -SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::pack(bit_ref& bref) const + +// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v10m0_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::sys_info: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib_type1: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(freq_info_v10l0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_info_v10l0_present) { + HANDLE_CODE(pack_integer(bref, freq_info_v10l0.add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, integer_packer(33, 288))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type2_v10m0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(freq_info_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_info_v10l0_present) { + HANDLE_CODE(unpack_integer(freq_info_v10l0.add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, integer_packer(33, 288))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_type_c::c1_c_::unpack(cbit_ref& bref) +void sib_type2_v10m0_ies_s::to_json(json_writer& j) const { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sys_info: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib_type1: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c::c1_c_"); - return SRSASN_ERROR_DECODE_FAIL; + j.start_obj(); + if (freq_info_v10l0_present) { + j.write_fieldname("freqInfo-v10l0"); + j.start_obj(); + j.write_int("additionalSpectrumEmission-v10l0", freq_info_v10l0.add_spec_emission_v10l0); + j.end_obj(); } - return SRSASN_SUCCESS; + if (multi_band_info_list_v10l0_present) { + j.start_array("multiBandInfoList-v10l0"); + for (const auto& e1 : multi_band_info_list_v10l0) { + j.write_int(e1); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); } -// BCCH-DL-SCH-Message ::= SEQUENCE -SRSASN_CODE bcch_dl_sch_msg_s::pack(bit_ref& bref) const +// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v9i0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(msg.pack(bref)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(dummy_present, 1)); - bref.align_bytes_zero(); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type2_v9i0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(msg.unpack(bref)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(dummy_present, 1)); - bref.align_bytes(); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_s::to_json(json_writer& j) const +void sib_type2_v9i0_ies_s::to_json(json_writer& j) const { - j.start_array(); j.start_obj(); - j.start_obj("BCCH-DL-SCH-Message"); - j.write_fieldname("message"); - msg.to_json(j); - j.end_obj(); + if (non_crit_ext_present) { + j.write_str("nonCriticalExtension", non_crit_ext.to_string()); + } + if (dummy_present) { + j.write_fieldname("dummy"); + j.start_obj(); + j.end_obj(); + } j.end_obj(); - j.end_array(); } -// BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE -void bcch_dl_sch_msg_type_br_r13_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} -void bcch_dl_sch_msg_type_br_r13_c::set(types::options e) +// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v9e0_ies_s::pack(bit_ref& bref) const { - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + HANDLE_CODE(bref.pack(ul_carrier_freq_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (ul_carrier_freq_v9e0_present) { + HANDLE_CODE(pack_integer(bref, ul_carrier_freq_v9e0, (uint32_t)65536u, (uint32_t)262143u)); } -} -bcch_dl_sch_msg_type_br_r13_c::bcch_dl_sch_msg_type_br_r13_c(const bcch_dl_sch_msg_type_br_r13_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } + + return SRSASN_SUCCESS; } -bcch_dl_sch_msg_type_br_r13_c& bcch_dl_sch_msg_type_br_r13_c::operator=(const bcch_dl_sch_msg_type_br_r13_c& other) +SRSASN_CODE sib_type2_v9e0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(ul_carrier_freq_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (ul_carrier_freq_v9e0_present) { + HANDLE_CODE(unpack_integer(ul_carrier_freq_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_type_br_r13_c::to_json(json_writer& j) const +void sib_type2_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); + if (ul_carrier_freq_v9e0_present) { + j.write_int("ul-CarrierFreq-v9e0", ul_carrier_freq_v9e0); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } j.end_obj(); } -SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::pack(bit_ref& bref) const + +// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE +SRSASN_CODE sib_type2_v8h0_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list, 1, 8, integer_packer(1, 32))); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::unpack(cbit_ref& bref) +SRSASN_CODE sib_type2_v8h0_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(multi_band_info_list_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (multi_band_info_list_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list, bref, 1, 8, integer_packer(1, 32))); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + return SRSASN_SUCCESS; } - -void bcch_dl_sch_msg_type_br_r13_c::c1_c_::destroy_() +void sib_type2_v8h0_ies_s::to_json(json_writer& j) const { - switch (type_) { - case types::sys_info_br_r13: - c.destroy(); - break; - case types::sib_type1_br_r13: - c.destroy(); - break; - default: - break; + j.start_obj(); + if (multi_band_info_list_present) { + j.start_array("multiBandInfoList"); + for (const auto& e1 : multi_band_info_list) { + j.write_int(e1); + } + j.end_array(); } -} -void bcch_dl_sch_msg_type_br_r13_c::c1_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::sys_info_br_r13: - c.init(); - break; - case types::sib_type1_br_r13: - c.init(); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } + j.end_obj(); } -bcch_dl_sch_msg_type_br_r13_c::c1_c_::c1_c_(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::sys_info_br_r13: - c.init(other.c.get()); - break; - case types::sib_type1_br_r13: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + +// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE +SRSASN_CODE sib_type3_v10l0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_v10l0, 1, 8)); + } + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker(1, 8, Packer()))); } + + return SRSASN_SUCCESS; } -bcch_dl_sch_msg_type_br_r13_c::c1_c_& -bcch_dl_sch_msg_type_br_r13_c::c1_c_::operator=(const bcch_dl_sch_msg_type_br_r13_c::c1_c_& other) +SRSASN_CODE sib_type3_v10l0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(freq_band_info_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_band_info_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_v10l0, bref, 1, 8)); } - set(other.type()); - switch (type_) { - case types::sys_info_br_r13: - c.set(other.c.get()); - break; - case types::sib_type1_br_r13: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + if (multi_band_info_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } - return *this; + return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_type_br_r13_c::c1_c_::to_json(json_writer& j) const +void sib_type3_v10l0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::sys_info_br_r13: - j.write_fieldname("systemInformation-BR-r13"); - c.get().to_json(j); - break; - case types::sib_type1_br_r13: - j.write_fieldname("systemInformationBlockType1-BR-r13"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); + if (freq_band_info_v10l0_present) { + j.start_array("freqBandInfo-v10l0"); + for (const auto& e1 : freq_band_info_v10l0) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10l0_present) { + j.start_array("multiBandInfoList-v10l0"); + for (const auto& e1 : multi_band_info_list_v10l0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::pack(bit_ref& bref) const + +// SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE +SRSASN_CODE sib_type3_v10j0_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::sys_info_br_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::sib_type1_br_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.pack(multi_band_info_list_v10j0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (freq_band_info_r10_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, freq_band_info_r10, 1, 8)); + } + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10j0, 1, 8, SeqOfPacker(1, 8, Packer()))); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_type_br_r13_c::c1_c_::unpack(cbit_ref& bref) +SRSASN_CODE sib_type3_v10j0_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::sys_info_br_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::sib_type1_br_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_br_r13_c::c1_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(freq_band_info_r10_present, 1)); + HANDLE_CODE(bref.unpack(multi_band_info_list_v10j0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (freq_band_info_r10_present) { + HANDLE_CODE(unpack_dyn_seq_of(freq_band_info_r10, bref, 1, 8)); + } + if (multi_band_info_list_v10j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10j0, bref, 1, 8, SeqOfPacker(1, 8, Packer()))); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + return SRSASN_SUCCESS; } +void sib_type3_v10j0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (freq_band_info_r10_present) { + j.start_array("freqBandInfo-r10"); + for (const auto& e1 : freq_band_info_r10) { + e1.to_json(j); + } + j.end_array(); + } + if (multi_band_info_list_v10j0_present) { + j.start_array("multiBandInfoList-v10j0"); + for (const auto& e1 : multi_band_info_list_v10j0) { + j.start_array(); + for (const auto& e2 : e1) { + e2.to_json(j); + } + j.end_array(); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} -// BCCH-DL-SCH-Message-BR ::= SEQUENCE -SRSASN_CODE bcch_dl_sch_msg_br_s::pack(bit_ref& bref) const +// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE +SRSASN_CODE sib_type5_v13a0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(msg.pack(bref)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v13a0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - bref.align_bytes_zero(); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (inter_freq_carrier_freq_list_v13a0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v13a0, 1, 8)); + } return SRSASN_SUCCESS; } -SRSASN_CODE bcch_dl_sch_msg_br_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type5_v13a0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(msg.unpack(bref)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v13a0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - bref.align_bytes(); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (inter_freq_carrier_freq_list_v13a0_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v13a0, bref, 1, 8)); + } return SRSASN_SUCCESS; } -void bcch_dl_sch_msg_br_s::to_json(json_writer& j) const +void sib_type5_v13a0_ies_s::to_json(json_writer& j) const { - j.start_array(); j.start_obj(); - j.start_obj("BCCH-DL-SCH-Message-BR"); - j.write_fieldname("message"); - msg.to_json(j); - j.end_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (inter_freq_carrier_freq_list_v13a0_present) { + j.start_array("interFreqCarrierFreqList-v13a0"); + for (const auto& e1 : inter_freq_carrier_freq_list_v13a0) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } j.end_obj(); - j.end_array(); } -// SIB-Type-MBMS-r14 ::= ENUMERATED -std::string sib_type_mbms_r14_opts::to_string() const +// SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE +SRSASN_CODE sib_type5_v10l0_ies_s::pack(bit_ref& bref) const { - static const char* options[] = { - "sibType10", "sibType11", "sibType12-v920", "sibType13-v920", "sibType15-v1130", "sibType16-v1130"}; - return convert_enum_idx(options, 6, value, "sib_type_mbms_r14_e"); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10l0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (inter_freq_carrier_freq_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10l0, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; } -uint8_t sib_type_mbms_r14_opts::to_number() const +SRSASN_CODE sib_type5_v10l0_ies_s::unpack(cbit_ref& bref) { - static const uint8_t options[] = {10, 11, 12, 13, 15, 16}; - return map_enum_number(options, 6, value, "sib_type_mbms_r14_e"); + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (inter_freq_carrier_freq_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10l0, bref, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void sib_type5_v10l0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (inter_freq_carrier_freq_list_v10l0_present) { + j.start_array("interFreqCarrierFreqList-v10l0"); + for (const auto& e1 : inter_freq_carrier_freq_list_v10l0) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); } -// SchedulingInfo-MBMS-r14 ::= SEQUENCE -SRSASN_CODE sched_info_mbms_r14_s::pack(bit_ref& bref) const +// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE +SRSASN_CODE sib_type5_v10j0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(si_periodicity_r14.pack(bref)); - HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r14, 0, 31)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v10j0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (inter_freq_carrier_freq_list_v10j0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v10j0, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE sched_info_mbms_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type5_v10j0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(si_periodicity_r14.unpack(bref)); - HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r14, bref, 0, 31)); + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v10j0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (inter_freq_carrier_freq_list_v10j0_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v10j0, bref, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void sched_info_mbms_r14_s::to_json(json_writer& j) const +void sib_type5_v10j0_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("si-Periodicity-r14", si_periodicity_r14.to_string()); - j.start_array("sib-MappingInfo-r14"); - for (const auto& e1 : sib_map_info_r14) { - j.write_str(e1.to_string()); + if (inter_freq_carrier_freq_list_v10j0_present) { + j.start_array("interFreqCarrierFreqList-v10j0"); + for (const auto& e1 : inter_freq_carrier_freq_list_v10j0) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } - j.end_array(); j.end_obj(); } -std::string sched_info_mbms_r14_s::si_periodicity_r14_opts::to_string() const -{ - static const char* options[] = {"rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; - return convert_enum_idx(options, 6, value, "sched_info_mbms_r14_s::si_periodicity_r14_e_"); -} -uint16_t sched_info_mbms_r14_s::si_periodicity_r14_opts::to_number() const +// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE +SRSASN_CODE sib_type5_v9e0_ies_s::pack(bit_ref& bref) const { - static const uint16_t options[] = {16, 32, 64, 128, 256, 512}; - return map_enum_number(options, 6, value, "sched_info_mbms_r14_s::si_periodicity_r14_e_"); -} + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); -// NonMBSFN-SubframeConfig-r14 ::= SEQUENCE -SRSASN_CODE non_mbsfn_sf_cfg_r14_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(radio_frame_alloc_period_r14.pack(bref)); - HANDLE_CODE(pack_integer(bref, radio_frame_alloc_offset_r14, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(sf_alloc_r14.pack(bref)); + if (inter_freq_carrier_freq_list_v9e0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v9e0, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE non_mbsfn_sf_cfg_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type5_v9e0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(radio_frame_alloc_period_r14.unpack(bref)); - HANDLE_CODE(unpack_integer(radio_frame_alloc_offset_r14, bref, (uint8_t)0u, (uint8_t)7u)); - HANDLE_CODE(sf_alloc_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (inter_freq_carrier_freq_list_v9e0_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v9e0, bref, 1, 8)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void non_mbsfn_sf_cfg_r14_s::to_json(json_writer& j) const +void sib_type5_v9e0_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("radioFrameAllocationPeriod-r14", radio_frame_alloc_period_r14.to_string()); - j.write_int("radioFrameAllocationOffset-r14", radio_frame_alloc_offset_r14); - j.write_str("subframeAllocation-r14", sf_alloc_r14.to_string()); + if (inter_freq_carrier_freq_list_v9e0_present) { + j.start_array("interFreqCarrierFreqList-v9e0"); + for (const auto& e1 : inter_freq_carrier_freq_list_v9e0) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } j.end_obj(); } -std::string non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_string() const -{ - static const char* options[] = {"rf4", "rf8", "rf16", "rf32", "rf64", "rf128", "rf512"}; - return convert_enum_idx(options, 7, value, "non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_e_"); -} -uint16_t non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_opts::to_number() const -{ - static const uint16_t options[] = {4, 8, 16, 32, 64, 128, 512}; - return map_enum_number(options, 7, value, "non_mbsfn_sf_cfg_r14_s::radio_frame_alloc_period_r14_e_"); -} - -// SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE -SRSASN_CODE sib_type1_mbms_r14_s::pack(bit_ref& bref) const +// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE +SRSASN_CODE sib_type5_v8h0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_band_info_list_r14_present, 1)); - HANDLE_CODE(bref.pack(non_mbsfn_sf_cfg_r14_present, 1)); - HANDLE_CODE(bref.pack(sib_type13_r14_present, 1)); - HANDLE_CODE(bref.pack(cell_access_related_info_list_r14_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_carrier_freq_list_v8h0_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_r14.plmn_id_list_r14, 1, 6)); - HANDLE_CODE(cell_access_related_info_r14.tac_r14.pack(bref)); - HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.pack(bref)); - HANDLE_CODE(pack_integer(bref, freq_band_ind_r14, (uint16_t)1u, (uint16_t)256u)); - if (multi_band_info_list_r14_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_r14, 1, 8, integer_packer(1, 256))); - } - HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_mbms_r14, 1, 32)); - HANDLE_CODE(si_win_len_r14.pack(bref)); - HANDLE_CODE(pack_integer(bref, sys_info_value_tag_r14, (uint8_t)0u, (uint8_t)31u)); - if (non_mbsfn_sf_cfg_r14_present) { - HANDLE_CODE(non_mbsfn_sf_cfg_r14.pack(bref)); - } - HANDLE_CODE(pdsch_cfg_common_r14.pack(bref)); - if (sib_type13_r14_present) { - HANDLE_CODE(sib_type13_r14.pack(bref)); + if (inter_freq_carrier_freq_list_v8h0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, inter_freq_carrier_freq_list_v8h0, 1, 8)); } - if (cell_access_related_info_list_r14_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, cell_access_related_info_list_r14, 1, 5)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE sib_type1_mbms_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE sib_type5_v8h0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_band_info_list_r14_present, 1)); - HANDLE_CODE(bref.unpack(non_mbsfn_sf_cfg_r14_present, 1)); - HANDLE_CODE(bref.unpack(sib_type13_r14_present, 1)); - HANDLE_CODE(bref.unpack(cell_access_related_info_list_r14_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_carrier_freq_list_v8h0_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_r14.plmn_id_list_r14, bref, 1, 6)); - HANDLE_CODE(cell_access_related_info_r14.tac_r14.unpack(bref)); - HANDLE_CODE(cell_access_related_info_r14.cell_id_r14.unpack(bref)); - HANDLE_CODE(unpack_integer(freq_band_ind_r14, bref, (uint16_t)1u, (uint16_t)256u)); - if (multi_band_info_list_r14_present) { - HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_r14, bref, 1, 8, integer_packer(1, 256))); - } - HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_mbms_r14, bref, 1, 32)); - HANDLE_CODE(si_win_len_r14.unpack(bref)); - HANDLE_CODE(unpack_integer(sys_info_value_tag_r14, bref, (uint8_t)0u, (uint8_t)31u)); - if (non_mbsfn_sf_cfg_r14_present) { - HANDLE_CODE(non_mbsfn_sf_cfg_r14.unpack(bref)); - } - HANDLE_CODE(pdsch_cfg_common_r14.unpack(bref)); - if (sib_type13_r14_present) { - HANDLE_CODE(sib_type13_r14.unpack(bref)); + if (inter_freq_carrier_freq_list_v8h0_present) { + HANDLE_CODE(unpack_dyn_seq_of(inter_freq_carrier_freq_list_v8h0, bref, 1, 8)); } - if (cell_access_related_info_list_r14_present) { - HANDLE_CODE(unpack_dyn_seq_of(cell_access_related_info_list_r14, bref, 1, 5)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void sib_type1_mbms_r14_s::to_json(json_writer& j) const +void sib_type5_v8h0_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("cellAccessRelatedInfo-r14"); - j.start_obj(); - j.start_array("plmn-IdentityList-r14"); - for (const auto& e1 : cell_access_related_info_r14.plmn_id_list_r14) { - e1.to_json(j); - } - j.end_array(); - j.write_str("trackingAreaCode-r14", cell_access_related_info_r14.tac_r14.to_string()); - j.write_str("cellIdentity-r14", cell_access_related_info_r14.cell_id_r14.to_string()); - j.end_obj(); - j.write_int("freqBandIndicator-r14", freq_band_ind_r14); - if (multi_band_info_list_r14_present) { - j.start_array("multiBandInfoList-r14"); - for (const auto& e1 : multi_band_info_list_r14) { - j.write_int(e1); + if (inter_freq_carrier_freq_list_v8h0_present) { + j.start_array("interFreqCarrierFreqList-v8h0"); + for (const auto& e1 : inter_freq_carrier_freq_list_v8h0) { + e1.to_json(j); } j.end_array(); } - j.start_array("schedulingInfoList-MBMS-r14"); - for (const auto& e1 : sched_info_list_mbms_r14) { - e1.to_json(j); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } - j.end_array(); - j.write_str("si-WindowLength-r14", si_win_len_r14.to_string()); - j.write_int("systemInfoValueTag-r14", sys_info_value_tag_r14); - if (non_mbsfn_sf_cfg_r14_present) { - j.write_fieldname("nonMBSFN-SubframeConfig-r14"); - non_mbsfn_sf_cfg_r14.to_json(j); + j.end_obj(); +} + +// SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE +SRSASN_CODE sib_type6_v8h0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(carrier_freq_list_utra_fdd_v8h0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (carrier_freq_list_utra_fdd_v8h0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, carrier_freq_list_utra_fdd_v8h0, 1, 16)); } - j.write_fieldname("pdsch-ConfigCommon-r14"); - pdsch_cfg_common_r14.to_json(j); - if (sib_type13_r14_present) { - j.write_fieldname("systemInformationBlockType13-r14"); - sib_type13_r14.to_json(j); + + return SRSASN_SUCCESS; +} +SRSASN_CODE sib_type6_v8h0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(carrier_freq_list_utra_fdd_v8h0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (carrier_freq_list_utra_fdd_v8h0_present) { + HANDLE_CODE(unpack_dyn_seq_of(carrier_freq_list_utra_fdd_v8h0, bref, 1, 16)); } - if (cell_access_related_info_list_r14_present) { - j.start_array("cellAccessRelatedInfoList-r14"); - for (const auto& e1 : cell_access_related_info_list_r14) { + + return SRSASN_SUCCESS; +} +void sib_type6_v8h0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (carrier_freq_list_utra_fdd_v8h0_present) { + j.start_array("carrierFreqListUTRA-FDD-v8h0"); + for (const auto& e1 : carrier_freq_list_utra_fdd_v8h0) { e1.to_json(j); } j.end_array(); @@ -11309,14 +11147,3 @@ void sib_type1_mbms_r14_s::to_json(json_writer& j) const } j.end_obj(); } - -std::string sib_type1_mbms_r14_s::si_win_len_r14_opts::to_string() const -{ - static const char* options[] = {"ms1", "ms2", "ms5", "ms10", "ms15", "ms20", "ms40", "ms80"}; - return convert_enum_idx(options, 8, value, "sib_type1_mbms_r14_s::si_win_len_r14_e_"); -} -uint8_t sib_type1_mbms_r14_s::si_win_len_r14_opts::to_number() const -{ - static const uint8_t options[] = {1, 2, 5, 10, 15, 20, 40, 80}; - return map_enum_number(options, 8, value, "sib_type1_mbms_r14_s::si_win_len_r14_e_"); -} diff --git a/lib/src/asn1/rrc/dl_ccch_msg.cc b/lib/src/asn1/rrc/dl_ccch_msg.cc index 936caa189..c39159781 100644 --- a/lib/src/asn1/rrc/dl_ccch_msg.cc +++ b/lib/src/asn1/rrc/dl_ccch_msg.cc @@ -1327,66 +1327,9 @@ void rrc_conn_reest_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reest_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); - } -} -rrc_conn_reest_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); - } -} -rrc_conn_reest_s::crit_exts_c_& rrc_conn_reest_s::crit_exts_c_::operator=(const rrc_conn_reest_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reest_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1394,7 +1337,7 @@ void rrc_conn_reest_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1408,7 +1351,7 @@ SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1425,7 +1368,7 @@ SRSASN_CODE rrc_conn_reest_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1545,67 +1488,9 @@ void rrc_conn_reest_reject_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_reject_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_reest_reject_r8: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reest_reject_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_reest_reject_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); - } -} -rrc_conn_reest_reject_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_reject_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_reest_reject_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); - } -} -rrc_conn_reest_reject_s::crit_exts_c_& -rrc_conn_reest_reject_s::crit_exts_c_::operator=(const rrc_conn_reest_reject_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_reest_reject_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_reject_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reest_reject_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1613,7 +1498,7 @@ void rrc_conn_reest_reject_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_conn_reest_reject_r8: j.write_fieldname("rrcConnectionReestablishmentReject-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1627,7 +1512,7 @@ SRSASN_CODE rrc_conn_reest_reject_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_conn_reest_reject_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1644,7 +1529,7 @@ SRSASN_CODE rrc_conn_reest_reject_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_conn_reest_reject_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1676,67 +1561,9 @@ void rrc_conn_reject_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reject_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reject_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); - } -} -rrc_conn_reject_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reject_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); - } -} -rrc_conn_reject_s::crit_exts_c_& -rrc_conn_reject_s::crit_exts_c_::operator=(const rrc_conn_reject_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reject_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1744,7 +1571,7 @@ void rrc_conn_reject_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1758,7 +1585,7 @@ SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1775,7 +1602,7 @@ SRSASN_CODE rrc_conn_reject_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1874,66 +1701,9 @@ void rrc_conn_setup_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_setup_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_setup_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); - } -} -rrc_conn_setup_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); - } -} -rrc_conn_setup_s::crit_exts_c_& rrc_conn_setup_s::crit_exts_c_::operator=(const rrc_conn_setup_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_setup_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1941,7 +1711,7 @@ void rrc_conn_setup_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1955,7 +1725,7 @@ SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1972,7 +1742,7 @@ SRSASN_CODE rrc_conn_setup_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -2092,67 +1862,9 @@ void rrc_early_data_complete_r15_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_early_data_complete_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_early_data_complete_r15: - c.destroy(); - break; - default: - break; - } -} void rrc_early_data_complete_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_early_data_complete_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); - } -} -rrc_early_data_complete_r15_s::crit_exts_c_::crit_exts_c_(const rrc_early_data_complete_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_early_data_complete_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); - } -} -rrc_early_data_complete_r15_s::crit_exts_c_& -rrc_early_data_complete_r15_s::crit_exts_c_::operator=(const rrc_early_data_complete_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_early_data_complete_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_r15_s::crit_exts_c_"); - } - - return *this; } void rrc_early_data_complete_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -2160,7 +1872,7 @@ void rrc_early_data_complete_r15_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_early_data_complete_r15: j.write_fieldname("rrcEarlyDataComplete-r15"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -2174,7 +1886,7 @@ SRSASN_CODE rrc_early_data_complete_r15_s::crit_exts_c_::pack(bit_ref& bref) con type_.pack(bref); switch (type_) { case types::rrc_early_data_complete_r15: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -2191,7 +1903,7 @@ SRSASN_CODE rrc_early_data_complete_r15_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_early_data_complete_r15: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -2485,67 +2197,9 @@ SRSASN_CODE dl_ccch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void dl_ccch_msg_type_c::msg_class_ext_c_::destroy_() -{ - switch (type_) { - case types::c2: - c.destroy(); - break; - default: - break; - } -} void dl_ccch_msg_type_c::msg_class_ext_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c2: - c.init(); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); - } -} -dl_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_c_(const dl_ccch_msg_type_c::msg_class_ext_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c2: - c.init(other.c.get()); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); - } -} -dl_ccch_msg_type_c::msg_class_ext_c_& -dl_ccch_msg_type_c::msg_class_ext_c_::operator=(const dl_ccch_msg_type_c::msg_class_ext_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c2: - c.set(other.c.get()); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c::msg_class_ext_c_"); - } - - return *this; } void dl_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { @@ -2553,7 +2207,7 @@ void dl_ccch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const switch (type_) { case types::c2: j.write_fieldname("c2"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext_future_r15: break; @@ -2567,7 +2221,7 @@ SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c2: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext_future_r15: break; @@ -2584,7 +2238,7 @@ SRSASN_CODE dl_ccch_msg_type_c::msg_class_ext_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c2: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext_future_r15: break; diff --git a/lib/src/asn1/rrc/dl_dcch_msg.cc b/lib/src/asn1/rrc/dl_dcch_msg.cc index 98b8571bf..8592dbdac 100644 --- a/lib/src/asn1/rrc/dl_dcch_msg.cc +++ b/lib/src/asn1/rrc/dl_dcch_msg.cc @@ -1022,27 +1022,6 @@ void rr_cfg_common_ps_cell_r12_s::to_json(json_writer& j) const j.end_obj(); } -// RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE -SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(basic_fields_v12f0.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(basic_fields_v12f0.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rr_cfg_common_ps_cell_v12f0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("basicFields-v12f0"); - basic_fields_v12f0.to_json(j); - j.end_obj(); -} - // RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE SRSASN_CODE rr_cfg_common_ps_cell_v1440_s::pack(bit_ref& bref) const { @@ -1304,55 +1283,6 @@ void rr_cfg_ded_ps_cell_v13c0_s::to_json(json_writer& j) const j.end_obj(); } -// SCG-ConfigPartSCG-v13c0 ::= SEQUENCE -SRSASN_CODE scg_cfg_part_scg_v13c0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_v13c0_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_ext_v13c0_present, 1)); - - if (scell_to_add_mod_list_scg_v13c0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_v13c0, 1, 4)); - } - if (scell_to_add_mod_list_scg_ext_v13c0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_ext_v13c0, 1, 31)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE scg_cfg_part_scg_v13c0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_ext_v13c0_present, 1)); - - if (scell_to_add_mod_list_scg_v13c0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_v13c0, bref, 1, 4)); - } - if (scell_to_add_mod_list_scg_ext_v13c0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_ext_v13c0, bref, 1, 31)); - } - - return SRSASN_SUCCESS; -} -void scg_cfg_part_scg_v13c0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (scell_to_add_mod_list_scg_v13c0_present) { - j.start_array("sCellToAddModListSCG-v13c0"); - for (const auto& e1 : scell_to_add_mod_list_scg_v13c0) { - e1.to_json(j); - } - j.end_array(); - } - if (scell_to_add_mod_list_scg_ext_v13c0_present) { - j.start_array("sCellToAddModListSCG-Ext-v13c0"); - for (const auto& e1 : scell_to_add_mod_list_scg_ext_v13c0) { - e1.to_json(j); - } - j.end_array(); - } - j.end_obj(); -} - // SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE void sl_disc_tx_ref_carrier_ded_r13_c::set(types::options e) { @@ -2204,37 +2134,6 @@ void ps_cell_to_add_mod_r12_s::to_json(json_writer& j) const j.end_obj(); } -// PSCellToAddMod-v12f0 ::= SEQUENCE -SRSASN_CODE ps_cell_to_add_mod_v12f0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rr_cfg_common_ps_cell_r12_present, 1)); - - if (rr_cfg_common_ps_cell_r12_present) { - HANDLE_CODE(rr_cfg_common_ps_cell_r12.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ps_cell_to_add_mod_v12f0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rr_cfg_common_ps_cell_r12_present, 1)); - - if (rr_cfg_common_ps_cell_r12_present) { - HANDLE_CODE(rr_cfg_common_ps_cell_r12.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ps_cell_to_add_mod_v12f0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rr_cfg_common_ps_cell_r12_present) { - j.write_fieldname("radioResourceConfigCommonPSCell-r12"); - rr_cfg_common_ps_cell_r12.to_json(j); - } - j.end_obj(); -} - // PSCellToAddMod-v1440 ::= SEQUENCE SRSASN_CODE ps_cell_to_add_mod_v1440_s::pack(bit_ref& bref) const { @@ -2511,70 +2410,6 @@ SRSASN_CODE rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -// SCG-Configuration-v13c0 ::= CHOICE -void scg_cfg_v13c0_c::set(types::options e) -{ - type_ = e; -} -void scg_cfg_v13c0_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::release: - break; - case types::setup: - j.write_fieldname("setup"); - j.start_obj(); - if (c.scg_cfg_part_scg_v13c0_present) { - j.write_fieldname("scg-ConfigPartSCG-v13c0"); - c.scg_cfg_part_scg_v13c0.to_json(j); - } - j.end_obj(); - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); - } - j.end_obj(); -} -SRSASN_CODE scg_cfg_v13c0_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_v13c0_present, 1)); - if (c.scg_cfg_part_scg_v13c0_present) { - HANDLE_CODE(c.scg_cfg_part_scg_v13c0.pack(bref)); - } - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE scg_cfg_v13c0_c::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_v13c0_present, 1)); - if (c.scg_cfg_part_scg_v13c0_present) { - HANDLE_CODE(c.scg_cfg_part_scg_v13c0.unpack(bref)); - } - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - // SL-CommTxPoolToAddMod-r12 ::= SEQUENCE SRSASN_CODE sl_comm_tx_pool_to_add_mod_r12_s::pack(bit_ref& bref) const { @@ -3732,86 +3567,6 @@ SRSASN_CODE rclwi_cfg_r13_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -// RRCConnectionReconfiguration-v13c0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v13c0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rr_cfg_ded_v13c0_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_v13c0_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_ext_v13c0_present, 1)); - HANDLE_CODE(bref.pack(scg_cfg_v13c0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rr_cfg_ded_v13c0_present) { - HANDLE_CODE(rr_cfg_ded_v13c0.pack(bref)); - } - if (scell_to_add_mod_list_v13c0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_v13c0, 1, 4)); - } - if (scell_to_add_mod_list_ext_v13c0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_ext_v13c0, 1, 31)); - } - if (scg_cfg_v13c0_present) { - HANDLE_CODE(scg_cfg_v13c0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_v13c0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rr_cfg_ded_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_ext_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(scg_cfg_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rr_cfg_ded_v13c0_present) { - HANDLE_CODE(rr_cfg_ded_v13c0.unpack(bref)); - } - if (scell_to_add_mod_list_v13c0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_v13c0, bref, 1, 4)); - } - if (scell_to_add_mod_list_ext_v13c0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_ext_v13c0, bref, 1, 31)); - } - if (scg_cfg_v13c0_present) { - HANDLE_CODE(scg_cfg_v13c0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_recfg_v13c0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rr_cfg_ded_v13c0_present) { - j.write_fieldname("radioResourceConfigDedicated-v13c0"); - rr_cfg_ded_v13c0.to_json(j); - } - if (scell_to_add_mod_list_v13c0_present) { - j.start_array("sCellToAddModList-v13c0"); - for (const auto& e1 : scell_to_add_mod_list_v13c0) { - e1.to_json(j); - } - j.end_array(); - } - if (scell_to_add_mod_list_ext_v13c0_present) { - j.start_array("sCellToAddModListExt-v13c0"); - for (const auto& e1 : scell_to_add_mod_list_ext_v13c0) { - e1.to_json(j); - } - j.end_array(); - } - if (scg_cfg_v13c0_present) { - j.write_fieldname("scg-Configuration-v13c0"); - scg_cfg_v13c0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - // RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1430_ies_s::pack(bit_ref& bref) const { @@ -3915,46 +3670,15 @@ void rrc_conn_release_v15b0_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RadioResourceConfigDedicated-v1370 ::= SEQUENCE -SRSASN_CODE rr_cfg_ded_v1370_s::pack(bit_ref& bref) const +// SCG-ConfigPartSCG-r12 ::= SEQUENCE +SRSASN_CODE scg_cfg_part_scg_r12_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(phys_cfg_ded_v1370_present, 1)); - - if (phys_cfg_ded_v1370_present) { - HANDLE_CODE(phys_cfg_ded_v1370.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rr_cfg_ded_v1370_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(phys_cfg_ded_v1370_present, 1)); - - if (phys_cfg_ded_v1370_present) { - HANDLE_CODE(phys_cfg_ded_v1370.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rr_cfg_ded_v1370_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (phys_cfg_ded_v1370_present) { - j.write_fieldname("physicalConfigDedicated-v1370"); - phys_cfg_ded_v1370.to_json(j); - } - j.end_obj(); -} - -// SCG-ConfigPartSCG-r12 ::= SEQUENCE -SRSASN_CODE scg_cfg_part_scg_r12_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(rr_cfg_ded_scg_r12_present, 1)); - HANDLE_CODE(bref.pack(scell_to_release_list_scg_r12_present, 1)); - HANDLE_CODE(bref.pack(pscell_to_add_mod_r12_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_r12_present, 1)); - HANDLE_CODE(bref.pack(mob_ctrl_info_scg_r12_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(rr_cfg_ded_scg_r12_present, 1)); + HANDLE_CODE(bref.pack(scell_to_release_list_scg_r12_present, 1)); + HANDLE_CODE(bref.pack(pscell_to_add_mod_r12_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_r12_present, 1)); + HANDLE_CODE(bref.pack(mob_ctrl_info_scg_r12_present, 1)); if (rr_cfg_ded_scg_r12_present) { HANDLE_CODE(rr_cfg_ded_scg_r12.pack(bref)); @@ -4240,52 +3964,6 @@ void scg_cfg_part_scg_r12_s::to_json(json_writer& j) const j.end_obj(); } -// SCG-ConfigPartSCG-v12f0 ::= SEQUENCE -SRSASN_CODE scg_cfg_part_scg_v12f0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(pscell_to_add_mod_v12f0_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_v12f0_present, 1)); - - if (pscell_to_add_mod_v12f0_present) { - HANDLE_CODE(pscell_to_add_mod_v12f0.pack(bref)); - } - if (scell_to_add_mod_list_scg_v12f0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_v12f0, 1, 4)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE scg_cfg_part_scg_v12f0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(pscell_to_add_mod_v12f0_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_v12f0_present, 1)); - - if (pscell_to_add_mod_v12f0_present) { - HANDLE_CODE(pscell_to_add_mod_v12f0.unpack(bref)); - } - if (scell_to_add_mod_list_scg_v12f0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_v12f0, bref, 1, 4)); - } - - return SRSASN_SUCCESS; -} -void scg_cfg_part_scg_v12f0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (pscell_to_add_mod_v12f0_present) { - j.write_fieldname("pSCellToAddMod-v12f0"); - pscell_to_add_mod_v12f0.to_json(j); - } - if (scell_to_add_mod_list_scg_v12f0_present) { - j.start_array("sCellToAddModListSCG-v12f0"); - for (const auto& e1 : scell_to_add_mod_list_scg_v12f0) { - e1.to_json(j); - } - j.end_array(); - } - j.end_obj(); -} - // SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE SRSASN_CODE sl_disc_tx_info_inter_freq_list_add_r13_s::pack(bit_ref& bref) const { @@ -4634,64 +4312,6 @@ void rrc_conn_recfg_v1310_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v1370_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rr_cfg_ded_v1370_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_ext_v1370_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rr_cfg_ded_v1370_present) { - HANDLE_CODE(rr_cfg_ded_v1370.pack(bref)); - } - if (scell_to_add_mod_list_ext_v1370_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_ext_v1370, 1, 31)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_v1370_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rr_cfg_ded_v1370_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_ext_v1370_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rr_cfg_ded_v1370_present) { - HANDLE_CODE(rr_cfg_ded_v1370.unpack(bref)); - } - if (scell_to_add_mod_list_ext_v1370_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_ext_v1370, bref, 1, 31)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_recfg_v1370_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rr_cfg_ded_v1370_present) { - j.write_fieldname("radioResourceConfigDedicated-v1370"); - rr_cfg_ded_v1370.to_json(j); - } - if (scell_to_add_mod_list_ext_v1370_present) { - j.start_array("sCellToAddModListExt-v1370"); - for (const auto& e1 : scell_to_add_mod_list_ext_v1370) { - e1.to_json(j); - } - j.end_array(); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // RRCConnectionRelease-v1540-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v1540_ies_s::pack(bit_ref& bref) const { @@ -4834,70 +4454,6 @@ SRSASN_CODE scg_cfg_r12_c::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -// SCG-Configuration-v12f0 ::= CHOICE -void scg_cfg_v12f0_c::set(types::options e) -{ - type_ = e; -} -void scg_cfg_v12f0_c::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::release: - break; - case types::setup: - j.write_fieldname("setup"); - j.start_obj(); - if (c.scg_cfg_part_scg_v12f0_present) { - j.write_fieldname("scg-ConfigPartSCG-v12f0"); - c.scg_cfg_part_scg_v12f0.to_json(j); - } - j.end_obj(); - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); - } - j.end_obj(); -} -SRSASN_CODE scg_cfg_v12f0_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_v12f0_present, 1)); - if (c.scg_cfg_part_scg_v12f0_present) { - HANDLE_CODE(c.scg_cfg_part_scg_v12f0.pack(bref)); - } - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE scg_cfg_v12f0_c::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_v12f0_present, 1)); - if (c.scg_cfg_part_scg_v12f0_present) { - HANDLE_CODE(c.scg_cfg_part_scg_v12f0.unpack(bref)); - } - break; - default: - log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - // SL-CommConfig-r12 ::= SEQUENCE SRSASN_CODE sl_comm_cfg_r12_s::pack(bit_ref& bref) const { @@ -6563,18 +6119,27 @@ uint8_t rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::setup_s_::t350_r12 options, 7, value, "rrc_conn_recfg_v1250_ies_s::wlan_offload_info_r12_c_::setup_s_::t350_r12_e_"); } -// RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::pack(bit_ref& bref) const +// RRCConnectionRelease-v1530-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_release_v1530_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(scg_cfg_v12f0_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(drb_continue_rohc_r15_present, 1)); + HANDLE_CODE(bref.pack(next_hop_chaining_count_r15_present, 1)); + HANDLE_CODE(bref.pack(meas_idle_cfg_r15_present, 1)); + HANDLE_CODE(bref.pack(rrc_inactive_cfg_r15_present, 1)); + HANDLE_CODE(bref.pack(cn_type_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (scg_cfg_v12f0_present) { - HANDLE_CODE(scg_cfg_v12f0.pack(bref)); + if (next_hop_chaining_count_r15_present) { + HANDLE_CODE(pack_integer(bref, next_hop_chaining_count_r15, (uint8_t)0u, (uint8_t)7u)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (meas_idle_cfg_r15_present) { + HANDLE_CODE(meas_idle_cfg_r15.pack(bref)); + } + if (rrc_inactive_cfg_r15_present) { + HANDLE_CODE(rrc_inactive_cfg_r15.pack(bref)); + } + if (cn_type_r15_present) { + HANDLE_CODE(cn_type_r15.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); @@ -6582,17 +6147,26 @@ SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_release_v1530_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(scg_cfg_v12f0_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(drb_continue_rohc_r15_present, 1)); + HANDLE_CODE(bref.unpack(next_hop_chaining_count_r15_present, 1)); + HANDLE_CODE(bref.unpack(meas_idle_cfg_r15_present, 1)); + HANDLE_CODE(bref.unpack(rrc_inactive_cfg_r15_present, 1)); + HANDLE_CODE(bref.unpack(cn_type_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - if (scg_cfg_v12f0_present) { - HANDLE_CODE(scg_cfg_v12f0.unpack(bref)); + if (next_hop_chaining_count_r15_present) { + HANDLE_CODE(unpack_integer(next_hop_chaining_count_r15, bref, (uint8_t)0u, (uint8_t)7u)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (meas_idle_cfg_r15_present) { + HANDLE_CODE(meas_idle_cfg_r15.unpack(bref)); + } + if (rrc_inactive_cfg_r15_present) { + HANDLE_CODE(rrc_inactive_cfg_r15.unpack(bref)); + } + if (cn_type_r15_present) { + HANDLE_CODE(cn_type_r15.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); @@ -6600,79 +6174,7 @@ SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void rrc_conn_recfg_v12f0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (scg_cfg_v12f0_present) { - j.write_fieldname("scg-Configuration-v12f0"); - scg_cfg_v12f0.to_json(j); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// RRCConnectionRelease-v1530-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_release_v1530_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(drb_continue_rohc_r15_present, 1)); - HANDLE_CODE(bref.pack(next_hop_chaining_count_r15_present, 1)); - HANDLE_CODE(bref.pack(meas_idle_cfg_r15_present, 1)); - HANDLE_CODE(bref.pack(rrc_inactive_cfg_r15_present, 1)); - HANDLE_CODE(bref.pack(cn_type_r15_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (next_hop_chaining_count_r15_present) { - HANDLE_CODE(pack_integer(bref, next_hop_chaining_count_r15, (uint8_t)0u, (uint8_t)7u)); - } - if (meas_idle_cfg_r15_present) { - HANDLE_CODE(meas_idle_cfg_r15.pack(bref)); - } - if (rrc_inactive_cfg_r15_present) { - HANDLE_CODE(rrc_inactive_cfg_r15.pack(bref)); - } - if (cn_type_r15_present) { - HANDLE_CODE(cn_type_r15.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_release_v1530_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(drb_continue_rohc_r15_present, 1)); - HANDLE_CODE(bref.unpack(next_hop_chaining_count_r15_present, 1)); - HANDLE_CODE(bref.unpack(meas_idle_cfg_r15_present, 1)); - HANDLE_CODE(bref.unpack(rrc_inactive_cfg_r15_present, 1)); - HANDLE_CODE(bref.unpack(cn_type_r15_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (next_hop_chaining_count_r15_present) { - HANDLE_CODE(unpack_integer(next_hop_chaining_count_r15, bref, (uint8_t)0u, (uint8_t)7u)); - } - if (meas_idle_cfg_r15_present) { - HANDLE_CODE(meas_idle_cfg_r15.unpack(bref)); - } - if (rrc_inactive_cfg_r15_present) { - HANDLE_CODE(rrc_inactive_cfg_r15.unpack(bref)); - } - if (cn_type_r15_present) { - HANDLE_CODE(cn_type_r15.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_release_v1530_ies_s::to_json(json_writer& j) const +void rrc_conn_release_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); if (drb_continue_rohc_r15_present) { @@ -7217,75 +6719,6 @@ std::string pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_opts::to_nu return convert_enum_idx(options, 16, value, "pwr_pref_ind_cfg_r11_c::setup_s_::pwr_pref_ind_timer_r11_e_"); } -// RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(mob_ctrl_info_v10l0_present, 1)); - HANDLE_CODE(bref.pack(scell_to_add_mod_list_v10l0_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (mob_ctrl_info_v10l0_present) { - HANDLE_CODE(mob_ctrl_info_v10l0.pack(bref)); - } - if (scell_to_add_mod_list_v10l0_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_v10l0, 1, 4)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(mob_ctrl_info_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(scell_to_add_mod_list_v10l0_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (mob_ctrl_info_v10l0_present) { - HANDLE_CODE(mob_ctrl_info_v10l0.unpack(bref)); - } - if (scell_to_add_mod_list_v10l0_present) { - HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_v10l0, bref, 1, 4)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_recfg_v10l0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (mob_ctrl_info_v10l0_present) { - j.write_fieldname("mobilityControlInfo-v10l0"); - mob_ctrl_info_v10l0.to_json(j); - } - if (scell_to_add_mod_list_v10l0_present) { - j.start_array("sCellToAddModList-v10l0"); - for (const auto& e1 : scell_to_add_mod_list_v10l0) { - e1.to_json(j); - } - j.end_array(); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v1130_ies_s::pack(bit_ref& bref) const { @@ -8277,49 +7710,6 @@ void rrc_conn_recfg_v1020_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ant_info_ded_pcell_v10i0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ant_info_ded_pcell_v10i0_present) { - HANDLE_CODE(ant_info_ded_pcell_v10i0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ant_info_ded_pcell_v10i0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ant_info_ded_pcell_v10i0_present) { - HANDLE_CODE(ant_info_ded_pcell_v10i0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_recfg_v10i0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ant_info_ded_pcell_v10i0_present) { - j.write_fieldname("antennaInfoDedicatedPCell-v10i0"); - ant_info_ded_pcell_v10i0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // RRCConnectionRelease-v1020-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_release_v1020_ies_s::pack(bit_ref& bref) const { @@ -8391,26 +7781,6 @@ void rrc_conn_resume_v1530_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RedirectedCarrierInfo-v9e0 ::= SEQUENCE -SRSASN_CODE redirected_carrier_info_v9e0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, eutra_v9e0, (uint32_t)65536u, (uint32_t)262143u)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE redirected_carrier_info_v9e0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(eutra_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); - - return SRSASN_SUCCESS; -} -void redirected_carrier_info_v9e0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("eutra-v9e0", eutra_v9e0); - j.end_obj(); -} - // UEInformationRequest-v1130-IEs ::= SEQUENCE SRSASN_CODE ue_info_request_v1130_ies_s::pack(bit_ref& bref) const { @@ -8715,48 +8085,6 @@ void mob_from_eutra_cmd_v960_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_recfg_v8m0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_v920_ies_s::pack(bit_ref& bref) const { @@ -9027,62 +8355,12 @@ SRSASN_CODE rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::unpack(cbit_ref& return SRSASN_SUCCESS; } -// RRCConnectionRelease-v9e0-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_release_v9e0_ies_s::pack(bit_ref& bref) const +// RRCConnectionResume-v1510-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_v1510_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(redirected_carrier_info_v9e0_present, 1)); - HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (redirected_carrier_info_v9e0_present) { - HANDLE_CODE(redirected_carrier_info_v9e0.pack(bref)); - } - if (idle_mode_mob_ctrl_info_v9e0_present) { - HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_release_v9e0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(redirected_carrier_info_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (redirected_carrier_info_v9e0_present) { - HANDLE_CODE(redirected_carrier_info_v9e0.unpack(bref)); - } - if (idle_mode_mob_ctrl_info_v9e0_present) { - HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_release_v9e0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (redirected_carrier_info_v9e0_present) { - j.write_fieldname("redirectedCarrierInfo-v9e0"); - redirected_carrier_info_v9e0.to_json(j); - } - if (idle_mode_mob_ctrl_info_v9e0_present) { - j.write_fieldname("idleModeMobilityControlInfo-v9e0"); - idle_mode_mob_ctrl_info_v9e0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// RRCConnectionResume-v1510-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_v1510_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(sk_counter_r15_present, 1)); - HANDLE_CODE(bref.pack(nr_radio_bearer_cfg1_r15_present, 1)); - HANDLE_CODE(bref.pack(nr_radio_bearer_cfg2_r15_present, 1)); + HANDLE_CODE(bref.pack(sk_counter_r15_present, 1)); + HANDLE_CODE(bref.pack(nr_radio_bearer_cfg1_r15_present, 1)); + HANDLE_CODE(bref.pack(nr_radio_bearer_cfg2_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); if (sk_counter_r15_present) { @@ -10667,49 +9945,10 @@ SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::res_block_assign_r10_c_::type2_r return SRSASN_SUCCESS; } -void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::destroy_() {} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::set(types::options e) { - destroy_(); type_ = e; } -rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::demod_rs_r10_c_( - const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::interleaving_r10: - break; - case types::no_interleaving_r10: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); - } -} -rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::operator=( - const rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::interleaving_r10: - break; - case types::no_interleaving_r10: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); - } - - return *this; -} void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::to_json(json_writer& j) const { j.start_obj(); @@ -10717,7 +9956,7 @@ void rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::to_json(json_writer& j case types::interleaving_r10: break; case types::no_interleaving_r10: - j.write_str("noInterleaving-r10", c.get().to_string()); + j.write_str("noInterleaving-r10", c.to_string()); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); @@ -10731,7 +9970,7 @@ SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::pack(bit_ref& b case types::interleaving_r10: break; case types::no_interleaving_r10: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); @@ -10748,7 +9987,7 @@ SRSASN_CODE rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_::unpack(cbit_ref case types::interleaving_r10: break; case types::no_interleaving_r10: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; default: log_invalid_choice_id(type_, "rn_sf_cfg_r10_s::rpdcch_cfg_r10_s_::demod_rs_r10_c_"); @@ -12772,67 +12011,9 @@ void csfb_params_resp_cdma2000_s::to_json(json_writer& j) const j.end_obj(); } -void csfb_params_resp_cdma2000_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::csfb_params_resp_cdma2000_r8: - c.destroy(); - break; - default: - break; - } -} void csfb_params_resp_cdma2000_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::csfb_params_resp_cdma2000_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); - } -} -csfb_params_resp_cdma2000_s::crit_exts_c_::crit_exts_c_(const csfb_params_resp_cdma2000_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::csfb_params_resp_cdma2000_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); - } -} -csfb_params_resp_cdma2000_s::crit_exts_c_& -csfb_params_resp_cdma2000_s::crit_exts_c_::operator=(const csfb_params_resp_cdma2000_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::csfb_params_resp_cdma2000_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_resp_cdma2000_s::crit_exts_c_"); - } - - return *this; } void csfb_params_resp_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { @@ -12840,7 +12021,7 @@ void csfb_params_resp_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::csfb_params_resp_cdma2000_r8: j.write_fieldname("csfbParametersResponseCDMA2000-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -12854,7 +12035,7 @@ SRSASN_CODE csfb_params_resp_cdma2000_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::csfb_params_resp_cdma2000_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -12871,7 +12052,7 @@ SRSASN_CODE csfb_params_resp_cdma2000_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::csfb_params_resp_cdma2000_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -12906,66 +12087,9 @@ void counter_check_s::to_json(json_writer& j) const j.end_obj(); } -void counter_check_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void counter_check_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } -} -counter_check_s::crit_exts_c_::crit_exts_c_(const counter_check_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } -} -counter_check_s::crit_exts_c_& counter_check_s::crit_exts_c_::operator=(const counter_check_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } - - return *this; } void counter_check_s::crit_exts_c_::to_json(json_writer& j) const { @@ -12973,7 +12097,7 @@ void counter_check_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -12987,7 +12111,7 @@ SRSASN_CODE counter_check_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13004,7 +12128,7 @@ SRSASN_CODE counter_check_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -13103,67 +12227,9 @@ void dl_info_transfer_s::to_json(json_writer& j) const j.end_obj(); } -void dl_info_transfer_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_info_transfer_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } -} -dl_info_transfer_s::crit_exts_c_::crit_exts_c_(const dl_info_transfer_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } -} -dl_info_transfer_s::crit_exts_c_& -dl_info_transfer_s::crit_exts_c_::operator=(const dl_info_transfer_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } - - return *this; } void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { @@ -13171,7 +12237,7 @@ void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -13185,7 +12251,7 @@ SRSASN_CODE dl_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13202,7 +12268,7 @@ SRSASN_CODE dl_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -13381,75 +12447,17 @@ void ho_from_eutra_prep_request_s::to_json(json_writer& j) const j.end_obj(); } -void ho_from_eutra_prep_request_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ho_from_eutra_prep_request_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; +} +void ho_from_eutra_prep_request_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); - } -} -ho_from_eutra_prep_request_s::crit_exts_c_::crit_exts_c_(const ho_from_eutra_prep_request_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); - } -} -ho_from_eutra_prep_request_s::crit_exts_c_& -ho_from_eutra_prep_request_s::crit_exts_c_::operator=(const ho_from_eutra_prep_request_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_from_eutra_prep_request_s::crit_exts_c_"); - } - - return *this; -} -void ho_from_eutra_prep_request_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); + j.write_fieldname("c1"); + c.to_json(j); break; case types::crit_exts_future: break; @@ -13463,7 +12471,7 @@ SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::pack(bit_ref& bref) cons type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13480,7 +12488,7 @@ SRSASN_CODE ho_from_eutra_prep_request_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -13576,67 +12584,9 @@ void logged_meas_cfg_r10_s::to_json(json_writer& j) const j.end_obj(); } -void logged_meas_cfg_r10_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void logged_meas_cfg_r10_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); - } -} -logged_meas_cfg_r10_s::crit_exts_c_::crit_exts_c_(const logged_meas_cfg_r10_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); - } -} -logged_meas_cfg_r10_s::crit_exts_c_& -logged_meas_cfg_r10_s::crit_exts_c_::operator=(const logged_meas_cfg_r10_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "logged_meas_cfg_r10_s::crit_exts_c_"); - } - - return *this; } void logged_meas_cfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { @@ -13644,7 +12594,7 @@ void logged_meas_cfg_r10_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -13658,7 +12608,7 @@ SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13675,7 +12625,7 @@ SRSASN_CODE logged_meas_cfg_r10_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -13774,67 +12724,9 @@ void mob_from_eutra_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void mob_from_eutra_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void mob_from_eutra_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); - } -} -mob_from_eutra_cmd_s::crit_exts_c_::crit_exts_c_(const mob_from_eutra_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); - } -} -mob_from_eutra_cmd_s::crit_exts_c_& -mob_from_eutra_cmd_s::crit_exts_c_::operator=(const mob_from_eutra_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_eutra_cmd_s::crit_exts_c_"); - } - - return *this; } void mob_from_eutra_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -13842,7 +12734,7 @@ void mob_from_eutra_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -13856,7 +12748,7 @@ SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13873,7 +12765,7 @@ SRSASN_CODE mob_from_eutra_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14052,66 +12944,9 @@ void rn_recfg_r10_s::to_json(json_writer& j) const j.end_obj(); } -void rn_recfg_r10_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rn_recfg_r10_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); - } -} -rn_recfg_r10_s::crit_exts_c_::crit_exts_c_(const rn_recfg_r10_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); - } -} -rn_recfg_r10_s::crit_exts_c_& rn_recfg_r10_s::crit_exts_c_::operator=(const rn_recfg_r10_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_r10_s::crit_exts_c_"); - } - - return *this; } void rn_recfg_r10_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14119,7 +12954,7 @@ void rn_recfg_r10_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14133,7 +12968,7 @@ SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14150,7 +12985,7 @@ SRSASN_CODE rn_recfg_r10_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14249,120 +13084,63 @@ void rrc_conn_recfg_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_recfg_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_recfg_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; +} +void rrc_conn_recfg_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); + j.write_fieldname("c1"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); } + j.end_obj(); } -rrc_conn_recfg_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { case types::c1: - c.init(other.c.get()); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -rrc_conn_recfg_s::crit_exts_c_& rrc_conn_recfg_s::crit_exts_c_::operator=(const rrc_conn_recfg_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { case types::c1: - c.set(other.c.get()); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; +} - return *this; +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set(types::options e) +{ + type_ = e; } -void rrc_conn_recfg_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_recfg_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -void rrc_conn_recfg_s::crit_exts_c_::c1_c_::set(types::options e) -{ - type_ = e; -} -void rrc_conn_recfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const +void rrc_conn_recfg_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { @@ -14470,67 +13248,9 @@ void rrc_conn_release_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_release_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_release_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); - } -} -rrc_conn_release_s::crit_exts_c_::crit_exts_c_(const rrc_conn_release_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); - } -} -rrc_conn_release_s::crit_exts_c_& -rrc_conn_release_s::crit_exts_c_::operator=(const rrc_conn_release_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_release_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14538,7 +13258,7 @@ void rrc_conn_release_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14552,7 +13272,7 @@ SRSASN_CODE rrc_conn_release_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14569,7 +13289,7 @@ SRSASN_CODE rrc_conn_release_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14668,67 +13388,9 @@ void rrc_conn_resume_r13_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_resume_r13_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_resume_r13_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); - } -} -rrc_conn_resume_r13_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_r13_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); - } -} -rrc_conn_resume_r13_s::crit_exts_c_& -rrc_conn_resume_r13_s::crit_exts_c_::operator=(const rrc_conn_resume_r13_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_r13_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_resume_r13_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14736,7 +13398,7 @@ void rrc_conn_resume_r13_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14750,7 +13412,7 @@ SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14767,7 +13429,7 @@ SRSASN_CODE rrc_conn_resume_r13_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14866,67 +13528,9 @@ void ue_info_request_r9_s::to_json(json_writer& j) const j.end_obj(); } -void ue_info_request_r9_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_info_request_r9_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); - } -} -ue_info_request_r9_s::crit_exts_c_::crit_exts_c_(const ue_info_request_r9_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); - } -} -ue_info_request_r9_s::crit_exts_c_& -ue_info_request_r9_s::crit_exts_c_::operator=(const ue_info_request_r9_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_request_r9_s::crit_exts_c_"); - } - - return *this; } void ue_info_request_r9_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14934,7 +13538,7 @@ void ue_info_request_r9_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14948,7 +13552,7 @@ SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14965,7 +13569,7 @@ SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -15041,120 +13645,63 @@ SRSASN_CODE ue_info_request_r9_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) } // DL-DCCH-MessageType ::= CHOICE -void dl_dcch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_dcch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; +} +void dl_dcch_msg_type_c::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); + j.write_fieldname("c1"); + c.to_json(j); break; case types::msg_class_ext: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); } + j.end_obj(); } -dl_dcch_msg_type_c::dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other) +SRSASN_CODE dl_dcch_msg_type_c::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { case types::c1: - c.init(other.c.get()); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -dl_dcch_msg_type_c& dl_dcch_msg_type_c::operator=(const dl_dcch_msg_type_c& other) +SRSASN_CODE dl_dcch_msg_type_c::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { case types::c1: - c.set(other.c.get()); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); + return SRSASN_ERROR_DECODE_FAIL; } - - return *this; + return SRSASN_SUCCESS; } -void dl_dcch_msg_type_c::to_json(json_writer& j) const + +void dl_dcch_msg_type_c::c1_c_::destroy_() { - j.start_obj(); switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - } - j.end_obj(); -} -SRSASN_CODE dl_dcch_msg_type_c::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE dl_dcch_msg_type_c::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -void dl_dcch_msg_type_c::c1_c_::destroy_() -{ - switch (type_) { - case types::csfb_params_resp_cdma2000: - c.destroy(); + case types::csfb_params_resp_cdma2000: + c.destroy(); break; case types::dl_info_transfer: c.destroy(); @@ -15575,3 +14122,725 @@ void dl_dcch_msg_s::to_json(json_writer& j) const j.end_obj(); j.end_array(); } + +// RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE +SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(basic_fields_v12f0.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rr_cfg_common_ps_cell_v12f0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(basic_fields_v12f0.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rr_cfg_common_ps_cell_v12f0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("basicFields-v12f0"); + basic_fields_v12f0.to_json(j); + j.end_obj(); +} + +// PSCellToAddMod-v12f0 ::= SEQUENCE +SRSASN_CODE ps_cell_to_add_mod_v12f0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rr_cfg_common_ps_cell_r12_present, 1)); + + if (rr_cfg_common_ps_cell_r12_present) { + HANDLE_CODE(rr_cfg_common_ps_cell_r12.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ps_cell_to_add_mod_v12f0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rr_cfg_common_ps_cell_r12_present, 1)); + + if (rr_cfg_common_ps_cell_r12_present) { + HANDLE_CODE(rr_cfg_common_ps_cell_r12.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ps_cell_to_add_mod_v12f0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rr_cfg_common_ps_cell_r12_present) { + j.write_fieldname("radioResourceConfigCommonPSCell-r12"); + rr_cfg_common_ps_cell_r12.to_json(j); + } + j.end_obj(); +} + +// SCG-ConfigPartSCG-v13c0 ::= SEQUENCE +SRSASN_CODE scg_cfg_part_scg_v13c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_v13c0_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_ext_v13c0_present, 1)); + + if (scell_to_add_mod_list_scg_v13c0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_v13c0, 1, 4)); + } + if (scell_to_add_mod_list_scg_ext_v13c0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_ext_v13c0, 1, 31)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scg_cfg_part_scg_v13c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_ext_v13c0_present, 1)); + + if (scell_to_add_mod_list_scg_v13c0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_v13c0, bref, 1, 4)); + } + if (scell_to_add_mod_list_scg_ext_v13c0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_ext_v13c0, bref, 1, 31)); + } + + return SRSASN_SUCCESS; +} +void scg_cfg_part_scg_v13c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (scell_to_add_mod_list_scg_v13c0_present) { + j.start_array("sCellToAddModListSCG-v13c0"); + for (const auto& e1 : scell_to_add_mod_list_scg_v13c0) { + e1.to_json(j); + } + j.end_array(); + } + if (scell_to_add_mod_list_scg_ext_v13c0_present) { + j.start_array("sCellToAddModListSCG-Ext-v13c0"); + for (const auto& e1 : scell_to_add_mod_list_scg_ext_v13c0) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); +} + +// SCG-Configuration-v13c0 ::= CHOICE +void scg_cfg_v13c0_c::set(types::options e) +{ + type_ = e; +} +void scg_cfg_v13c0_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::release: + break; + case types::setup: + j.write_fieldname("setup"); + j.start_obj(); + if (c.scg_cfg_part_scg_v13c0_present) { + j.write_fieldname("scg-ConfigPartSCG-v13c0"); + c.scg_cfg_part_scg_v13c0.to_json(j); + } + j.end_obj(); + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); + } + j.end_obj(); +} +SRSASN_CODE scg_cfg_v13c0_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_v13c0_present, 1)); + if (c.scg_cfg_part_scg_v13c0_present) { + HANDLE_CODE(c.scg_cfg_part_scg_v13c0.pack(bref)); + } + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE scg_cfg_v13c0_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_v13c0_present, 1)); + if (c.scg_cfg_part_scg_v13c0_present) { + HANDLE_CODE(c.scg_cfg_part_scg_v13c0.unpack(bref)); + } + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v13c0_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// RRCConnectionReconfiguration-v13c0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v13c0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rr_cfg_ded_v13c0_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_v13c0_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_ext_v13c0_present, 1)); + HANDLE_CODE(bref.pack(scg_cfg_v13c0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rr_cfg_ded_v13c0_present) { + HANDLE_CODE(rr_cfg_ded_v13c0.pack(bref)); + } + if (scell_to_add_mod_list_v13c0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_v13c0, 1, 4)); + } + if (scell_to_add_mod_list_ext_v13c0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_ext_v13c0, 1, 31)); + } + if (scg_cfg_v13c0_present) { + HANDLE_CODE(scg_cfg_v13c0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v13c0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rr_cfg_ded_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_ext_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(scg_cfg_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rr_cfg_ded_v13c0_present) { + HANDLE_CODE(rr_cfg_ded_v13c0.unpack(bref)); + } + if (scell_to_add_mod_list_v13c0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_v13c0, bref, 1, 4)); + } + if (scell_to_add_mod_list_ext_v13c0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_ext_v13c0, bref, 1, 31)); + } + if (scg_cfg_v13c0_present) { + HANDLE_CODE(scg_cfg_v13c0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v13c0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rr_cfg_ded_v13c0_present) { + j.write_fieldname("radioResourceConfigDedicated-v13c0"); + rr_cfg_ded_v13c0.to_json(j); + } + if (scell_to_add_mod_list_v13c0_present) { + j.start_array("sCellToAddModList-v13c0"); + for (const auto& e1 : scell_to_add_mod_list_v13c0) { + e1.to_json(j); + } + j.end_array(); + } + if (scell_to_add_mod_list_ext_v13c0_present) { + j.start_array("sCellToAddModListExt-v13c0"); + for (const auto& e1 : scell_to_add_mod_list_ext_v13c0) { + e1.to_json(j); + } + j.end_array(); + } + if (scg_cfg_v13c0_present) { + j.write_fieldname("scg-Configuration-v13c0"); + scg_cfg_v13c0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +// RadioResourceConfigDedicated-v1370 ::= SEQUENCE +SRSASN_CODE rr_cfg_ded_v1370_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(phys_cfg_ded_v1370_present, 1)); + + if (phys_cfg_ded_v1370_present) { + HANDLE_CODE(phys_cfg_ded_v1370.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rr_cfg_ded_v1370_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(phys_cfg_ded_v1370_present, 1)); + + if (phys_cfg_ded_v1370_present) { + HANDLE_CODE(phys_cfg_ded_v1370.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rr_cfg_ded_v1370_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (phys_cfg_ded_v1370_present) { + j.write_fieldname("physicalConfigDedicated-v1370"); + phys_cfg_ded_v1370.to_json(j); + } + j.end_obj(); +} + +// SCG-ConfigPartSCG-v12f0 ::= SEQUENCE +SRSASN_CODE scg_cfg_part_scg_v12f0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(pscell_to_add_mod_v12f0_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_scg_v12f0_present, 1)); + + if (pscell_to_add_mod_v12f0_present) { + HANDLE_CODE(pscell_to_add_mod_v12f0.pack(bref)); + } + if (scell_to_add_mod_list_scg_v12f0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_scg_v12f0, 1, 4)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scg_cfg_part_scg_v12f0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(pscell_to_add_mod_v12f0_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_scg_v12f0_present, 1)); + + if (pscell_to_add_mod_v12f0_present) { + HANDLE_CODE(pscell_to_add_mod_v12f0.unpack(bref)); + } + if (scell_to_add_mod_list_scg_v12f0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_scg_v12f0, bref, 1, 4)); + } + + return SRSASN_SUCCESS; +} +void scg_cfg_part_scg_v12f0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (pscell_to_add_mod_v12f0_present) { + j.write_fieldname("pSCellToAddMod-v12f0"); + pscell_to_add_mod_v12f0.to_json(j); + } + if (scell_to_add_mod_list_scg_v12f0_present) { + j.start_array("sCellToAddModListSCG-v12f0"); + for (const auto& e1 : scell_to_add_mod_list_scg_v12f0) { + e1.to_json(j); + } + j.end_array(); + } + j.end_obj(); +} + +// RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v1370_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rr_cfg_ded_v1370_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_ext_v1370_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rr_cfg_ded_v1370_present) { + HANDLE_CODE(rr_cfg_ded_v1370.pack(bref)); + } + if (scell_to_add_mod_list_ext_v1370_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_ext_v1370, 1, 31)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v1370_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rr_cfg_ded_v1370_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_ext_v1370_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rr_cfg_ded_v1370_present) { + HANDLE_CODE(rr_cfg_ded_v1370.unpack(bref)); + } + if (scell_to_add_mod_list_ext_v1370_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_ext_v1370, bref, 1, 31)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v1370_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rr_cfg_ded_v1370_present) { + j.write_fieldname("radioResourceConfigDedicated-v1370"); + rr_cfg_ded_v1370.to_json(j); + } + if (scell_to_add_mod_list_ext_v1370_present) { + j.start_array("sCellToAddModListExt-v1370"); + for (const auto& e1 : scell_to_add_mod_list_ext_v1370) { + e1.to_json(j); + } + j.end_array(); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// SCG-Configuration-v12f0 ::= CHOICE +void scg_cfg_v12f0_c::set(types::options e) +{ + type_ = e; +} +void scg_cfg_v12f0_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::release: + break; + case types::setup: + j.write_fieldname("setup"); + j.start_obj(); + if (c.scg_cfg_part_scg_v12f0_present) { + j.write_fieldname("scg-ConfigPartSCG-v12f0"); + c.scg_cfg_part_scg_v12f0.to_json(j); + } + j.end_obj(); + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); + } + j.end_obj(); +} +SRSASN_CODE scg_cfg_v12f0_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(bref.pack(c.scg_cfg_part_scg_v12f0_present, 1)); + if (c.scg_cfg_part_scg_v12f0_present) { + HANDLE_CODE(c.scg_cfg_part_scg_v12f0.pack(bref)); + } + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE scg_cfg_v12f0_c::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(bref.unpack(c.scg_cfg_part_scg_v12f0_present, 1)); + if (c.scg_cfg_part_scg_v12f0_present) { + HANDLE_CODE(c.scg_cfg_part_scg_v12f0.unpack(bref)); + } + break; + default: + log_invalid_choice_id(type_, "scg_cfg_v12f0_c"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(scg_cfg_v12f0_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (scg_cfg_v12f0_present) { + HANDLE_CODE(scg_cfg_v12f0.pack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v12f0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(scg_cfg_v12f0_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (scg_cfg_v12f0_present) { + HANDLE_CODE(scg_cfg_v12f0.unpack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v12f0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (scg_cfg_v12f0_present) { + j.write_fieldname("scg-Configuration-v12f0"); + scg_cfg_v12f0.to_json(j); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(mob_ctrl_info_v10l0_present, 1)); + HANDLE_CODE(bref.pack(scell_to_add_mod_list_v10l0_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (mob_ctrl_info_v10l0_present) { + HANDLE_CODE(mob_ctrl_info_v10l0.pack(bref)); + } + if (scell_to_add_mod_list_v10l0_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scell_to_add_mod_list_v10l0, 1, 4)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v10l0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(mob_ctrl_info_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(scell_to_add_mod_list_v10l0_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (mob_ctrl_info_v10l0_present) { + HANDLE_CODE(mob_ctrl_info_v10l0.unpack(bref)); + } + if (scell_to_add_mod_list_v10l0_present) { + HANDLE_CODE(unpack_dyn_seq_of(scell_to_add_mod_list_v10l0, bref, 1, 4)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v10l0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (mob_ctrl_info_v10l0_present) { + j.write_fieldname("mobilityControlInfo-v10l0"); + mob_ctrl_info_v10l0.to_json(j); + } + if (scell_to_add_mod_list_v10l0_present) { + j.start_array("sCellToAddModList-v10l0"); + for (const auto& e1 : scell_to_add_mod_list_v10l0) { + e1.to_json(j); + } + j.end_array(); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(ant_info_ded_pcell_v10i0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (ant_info_ded_pcell_v10i0_present) { + HANDLE_CODE(ant_info_ded_pcell_v10i0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v10i0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(ant_info_ded_pcell_v10i0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (ant_info_ded_pcell_v10i0_present) { + HANDLE_CODE(ant_info_ded_pcell_v10i0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v10i0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (ant_info_ded_pcell_v10i0_present) { + j.write_fieldname("antennaInfoDedicatedPCell-v10i0"); + ant_info_ded_pcell_v10i0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_recfg_v8m0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_recfg_v8m0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RedirectedCarrierInfo-v9e0 ::= SEQUENCE +SRSASN_CODE redirected_carrier_info_v9e0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, eutra_v9e0, (uint32_t)65536u, (uint32_t)262143u)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE redirected_carrier_info_v9e0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(unpack_integer(eutra_v9e0, bref, (uint32_t)65536u, (uint32_t)262143u)); + + return SRSASN_SUCCESS; +} +void redirected_carrier_info_v9e0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("eutra-v9e0", eutra_v9e0); + j.end_obj(); +} + +// RRCConnectionRelease-v9e0-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_release_v9e0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(redirected_carrier_info_v9e0_present, 1)); + HANDLE_CODE(bref.pack(idle_mode_mob_ctrl_info_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (redirected_carrier_info_v9e0_present) { + HANDLE_CODE(redirected_carrier_info_v9e0.pack(bref)); + } + if (idle_mode_mob_ctrl_info_v9e0_present) { + HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_release_v9e0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(redirected_carrier_info_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(idle_mode_mob_ctrl_info_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (redirected_carrier_info_v9e0_present) { + HANDLE_CODE(redirected_carrier_info_v9e0.unpack(bref)); + } + if (idle_mode_mob_ctrl_info_v9e0_present) { + HANDLE_CODE(idle_mode_mob_ctrl_info_v9e0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_release_v9e0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (redirected_carrier_info_v9e0_present) { + j.write_fieldname("redirectedCarrierInfo-v9e0"); + redirected_carrier_info_v9e0.to_json(j); + } + if (idle_mode_mob_ctrl_info_v9e0_present) { + j.write_fieldname("idleModeMobilityControlInfo-v9e0"); + idle_mode_mob_ctrl_info_v9e0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} diff --git a/lib/src/asn1/rrc/ho_cmd.cc b/lib/src/asn1/rrc/ho_cmd.cc index f4ceae81c..67ece2006 100644 --- a/lib/src/asn1/rrc/ho_cmd.cc +++ b/lib/src/asn1/rrc/ho_cmd.cc @@ -279,66 +279,9 @@ void scg_cfg_r12_s::to_json(json_writer& j) const j.end_obj(); } -void scg_cfg_r12_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void scg_cfg_r12_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); - } -} -scg_cfg_r12_s::crit_exts_c_::crit_exts_c_(const scg_cfg_r12_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); - } -} -scg_cfg_r12_s::crit_exts_c_& scg_cfg_r12_s::crit_exts_c_::operator=(const scg_cfg_r12_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_cfg_r12_s::crit_exts_c_"); - } - - return *this; } void scg_cfg_r12_s::crit_exts_c_::to_json(json_writer& j) const { @@ -346,7 +289,7 @@ void scg_cfg_r12_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -360,7 +303,7 @@ SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -377,7 +320,7 @@ SRSASN_CODE scg_cfg_r12_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1393,66 +1336,9 @@ void ho_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void ho_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ho_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } -} -ho_cmd_s::crit_exts_c_::crit_exts_c_(const ho_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } -} -ho_cmd_s::crit_exts_c_& ho_cmd_s::crit_exts_c_::operator=(const ho_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } - - return *this; } void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1460,7 +1346,7 @@ void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1474,7 +1360,7 @@ SRSASN_CODE ho_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1491,7 +1377,7 @@ SRSASN_CODE ho_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1773,86 +1659,6 @@ void ho_prep_info_v1320_ies_s::to_json(json_writer& j) const j.end_obj(); } -// HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_v13c0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(as_cfg_v13c0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (as_cfg_v13c0_present) { - HANDLE_CODE(as_cfg_v13c0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_info_v13c0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(as_cfg_v13c0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (as_cfg_v13c0_present) { - HANDLE_CODE(as_cfg_v13c0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ho_prep_info_v13c0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (as_cfg_v13c0_present) { - j.write_fieldname("as-Config-v13c0"); - as_cfg_v13c0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_v10x0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_info_v10x0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ho_prep_info_v10x0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // HandoverPreparationInformation-v1250-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1250_ies_s::pack(bit_ref& bref) const { @@ -1907,49 +1713,6 @@ void ho_prep_info_v1250_ies_s::to_json(json_writer& j) const j.end_obj(); } -// HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_v10j0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(as_cfg_v10j0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (as_cfg_v10j0_present) { - HANDLE_CODE(as_cfg_v10j0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_info_v10j0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(as_cfg_v10j0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (as_cfg_v10j0_present) { - HANDLE_CODE(as_cfg_v10j0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ho_prep_info_v10j0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (as_cfg_v10j0_present) { - j.write_fieldname("as-Config-v10j0"); - as_cfg_v10j0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // HandoverPreparationInformation-v1130-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v1130_ies_s::pack(bit_ref& bref) const { @@ -2036,48 +1799,6 @@ void ho_prep_info_v9e0_ies_s::to_json(json_writer& j) const j.end_obj(); } -// HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_v9j0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ho_prep_info_v9j0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ho_prep_info_v9j0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE SRSASN_CODE ho_prep_info_v9d0_ies_s::pack(bit_ref& bref) const { @@ -2373,66 +2094,9 @@ void ho_prep_info_s::to_json(json_writer& j) const j.end_obj(); } -void ho_prep_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ho_prep_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } -} -ho_prep_info_s::crit_exts_c_::crit_exts_c_(const ho_prep_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } -} -ho_prep_info_s::crit_exts_c_& ho_prep_info_s::crit_exts_c_::operator=(const ho_prep_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } - - return *this; } void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -2440,7 +2104,7 @@ void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -2454,7 +2118,7 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -2471,7 +2135,7 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -2570,6 +2234,171 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } +// HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_v13c0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(as_cfg_v13c0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (as_cfg_v13c0_present) { + HANDLE_CODE(as_cfg_v13c0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_v13c0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(as_cfg_v13c0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (as_cfg_v13c0_present) { + HANDLE_CODE(as_cfg_v13c0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ho_prep_info_v13c0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (as_cfg_v13c0_present) { + j.write_fieldname("as-Config-v13c0"); + as_cfg_v13c0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +// HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_v10x0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_v10x0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ho_prep_info_v10x0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_v10j0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(as_cfg_v10j0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (as_cfg_v10j0_present) { + HANDLE_CODE(as_cfg_v10j0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_v10j0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(as_cfg_v10j0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (as_cfg_v10j0_present) { + HANDLE_CODE(as_cfg_v10j0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ho_prep_info_v10j0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (as_cfg_v10j0_present) { + j.write_fieldname("as-Config-v10j0"); + as_cfg_v10j0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_v9j0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_v9j0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ho_prep_info_v9j0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + // VarMeasConfig ::= SEQUENCE SRSASN_CODE var_meas_cfg_s::pack(bit_ref& bref) const { diff --git a/lib/src/asn1/rrc/meascfg.cc b/lib/src/asn1/rrc/meascfg.cc index 38d83532a..4e62da7f7 100644 --- a/lib/src/asn1/rrc/meascfg.cc +++ b/lib/src/asn1/rrc/meascfg.cc @@ -10235,36 +10235,6 @@ void carrier_freq_geran_s::to_json(json_writer& j) const j.end_obj(); } -// MobilityControlInfo-v10l0 ::= SEQUENCE -SRSASN_CODE mob_ctrl_info_v10l0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); - - if (add_spec_emission_v10l0_present) { - HANDLE_CODE(pack_integer(bref, add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE mob_ctrl_info_v10l0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); - - if (add_spec_emission_v10l0_present) { - HANDLE_CODE(unpack_integer(add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); - } - - return SRSASN_SUCCESS; -} -void mob_ctrl_info_v10l0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (add_spec_emission_v10l0_present) { - j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); - } - j.end_obj(); -} - // LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE SRSASN_CODE logged_meas_cfg_v1530_ies_s::pack(bit_ref& bref) const { @@ -14691,66 +14661,9 @@ void meas_report_s::to_json(json_writer& j) const j.end_obj(); } -void meas_report_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void meas_report_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } -} -meas_report_s::crit_exts_c_::crit_exts_c_(const meas_report_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } -} -meas_report_s::crit_exts_c_& meas_report_s::crit_exts_c_::operator=(const meas_report_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } - - return *this; } void meas_report_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14758,7 +14671,7 @@ void meas_report_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14772,7 +14685,7 @@ SRSASN_CODE meas_report_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14789,7 +14702,7 @@ SRSASN_CODE meas_report_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14887,3 +14800,33 @@ SRSASN_CODE meas_report_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) } return SRSASN_SUCCESS; } + +// MobilityControlInfo-v10l0 ::= SEQUENCE +SRSASN_CODE mob_ctrl_info_v10l0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(add_spec_emission_v10l0_present, 1)); + + if (add_spec_emission_v10l0_present) { + HANDLE_CODE(pack_integer(bref, add_spec_emission_v10l0, (uint16_t)33u, (uint16_t)288u)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE mob_ctrl_info_v10l0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(add_spec_emission_v10l0_present, 1)); + + if (add_spec_emission_v10l0_present) { + HANDLE_CODE(unpack_integer(add_spec_emission_v10l0, bref, (uint16_t)33u, (uint16_t)288u)); + } + + return SRSASN_SUCCESS; +} +void mob_ctrl_info_v10l0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (add_spec_emission_v10l0_present) { + j.write_int("additionalSpectrumEmission-v10l0", add_spec_emission_v10l0); + } + j.end_obj(); +} diff --git a/lib/src/asn1/rrc/paging.cc b/lib/src/asn1/rrc/paging.cc index e48bcfb76..cadc233ce 100644 --- a/lib/src/asn1/rrc/paging.cc +++ b/lib/src/asn1/rrc/paging.cc @@ -485,66 +485,9 @@ void paging_s::to_json(json_writer& j) const } // PCCH-MessageType ::= CHOICE -void pcch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void pcch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } -} -pcch_msg_type_c::pcch_msg_type_c(const pcch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } -} -pcch_msg_type_c& pcch_msg_type_c::operator=(const pcch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } - - return *this; } void pcch_msg_type_c::to_json(json_writer& j) const { @@ -552,7 +495,7 @@ void pcch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -566,7 +509,7 @@ SRSASN_CODE pcch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -583,7 +526,7 @@ SRSASN_CODE pcch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -699,67 +642,9 @@ void ue_paging_coverage_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_paging_coverage_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_paging_coverage_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); - } -} -ue_paging_coverage_info_s::crit_exts_c_::crit_exts_c_(const ue_paging_coverage_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); - } -} -ue_paging_coverage_info_s::crit_exts_c_& -ue_paging_coverage_info_s::crit_exts_c_::operator=(const ue_paging_coverage_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_s::crit_exts_c_"); - } - - return *this; } void ue_paging_coverage_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -767,7 +652,7 @@ void ue_paging_coverage_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -781,7 +666,7 @@ SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -798,7 +683,7 @@ SRSASN_CODE ue_paging_coverage_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -995,67 +880,9 @@ void ue_radio_paging_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_radio_paging_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_radio_paging_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } -} -ue_radio_paging_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_paging_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } -} -ue_radio_paging_info_s::crit_exts_c_& -ue_radio_paging_info_s::crit_exts_c_::operator=(const ue_radio_paging_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } - - return *this; } void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1063,7 +890,7 @@ void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1077,7 +904,7 @@ SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1094,7 +921,7 @@ SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; diff --git a/lib/src/asn1/rrc/rr_common.cc b/lib/src/asn1/rrc/rr_common.cc index 5da38c960..8d6e4cb7e 100644 --- a/lib/src/asn1/rrc/rr_common.cc +++ b/lib/src/asn1/rrc/rr_common.cc @@ -498,71 +498,6 @@ uint8_t tdd_cfg_v1130_s::special_sf_patterns_v1130_opts::to_number() const return map_enum_number(options, 2, value, "tdd_cfg_v1130_s::special_sf_patterns_v1130_e_"); } -// UplinkPowerControlCommon-v1310 ::= SEQUENCE -SRSASN_CODE ul_pwr_ctrl_common_v1310_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(delta_f_pucch_format4_r13_present, 1)); - HANDLE_CODE(bref.pack(delta_f_pucch_format5_minus13_present, 1)); - - if (delta_f_pucch_format4_r13_present) { - HANDLE_CODE(delta_f_pucch_format4_r13.pack(bref)); - } - if (delta_f_pucch_format5_minus13_present) { - HANDLE_CODE(delta_f_pucch_format5_minus13.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ul_pwr_ctrl_common_v1310_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(delta_f_pucch_format4_r13_present, 1)); - HANDLE_CODE(bref.unpack(delta_f_pucch_format5_minus13_present, 1)); - - if (delta_f_pucch_format4_r13_present) { - HANDLE_CODE(delta_f_pucch_format4_r13.unpack(bref)); - } - if (delta_f_pucch_format5_minus13_present) { - HANDLE_CODE(delta_f_pucch_format5_minus13.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ul_pwr_ctrl_common_v1310_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (delta_f_pucch_format4_r13_present) { - j.write_str("deltaF-PUCCH-Format4-r13", delta_f_pucch_format4_r13.to_string()); - } - if (delta_f_pucch_format5_minus13_present) { - j.write_str("deltaF-PUCCH-Format5-13", delta_f_pucch_format5_minus13.to_string()); - } - j.end_obj(); -} - -std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const -{ - static const char* options[] = { - "deltaF16", "deltaF15", "deltaF14", "deltaF13", "deltaF12", "deltaF11", "deltaF10", "spare1"}; - return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_e_"); -} -uint8_t ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_number() const -{ - static const uint8_t options[] = {16, 15, 14, 13, 12, 11, 10}; - return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_e_"); -} - -std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const -{ - static const char* options[] = { - "deltaF13", "deltaF12", "deltaF11", "deltaF10", "deltaF9", "deltaF8", "deltaF7", "spare1"}; - return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_e_"); -} -uint8_t ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_number() const -{ - static const uint8_t options[] = {13, 12, 11, 10, 9, 8, 7}; - return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_e_"); -} - // PRACH-ParametersCE-r13 ::= SEQUENCE SRSASN_CODE prach_params_ce_r13_s::pack(bit_ref& bref) const { @@ -5127,6 +5062,71 @@ uint8_t rr_cfg_common_scell_r10_s::harq_ref_cfg_r14_opts::to_number() const return map_enum_number(options, 3, value, "rr_cfg_common_scell_r10_s::harq_ref_cfg_r14_e_"); } +// UplinkPowerControlCommon-v1310 ::= SEQUENCE +SRSASN_CODE ul_pwr_ctrl_common_v1310_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(delta_f_pucch_format4_r13_present, 1)); + HANDLE_CODE(bref.pack(delta_f_pucch_format5_minus13_present, 1)); + + if (delta_f_pucch_format4_r13_present) { + HANDLE_CODE(delta_f_pucch_format4_r13.pack(bref)); + } + if (delta_f_pucch_format5_minus13_present) { + HANDLE_CODE(delta_f_pucch_format5_minus13.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ul_pwr_ctrl_common_v1310_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(delta_f_pucch_format4_r13_present, 1)); + HANDLE_CODE(bref.unpack(delta_f_pucch_format5_minus13_present, 1)); + + if (delta_f_pucch_format4_r13_present) { + HANDLE_CODE(delta_f_pucch_format4_r13.unpack(bref)); + } + if (delta_f_pucch_format5_minus13_present) { + HANDLE_CODE(delta_f_pucch_format5_minus13.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ul_pwr_ctrl_common_v1310_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (delta_f_pucch_format4_r13_present) { + j.write_str("deltaF-PUCCH-Format4-r13", delta_f_pucch_format4_r13.to_string()); + } + if (delta_f_pucch_format5_minus13_present) { + j.write_str("deltaF-PUCCH-Format5-13", delta_f_pucch_format5_minus13.to_string()); + } + j.end_obj(); +} + +std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_string() const +{ + static const char* options[] = { + "deltaF16", "deltaF15", "deltaF14", "deltaF13", "deltaF12", "deltaF11", "deltaF10", "spare1"}; + return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_e_"); +} +uint8_t ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_opts::to_number() const +{ + static const uint8_t options[] = {16, 15, 14, 13, 12, 11, 10}; + return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format4_r13_e_"); +} + +std::string ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_string() const +{ + static const char* options[] = { + "deltaF13", "deltaF12", "deltaF11", "deltaF10", "deltaF9", "deltaF8", "deltaF7", "spare1"}; + return convert_enum_idx(options, 8, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_e_"); +} +uint8_t ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_opts::to_number() const +{ + static const uint8_t options[] = {13, 12, 11, 10, 9, 8, 7}; + return map_enum_number(options, 7, value, "ul_pwr_ctrl_common_v1310_s::delta_f_pucch_format5_minus13_e_"); +} + // PRACH-Config-v1310 ::= SEQUENCE SRSASN_CODE prach_cfg_v1310_s::pack(bit_ref& bref) const { diff --git a/lib/src/asn1/rrc/rr_ded.cc b/lib/src/asn1/rrc/rr_ded.cc index fa48e7f56..b256bd612 100644 --- a/lib/src/asn1/rrc/rr_ded.cc +++ b/lib/src/asn1/rrc/rr_ded.cc @@ -2953,32 +2953,11 @@ void rlc_cfg_v1530_c::set(types::options e) void rlc_cfg_v1530_c::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::release: - break; - case types::setup: - j.write_fieldname("setup"); - j.start_obj(); - j.write_str("rlc-OutOfOrderDelivery-r15", "true"); - j.end_obj(); - break; - default: - log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); - } j.end_obj(); } SRSASN_CODE rlc_cfg_v1530_c::pack(bit_ref& bref) const { type_.pack(bref); - switch (type_) { - case types::release: - break; - case types::setup: - break; - default: - log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } return SRSASN_SUCCESS; } SRSASN_CODE rlc_cfg_v1530_c::unpack(cbit_ref& bref) @@ -2986,15 +2965,6 @@ SRSASN_CODE rlc_cfg_v1530_c::unpack(cbit_ref& bref) types e; e.unpack(bref); set(e); - switch (type_) { - case types::release: - break; - case types::setup: - break; - default: - log_invalid_choice_id(type_, "rlc_cfg_v1530_c"); - return SRSASN_ERROR_DECODE_FAIL; - } return SRSASN_SUCCESS; } bool rlc_cfg_v1530_c::operator==(const rlc_cfg_v1530_c& other) const @@ -13486,88 +13456,6 @@ uint8_t ant_info_ded_v10i0_s::max_layers_mimo_r10_opts::to_number() const return map_enum_number(options, 3, value, "ant_info_ded_v10i0_s::max_layers_mimo_r10_e_"); } -// PUCCH-ConfigDedicated-v13c0 ::= SEQUENCE -SRSASN_CODE pucch_cfg_ded_v13c0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(ch_sel_v13c0.n1_pucch_an_cs_v13c0.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE pucch_cfg_ded_v13c0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(ch_sel_v13c0.n1_pucch_an_cs_v13c0.unpack(bref)); - - return SRSASN_SUCCESS; -} -void pucch_cfg_ded_v13c0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("channelSelection-v13c0"); - j.start_obj(); - j.write_fieldname("n1PUCCH-AN-CS-v13c0"); - ch_sel_v13c0.n1_pucch_an_cs_v13c0.to_json(j); - j.end_obj(); - j.end_obj(); -} - -void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::set(types::options e) -{ - type_ = e; -} -void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::release: - break; - case types::setup: - j.write_fieldname("setup"); - j.start_obj(); - j.start_array("n1PUCCH-AN-CS-ListP1-v13c0"); - for (const auto& e1 : c.n1_pucch_an_cs_list_p1_v13c0) { - j.write_int(e1); - } - j.end_array(); - j.end_obj(); - break; - default: - log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); - } - j.end_obj(); -} -SRSASN_CODE pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(pack_dyn_seq_of(bref, c.n1_pucch_an_cs_list_p1_v13c0, 2, 4, integer_packer(0, 2047))); - break; - default: - log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(unpack_dyn_seq_of(c.n1_pucch_an_cs_list_p1_v13c0, bref, 2, 4, integer_packer(0, 2047))); - break; - default: - log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - // RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_scell_r10_s::pack(bit_ref& bref) const { @@ -13779,82 +13667,6 @@ bool rr_cfg_ded_scell_r10_s::operator==(const rr_cfg_ded_scell_r10_s& other) con (not sps_cfg_v1530.is_present() or *sps_cfg_v1530 == *other.sps_cfg_v1530))); } -// PhysicalConfigDedicatedSCell-v13c0 ::= SEQUENCE -SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pucch_scell_v13c0.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE phys_cfg_ded_scell_v13c0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(pucch_scell_v13c0.unpack(bref)); - - return SRSASN_SUCCESS; -} -void phys_cfg_ded_scell_v13c0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("pucch-SCell-v13c0"); - pucch_scell_v13c0.to_json(j); - j.end_obj(); -} - -void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::set(types::options e) -{ - type_ = e; -} -void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::release: - break; - case types::setup: - j.write_fieldname("setup"); - j.start_obj(); - j.write_fieldname("pucch-ConfigDedicated-v13c0"); - c.pucch_cfg_ded_v13c0.to_json(j); - j.end_obj(); - break; - default: - log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); - } - j.end_obj(); -} -SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(c.pucch_cfg_ded_v13c0.pack(bref)); - break; - default: - log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::release: - break; - case types::setup: - HANDLE_CODE(c.pucch_cfg_ded_v13c0.unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - // SCellToAddModExt-r13 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_ext_r13_s::pack(bit_ref& bref) const { @@ -13930,56 +13742,86 @@ void scell_to_add_mod_ext_r13_s::to_json(json_writer& j) const j.end_obj(); } -// RadioResourceConfigDedicatedSCell-v13c0 ::= SEQUENCE -SRSASN_CODE rr_cfg_ded_scell_v13c0_s::pack(bit_ref& bref) const +// PUCCH-ConfigDedicated-v13c0 ::= SEQUENCE +SRSASN_CODE pucch_cfg_ded_v13c0_s::pack(bit_ref& bref) const { - HANDLE_CODE(phys_cfg_ded_scell_v13c0.pack(bref)); + HANDLE_CODE(ch_sel_v13c0.n1_pucch_an_cs_v13c0.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rr_cfg_ded_scell_v13c0_s::unpack(cbit_ref& bref) +SRSASN_CODE pucch_cfg_ded_v13c0_s::unpack(cbit_ref& bref) { - HANDLE_CODE(phys_cfg_ded_scell_v13c0.unpack(bref)); + HANDLE_CODE(ch_sel_v13c0.n1_pucch_an_cs_v13c0.unpack(bref)); return SRSASN_SUCCESS; } -void rr_cfg_ded_scell_v13c0_s::to_json(json_writer& j) const +void pucch_cfg_ded_v13c0_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("physicalConfigDedicatedSCell-v13c0"); - phys_cfg_ded_scell_v13c0.to_json(j); + j.write_fieldname("channelSelection-v13c0"); + j.start_obj(); + j.write_fieldname("n1PUCCH-AN-CS-v13c0"); + ch_sel_v13c0.n1_pucch_an_cs_v13c0.to_json(j); + j.end_obj(); j.end_obj(); } -// SCellToAddMod-v13c0 ::= SEQUENCE -SRSASN_CODE scell_to_add_mod_v13c0_s::pack(bit_ref& bref) const +void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::set(types::options e) { - HANDLE_CODE(bref.pack(rr_cfg_ded_scell_v13c0_present, 1)); - - if (rr_cfg_ded_scell_v13c0_present) { - HANDLE_CODE(rr_cfg_ded_scell_v13c0.pack(bref)); + type_ = e; +} +void pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::release: + break; + case types::setup: + j.write_fieldname("setup"); + j.start_obj(); + j.start_array("n1PUCCH-AN-CS-ListP1-v13c0"); + for (const auto& e1 : c.n1_pucch_an_cs_list_p1_v13c0) { + j.write_int(e1); + } + j.end_array(); + j.end_obj(); + break; + default: + log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); } - - return SRSASN_SUCCESS; + j.end_obj(); } -SRSASN_CODE scell_to_add_mod_v13c0_s::unpack(cbit_ref& bref) +SRSASN_CODE pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::pack(bit_ref& bref) const { - HANDLE_CODE(bref.unpack(rr_cfg_ded_scell_v13c0_present, 1)); - - if (rr_cfg_ded_scell_v13c0_present) { - HANDLE_CODE(rr_cfg_ded_scell_v13c0.unpack(bref)); + type_.pack(bref); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(pack_dyn_seq_of(bref, c.n1_pucch_an_cs_list_p1_v13c0, 2, 4, integer_packer(0, 2047))); + break; + default: + log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -void scell_to_add_mod_v13c0_s::to_json(json_writer& j) const +SRSASN_CODE pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_::unpack(cbit_ref& bref) { - j.start_obj(); - if (rr_cfg_ded_scell_v13c0_present) { - j.write_fieldname("radioResourceConfigDedicatedSCell-v13c0"); - rr_cfg_ded_scell_v13c0.to_json(j); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(unpack_dyn_seq_of(c.n1_pucch_an_cs_list_p1_v13c0, bref, 2, 4, integer_packer(0, 2047))); + break; + default: + log_invalid_choice_id(type_, "pucch_cfg_ded_v13c0_s::ch_sel_v13c0_s_::n1_pucch_an_cs_v13c0_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - j.end_obj(); + return SRSASN_SUCCESS; } // DRB-ToAddModSCG-r12 ::= SEQUENCE @@ -14573,37 +14415,6 @@ std::string scell_to_add_mod_r10_s::scell_state_r15_opts::to_string() const return convert_enum_idx(options, 2, value, "scell_to_add_mod_r10_s::scell_state_r15_e_"); } -// SCellToAddMod-v10l0 ::= SEQUENCE -SRSASN_CODE scell_to_add_mod_v10l0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rr_cfg_common_scell_v10l0_present, 1)); - - if (rr_cfg_common_scell_v10l0_present) { - HANDLE_CODE(rr_cfg_common_scell_v10l0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE scell_to_add_mod_v10l0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rr_cfg_common_scell_v10l0_present, 1)); - - if (rr_cfg_common_scell_v10l0_present) { - HANDLE_CODE(rr_cfg_common_scell_v10l0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void scell_to_add_mod_v10l0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rr_cfg_common_scell_v10l0_present) { - j.write_fieldname("radioResourceConfigCommonSCell-v10l0"); - rr_cfg_common_scell_v10l0.to_json(j); - } - j.end_obj(); -} - // SCellToAddModExt-v1370 ::= SEQUENCE SRSASN_CODE scell_to_add_mod_ext_v1370_s::pack(bit_ref& bref) const { @@ -14705,27 +14516,6 @@ std::string scell_to_add_mod_ext_v1430_s::scell_state_r15_opts::to_string() cons return convert_enum_idx(options, 2, value, "scell_to_add_mod_ext_v1430_s::scell_state_r15_e_"); } -// RadioResourceConfigDedicated-v13c0 ::= SEQUENCE -SRSASN_CODE rr_cfg_ded_v13c0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(phys_cfg_ded_v13c0.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rr_cfg_ded_v13c0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(phys_cfg_ded_v13c0.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rr_cfg_ded_v13c0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("physicalConfigDedicated-v13c0"); - phys_cfg_ded_v13c0.to_json(j); - j.end_obj(); -} - // RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE SRSASN_CODE rr_cfg_ded_scg_r12_s::pack(bit_ref& bref) const { @@ -14894,6 +14684,186 @@ void rr_cfg_ded_scg_r12_s::to_json(json_writer& j) const j.end_obj(); } +// PhysicalConfigDedicatedSCell-v13c0 ::= SEQUENCE +SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pucch_scell_v13c0.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE phys_cfg_ded_scell_v13c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(pucch_scell_v13c0.unpack(bref)); + + return SRSASN_SUCCESS; +} +void phys_cfg_ded_scell_v13c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("pucch-SCell-v13c0"); + pucch_scell_v13c0.to_json(j); + j.end_obj(); +} + +void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::set(types::options e) +{ + type_ = e; +} +void phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::release: + break; + case types::setup: + j.write_fieldname("setup"); + j.start_obj(); + j.write_fieldname("pucch-ConfigDedicated-v13c0"); + c.pucch_cfg_ded_v13c0.to_json(j); + j.end_obj(); + break; + default: + log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); + } + j.end_obj(); +} +SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(c.pucch_cfg_ded_v13c0.pack(bref)); + break; + default: + log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::release: + break; + case types::setup: + HANDLE_CODE(c.pucch_cfg_ded_v13c0.unpack(bref)); + break; + default: + log_invalid_choice_id(type_, "phys_cfg_ded_scell_v13c0_s::pucch_scell_v13c0_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +// RadioResourceConfigDedicatedSCell-v13c0 ::= SEQUENCE +SRSASN_CODE rr_cfg_ded_scell_v13c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(phys_cfg_ded_scell_v13c0.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rr_cfg_ded_scell_v13c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(phys_cfg_ded_scell_v13c0.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rr_cfg_ded_scell_v13c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("physicalConfigDedicatedSCell-v13c0"); + phys_cfg_ded_scell_v13c0.to_json(j); + j.end_obj(); +} + +// SCellToAddMod-v13c0 ::= SEQUENCE +SRSASN_CODE scell_to_add_mod_v13c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rr_cfg_ded_scell_v13c0_present, 1)); + + if (rr_cfg_ded_scell_v13c0_present) { + HANDLE_CODE(rr_cfg_ded_scell_v13c0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scell_to_add_mod_v13c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rr_cfg_ded_scell_v13c0_present, 1)); + + if (rr_cfg_ded_scell_v13c0_present) { + HANDLE_CODE(rr_cfg_ded_scell_v13c0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void scell_to_add_mod_v13c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rr_cfg_ded_scell_v13c0_present) { + j.write_fieldname("radioResourceConfigDedicatedSCell-v13c0"); + rr_cfg_ded_scell_v13c0.to_json(j); + } + j.end_obj(); +} + +// SCellToAddMod-v10l0 ::= SEQUENCE +SRSASN_CODE scell_to_add_mod_v10l0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rr_cfg_common_scell_v10l0_present, 1)); + + if (rr_cfg_common_scell_v10l0_present) { + HANDLE_CODE(rr_cfg_common_scell_v10l0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scell_to_add_mod_v10l0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rr_cfg_common_scell_v10l0_present, 1)); + + if (rr_cfg_common_scell_v10l0_present) { + HANDLE_CODE(rr_cfg_common_scell_v10l0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void scell_to_add_mod_v10l0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rr_cfg_common_scell_v10l0_present) { + j.write_fieldname("radioResourceConfigCommonSCell-v10l0"); + rr_cfg_common_scell_v10l0.to_json(j); + } + j.end_obj(); +} + +// RadioResourceConfigDedicated-v13c0 ::= SEQUENCE +SRSASN_CODE rr_cfg_ded_v13c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(phys_cfg_ded_v13c0.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rr_cfg_ded_v13c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(phys_cfg_ded_v13c0.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rr_cfg_ded_v13c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("physicalConfigDedicated-v13c0"); + phys_cfg_ded_v13c0.to_json(j); + j.end_obj(); +} + // Cell-ToAddMod-r12 ::= SEQUENCE SRSASN_CODE cell_to_add_mod_r12_s::pack(bit_ref& bref) const { diff --git a/lib/src/asn1/rrc/security.cc b/lib/src/asn1/rrc/security.cc index 14ac2ea3e..dd54d3761 100644 --- a/lib/src/asn1/rrc/security.cc +++ b/lib/src/asn1/rrc/security.cc @@ -548,67 +548,9 @@ void security_mode_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void security_mode_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } -} -security_mode_cmd_s::crit_exts_c_::crit_exts_c_(const security_mode_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } -} -security_mode_cmd_s::crit_exts_c_& -security_mode_cmd_s::crit_exts_c_::operator=(const security_mode_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } - - return *this; } void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -616,7 +558,7 @@ void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -630,7 +572,7 @@ SRSASN_CODE security_mode_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -647,7 +589,7 @@ SRSASN_CODE security_mode_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -882,67 +824,9 @@ void security_mode_complete_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::security_mode_complete_r8: - c.destroy(); - break; - default: - break; - } -} void security_mode_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::security_mode_complete_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } -} -security_mode_complete_s::crit_exts_c_::crit_exts_c_(const security_mode_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::security_mode_complete_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } -} -security_mode_complete_s::crit_exts_c_& -security_mode_complete_s::crit_exts_c_::operator=(const security_mode_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::security_mode_complete_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } - - return *this; } void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -950,7 +834,7 @@ void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::security_mode_complete_r8: j.write_fieldname("securityModeComplete-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -964,7 +848,7 @@ SRSASN_CODE security_mode_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::security_mode_complete_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -981,7 +865,7 @@ SRSASN_CODE security_mode_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::security_mode_complete_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1016,67 +900,9 @@ void security_mode_fail_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_fail_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::security_mode_fail_r8: - c.destroy(); - break; - default: - break; - } -} void security_mode_fail_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::security_mode_fail_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } -} -security_mode_fail_s::crit_exts_c_::crit_exts_c_(const security_mode_fail_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::security_mode_fail_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } -} -security_mode_fail_s::crit_exts_c_& -security_mode_fail_s::crit_exts_c_::operator=(const security_mode_fail_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::security_mode_fail_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } - - return *this; } void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1084,7 +910,7 @@ void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::security_mode_fail_r8: j.write_fieldname("securityModeFailure-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1098,7 +924,7 @@ SRSASN_CODE security_mode_fail_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::security_mode_fail_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1115,7 +941,7 @@ SRSASN_CODE security_mode_fail_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::security_mode_fail_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; diff --git a/lib/src/asn1/rrc/si.cc b/lib/src/asn1/rrc/si.cc index fdb36111a..2011d358b 100644 --- a/lib/src/asn1/rrc/si.cc +++ b/lib/src/asn1/rrc/si.cc @@ -563,38 +563,6 @@ void cell_access_related_info_r14_s::to_json(json_writer& j) const j.end_obj(); } -// CellSelectionInfoCE1-v1360 ::= SEQUENCE -SRSASN_CODE cell_sel_info_ce1_v1360_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, delta_rx_lev_min_ce1_v1360, (int8_t)-8, (int8_t)-1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE cell_sel_info_ce1_v1360_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(delta_rx_lev_min_ce1_v1360, bref, (int8_t)-8, (int8_t)-1)); - - return SRSASN_SUCCESS; -} -void cell_sel_info_ce1_v1360_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("delta-RxLevMinCE1-v1360", delta_rx_lev_min_ce1_v1360); - j.end_obj(); -} - -// SI-Periodicity-r12 ::= ENUMERATED -std::string si_periodicity_r12_opts::to_string() const -{ - static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; - return convert_enum_idx(options, 7, value, "si_periodicity_r12_e"); -} -uint16_t si_periodicity_r12_opts::to_number() const -{ - static const uint16_t options[] = {8, 16, 32, 64, 128, 256, 512}; - return map_enum_number(options, 7, value, "si_periodicity_r12_e"); -} - // SystemInformationBlockType1-v1450-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1450_ies_s::pack(bit_ref& bref) const { @@ -638,6 +606,26 @@ void sib_type1_v1450_ies_s::to_json(json_writer& j) const j.end_obj(); } +// CellSelectionInfoCE1-v1360 ::= SEQUENCE +SRSASN_CODE cell_sel_info_ce1_v1360_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, delta_rx_lev_min_ce1_v1360, (int8_t)-8, (int8_t)-1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE cell_sel_info_ce1_v1360_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(unpack_integer(delta_rx_lev_min_ce1_v1360, bref, (int8_t)-8, (int8_t)-1)); + + return SRSASN_SUCCESS; +} +void cell_sel_info_ce1_v1360_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("delta-RxLevMinCE1-v1360", delta_rx_lev_min_ce1_v1360); + j.end_obj(); +} + // SystemInformationBlockType1-v1430-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1430_ies_s::pack(bit_ref& bref) const { @@ -2171,6 +2159,18 @@ void cell_sel_info_v920_s::to_json(json_writer& j) const j.end_obj(); } +// SI-Periodicity-r12 ::= ENUMERATED +std::string si_periodicity_r12_opts::to_string() const +{ + static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"}; + return convert_enum_idx(options, 7, value, "si_periodicity_r12_e"); +} +uint16_t si_periodicity_r12_opts::to_number() const +{ + static const uint16_t options[] = {8, 16, 32, 64, 128, 256, 512}; + return map_enum_number(options, 7, value, "si_periodicity_r12_e"); +} + // SystemInformationBlockType1-v1130-IEs ::= SEQUENCE SRSASN_CODE sib_type1_v1130_ies_s::pack(bit_ref& bref) const { diff --git a/lib/src/asn1/rrc/uecap.cc b/lib/src/asn1/rrc/uecap.cc index 4339792a9..e180b131d 100644 --- a/lib/src/asn1/rrc/uecap.cc +++ b/lib/src/asn1/rrc/uecap.cc @@ -511,66 +511,9 @@ void ue_cap_enquiry_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_enquiry_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_cap_enquiry_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } -} -ue_cap_enquiry_s::crit_exts_c_::crit_exts_c_(const ue_cap_enquiry_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } -} -ue_cap_enquiry_s::crit_exts_c_& ue_cap_enquiry_s::crit_exts_c_::operator=(const ue_cap_enquiry_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } - - return *this; } void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const { @@ -578,7 +521,7 @@ void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -592,7 +535,7 @@ SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -609,7 +552,7 @@ SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -985,66 +928,9 @@ void ue_cap_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_cap_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } -} -ue_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_cap_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } -} -ue_cap_info_s::crit_exts_c_& ue_cap_info_s::crit_exts_c_::operator=(const ue_cap_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } - - return *this; } void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1052,7 +938,7 @@ void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1066,7 +952,7 @@ SRSASN_CODE ue_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1083,7 +969,7 @@ SRSASN_CODE ue_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -8440,9 +8326,6 @@ SRSASN_CODE phy_layer_params_v1540_s::pack(bit_ref& bref) const HANDLE_CODE(bref.pack(crs_im_tm1_to_tm9_one_rx_port_v1540_present, 1)); HANDLE_CODE(bref.pack(cch_im_ref_rec_type_a_one_rx_port_v1540_present, 1)); - if (stti_spt_cap_v1540_present) { - } - return SRSASN_SUCCESS; } SRSASN_CODE phy_layer_params_v1540_s::unpack(cbit_ref& bref) @@ -8451,9 +8334,6 @@ SRSASN_CODE phy_layer_params_v1540_s::unpack(cbit_ref& bref) HANDLE_CODE(bref.unpack(crs_im_tm1_to_tm9_one_rx_port_v1540_present, 1)); HANDLE_CODE(bref.unpack(cch_im_ref_rec_type_a_one_rx_port_v1540_present, 1)); - if (stti_spt_cap_v1540_present) { - } - return SRSASN_SUCCESS; } void phy_layer_params_v1540_s::to_json(json_writer& j) const @@ -10614,28 +10494,6 @@ uint16_t pdcp_params_v1430_s::max_num_rohc_context_sessions_r14_opts::to_number( return map_enum_number(options, 14, value, "pdcp_params_v1430_s::max_num_rohc_context_sessions_r14_e_"); } -// PhyLayerParameters-v14a0 ::= SEQUENCE -SRSASN_CODE phy_layer_params_v14a0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ssp10_tdd_only_r14_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE phy_layer_params_v14a0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ssp10_tdd_only_r14_present, 1)); - - return SRSASN_SUCCESS; -} -void phy_layer_params_v14a0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ssp10_tdd_only_r14_present) { - j.write_str("ssp10-TDD-Only-r14", "supported"); - } - j.end_obj(); -} - // RLC-Parameters-v1430 ::= SEQUENCE SRSASN_CODE rlc_params_v1430_s::pack(bit_ref& bref) const { @@ -10719,44 +10577,6 @@ void ue_eutra_cap_v1440_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v14b0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v14b0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v14b0_present) { - HANDLE_CODE(rf_params_v14b0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v14b0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v14b0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v14b0_present) { - HANDLE_CODE(rf_params_v14b0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v14b0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v14b0_present) { - j.write_fieldname("rf-Parameters-v14b0"); - rf_params_v14b0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - // UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1430_s::pack(bit_ref& bref) const { @@ -10800,172 +10620,54 @@ void ue_eutra_cap_add_xdd_mode_v1430_s::to_json(json_writer& j) const j.end_obj(); } -// MBMS-Parameters-v1470 ::= SEQUENCE -SRSASN_CODE mbms_params_v1470_s::pack(bit_ref& bref) const +// Other-Parameters-v1360 ::= SEQUENCE +SRSASN_CODE other_params_v1360_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(mbms_scaling_factor1dot25_r14_present, 1)); - HANDLE_CODE(bref.pack(mbms_scaling_factor7dot5_r14_present, 1)); - - HANDLE_CODE(mbms_max_bw_r14.pack(bref)); - if (mbms_scaling_factor1dot25_r14_present) { - HANDLE_CODE(mbms_scaling_factor1dot25_r14.pack(bref)); - } - if (mbms_scaling_factor7dot5_r14_present) { - HANDLE_CODE(mbms_scaling_factor7dot5_r14.pack(bref)); - } + HANDLE_CODE(bref.pack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); return SRSASN_SUCCESS; } -SRSASN_CODE mbms_params_v1470_s::unpack(cbit_ref& bref) +SRSASN_CODE other_params_v1360_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(mbms_scaling_factor1dot25_r14_present, 1)); - HANDLE_CODE(bref.unpack(mbms_scaling_factor7dot5_r14_present, 1)); - - HANDLE_CODE(mbms_max_bw_r14.unpack(bref)); - if (mbms_scaling_factor1dot25_r14_present) { - HANDLE_CODE(mbms_scaling_factor1dot25_r14.unpack(bref)); - } - if (mbms_scaling_factor7dot5_r14_present) { - HANDLE_CODE(mbms_scaling_factor7dot5_r14.unpack(bref)); - } + HANDLE_CODE(bref.unpack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); return SRSASN_SUCCESS; } -void mbms_params_v1470_s::to_json(json_writer& j) const +void other_params_v1360_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("mbms-MaxBW-r14"); - mbms_max_bw_r14.to_json(j); - if (mbms_scaling_factor1dot25_r14_present) { - j.write_str("mbms-ScalingFactor1dot25-r14", mbms_scaling_factor1dot25_r14.to_string()); - } - if (mbms_scaling_factor7dot5_r14_present) { - j.write_str("mbms-ScalingFactor7dot5-r14", mbms_scaling_factor7dot5_r14.to_string()); + if (in_dev_coex_ind_hardware_sharing_ind_r13_present) { + j.write_str("inDeviceCoexInd-HardwareSharingInd-r13", "supported"); } j.end_obj(); } -void mbms_params_v1470_s::mbms_max_bw_r14_c_::set(types::options e) -{ - type_ = e; -} -void mbms_params_v1470_s::mbms_max_bw_r14_c_::to_json(json_writer& j) const +// UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1430_ies_s::pack(bit_ref& bref) const { - j.start_obj(); - switch (type_) { - case types::implicit_value: - break; - case types::explicit_value: - j.write_int("explicitValue", c); - break; - default: - log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); - } - j.end_obj(); -} -SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::implicit_value: - break; - case types::explicit_value: - HANDLE_CODE(pack_integer(bref, c, (uint8_t)2u, (uint8_t)20u)); - break; - default: - log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::implicit_value: - break; - case types::explicit_value: - HANDLE_CODE(unpack_integer(c, bref, (uint8_t)2u, (uint8_t)20u)); - break; - default: - log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_string() const -{ - static const char* options[] = {"n3", "n6", "n9", "n12"}; - return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); -} -uint8_t mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_number() const -{ - static const uint8_t options[] = {3, 6, 9, 12}; - return map_enum_number(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); -} - -std::string mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_string() const -{ - static const char* options[] = {"n1", "n2", "n3", "n4"}; - return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_e_"); -} -uint8_t mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_number() const -{ - static const uint8_t options[] = {1, 2, 3, 4}; - return map_enum_number(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_e_"); -} - -// Other-Parameters-v1360 ::= SEQUENCE -SRSASN_CODE other_params_v1360_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE other_params_v1360_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(in_dev_coex_ind_hardware_sharing_ind_r13_present, 1)); - - return SRSASN_SUCCESS; -} -void other_params_v1360_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (in_dev_coex_ind_hardware_sharing_ind_r13_present) { - j.write_str("inDeviceCoexInd-HardwareSharingInd-r13", "supported"); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1430_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ue_category_dl_v1430_present, 1)); - HANDLE_CODE(bref.pack(ue_category_ul_v1430_present, 1)); - HANDLE_CODE(bref.pack(ue_category_ul_v1430b_present, 1)); - HANDLE_CODE(bref.pack(mac_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(meas_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(pdcp_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(rf_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(laa_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(lwa_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(lwip_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(mmtel_params_r14_present, 1)); - HANDLE_CODE(bref.pack(mob_params_r14_present, 1)); - HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1430_present, 1)); - HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1430_present, 1)); - HANDLE_CODE(bref.pack(mbms_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(sl_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(high_speed_enh_params_r14_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(phy_layer_params_v1430.pack(bref)); - if (ue_category_ul_v1430_present) { - HANDLE_CODE(ue_category_ul_v1430.pack(bref)); + HANDLE_CODE(bref.pack(ue_category_dl_v1430_present, 1)); + HANDLE_CODE(bref.pack(ue_category_ul_v1430_present, 1)); + HANDLE_CODE(bref.pack(ue_category_ul_v1430b_present, 1)); + HANDLE_CODE(bref.pack(mac_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(meas_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(pdcp_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(rf_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(laa_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(lwa_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(lwip_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(mmtel_params_r14_present, 1)); + HANDLE_CODE(bref.pack(mob_params_r14_present, 1)); + HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1430_present, 1)); + HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1430_present, 1)); + HANDLE_CODE(bref.pack(mbms_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(sl_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(high_speed_enh_params_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(phy_layer_params_v1430.pack(bref)); + if (ue_category_ul_v1430_present) { + HANDLE_CODE(ue_category_ul_v1430.pack(bref)); } if (mac_params_v1430_present) { HANDLE_CODE(mac_params_v1430.pack(bref)); @@ -11199,41 +10901,6 @@ uint8_t ue_eutra_cap_v1430_ies_s::ue_category_ul_v1430_opts::to_number() const return map_enum_number(options, 6, value, "ue_eutra_cap_v1430_ies_s::ue_category_ul_v1430_e_"); } -// UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v14a0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(phy_layer_params_v14a0.pack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v14a0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - HANDLE_CODE(phy_layer_params_v14a0.unpack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v14a0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("phyLayerParameters-v14a0"); - phy_layer_params_v14a0.to_json(j); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // CE-Parameters-v1350 ::= SEQUENCE SRSASN_CODE ce_params_v1350_s::pack(bit_ref& bref) const { @@ -11299,66 +10966,44 @@ void ue_eutra_cap_v1360_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1470_ies_s::pack(bit_ref& bref) const +// UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1350_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(mbms_params_v1470_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_v1470_present, 1)); - HANDLE_CODE(bref.pack(rf_params_v1470_present, 1)); + HANDLE_CODE(bref.pack(ue_category_dl_v1350_present, 1)); + HANDLE_CODE(bref.pack(ue_category_ul_v1350_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (mbms_params_v1470_present) { - HANDLE_CODE(mbms_params_v1470.pack(bref)); - } - if (phy_layer_params_v1470_present) { - HANDLE_CODE(phy_layer_params_v1470.pack(bref)); - } - if (rf_params_v1470_present) { - HANDLE_CODE(rf_params_v1470.pack(bref)); - } + HANDLE_CODE(ce_params_v1350.pack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ue_eutra_cap_v1470_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_eutra_cap_v1350_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(mbms_params_v1470_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_v1470_present, 1)); - HANDLE_CODE(bref.unpack(rf_params_v1470_present, 1)); + HANDLE_CODE(bref.unpack(ue_category_dl_v1350_present, 1)); + HANDLE_CODE(bref.unpack(ue_category_ul_v1350_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - if (mbms_params_v1470_present) { - HANDLE_CODE(mbms_params_v1470.unpack(bref)); - } - if (phy_layer_params_v1470_present) { - HANDLE_CODE(phy_layer_params_v1470.unpack(bref)); - } - if (rf_params_v1470_present) { - HANDLE_CODE(rf_params_v1470.unpack(bref)); - } + HANDLE_CODE(ce_params_v1350.unpack(bref)); if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void ue_eutra_cap_v1470_ies_s::to_json(json_writer& j) const +void ue_eutra_cap_v1350_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (mbms_params_v1470_present) { - j.write_fieldname("mbms-Parameters-v1470"); - mbms_params_v1470.to_json(j); - } - if (phy_layer_params_v1470_present) { - j.write_fieldname("phyLayerParameters-v1470"); - phy_layer_params_v1470.to_json(j); + if (ue_category_dl_v1350_present) { + j.write_str("ue-CategoryDL-v1350", "oneBis"); } - if (rf_params_v1470_present) { - j.write_fieldname("rf-Parameters-v1470"); - rf_params_v1470.to_json(j); + if (ue_category_ul_v1350_present) { + j.write_str("ue-CategoryUL-v1350", "oneBis"); } + j.write_fieldname("ce-Parameters-v1350"); + ce_params_v1350.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); @@ -11366,66 +11011,78 @@ void ue_eutra_cap_v1470_ies_s::to_json(json_writer& j) const j.end_obj(); } -// CE-Parameters-v1380 ::= SEQUENCE -SRSASN_CODE ce_params_v1380_s::pack(bit_ref& bref) const +// SCPTM-Parameters-r13 ::= SEQUENCE +SRSASN_CODE scptm_params_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(tm6_ce_mode_a_r13_present, 1)); + HANDLE_CODE(bref.pack(scptm_parallel_reception_r13_present, 1)); + HANDLE_CODE(bref.pack(scptm_scell_r13_present, 1)); + HANDLE_CODE(bref.pack(scptm_non_serving_cell_r13_present, 1)); + HANDLE_CODE(bref.pack(scptm_async_dc_r13_present, 1)); return SRSASN_SUCCESS; } -SRSASN_CODE ce_params_v1380_s::unpack(cbit_ref& bref) +SRSASN_CODE scptm_params_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(tm6_ce_mode_a_r13_present, 1)); + HANDLE_CODE(bref.unpack(scptm_parallel_reception_r13_present, 1)); + HANDLE_CODE(bref.unpack(scptm_scell_r13_present, 1)); + HANDLE_CODE(bref.unpack(scptm_non_serving_cell_r13_present, 1)); + HANDLE_CODE(bref.unpack(scptm_async_dc_r13_present, 1)); return SRSASN_SUCCESS; } -void ce_params_v1380_s::to_json(json_writer& j) const +void scptm_params_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (tm6_ce_mode_a_r13_present) { - j.write_str("tm6-CE-ModeA-r13", "supported"); + if (scptm_parallel_reception_r13_present) { + j.write_str("scptm-ParallelReception-r13", "supported"); + } + if (scptm_scell_r13_present) { + j.write_str("scptm-SCell-r13", "supported"); + } + if (scptm_non_serving_cell_r13_present) { + j.write_str("scptm-NonServingCell-r13", "supported"); + } + if (scptm_async_dc_r13_present) { + j.write_str("scptm-AsyncDC-r13", "supported"); } j.end_obj(); } -// UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1350_ies_s::pack(bit_ref& bref) const +// UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1340_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ue_category_dl_v1350_present, 1)); - HANDLE_CODE(bref.pack(ue_category_ul_v1350_present, 1)); + HANDLE_CODE(bref.pack(ue_category_ul_v1340_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(ce_params_v1350.pack(bref)); + if (ue_category_ul_v1340_present) { + HANDLE_CODE(pack_integer(bref, ue_category_ul_v1340, (uint8_t)15u, (uint8_t)15u)); + } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ue_eutra_cap_v1350_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_eutra_cap_v1340_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(ue_category_dl_v1350_present, 1)); - HANDLE_CODE(bref.unpack(ue_category_ul_v1350_present, 1)); + HANDLE_CODE(bref.unpack(ue_category_ul_v1340_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(ce_params_v1350.unpack(bref)); + if (ue_category_ul_v1340_present) { + HANDLE_CODE(unpack_integer(ue_category_ul_v1340, bref, (uint8_t)15u, (uint8_t)15u)); + } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void ue_eutra_cap_v1350_ies_s::to_json(json_writer& j) const +void ue_eutra_cap_v1340_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (ue_category_dl_v1350_present) { - j.write_str("ue-CategoryDL-v1350", "oneBis"); - } - if (ue_category_ul_v1350_present) { - j.write_str("ue-CategoryUL-v1350", "oneBis"); + if (ue_category_ul_v1340_present) { + j.write_int("ue-CategoryUL-v1340", ue_category_ul_v1340); } - j.write_fieldname("ce-Parameters-v1350"); - ce_params_v1350.to_json(j); if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); non_crit_ext.to_json(j); @@ -11433,220 +11090,8 @@ void ue_eutra_cap_v1350_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v13e0a_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v13e0a_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v13e0a_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// CE-Parameters-v1370 ::= SEQUENCE -SRSASN_CODE ce_params_v1370_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(tm9_ce_mode_a_r13_present, 1)); - HANDLE_CODE(bref.pack(tm9_ce_mode_b_r13_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ce_params_v1370_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(tm9_ce_mode_a_r13_present, 1)); - HANDLE_CODE(bref.unpack(tm9_ce_mode_b_r13_present, 1)); - - return SRSASN_SUCCESS; -} -void ce_params_v1370_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (tm9_ce_mode_a_r13_present) { - j.write_str("tm9-CE-ModeA-r13", "supported"); - } - if (tm9_ce_mode_b_r13_present) { - j.write_str("tm9-CE-ModeB-r13", "supported"); - } - j.end_obj(); -} - -// SCPTM-Parameters-r13 ::= SEQUENCE -SRSASN_CODE scptm_params_r13_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(scptm_parallel_reception_r13_present, 1)); - HANDLE_CODE(bref.pack(scptm_scell_r13_present, 1)); - HANDLE_CODE(bref.pack(scptm_non_serving_cell_r13_present, 1)); - HANDLE_CODE(bref.pack(scptm_async_dc_r13_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE scptm_params_r13_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(scptm_parallel_reception_r13_present, 1)); - HANDLE_CODE(bref.unpack(scptm_scell_r13_present, 1)); - HANDLE_CODE(bref.unpack(scptm_non_serving_cell_r13_present, 1)); - HANDLE_CODE(bref.unpack(scptm_async_dc_r13_present, 1)); - - return SRSASN_SUCCESS; -} -void scptm_params_r13_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (scptm_parallel_reception_r13_present) { - j.write_str("scptm-ParallelReception-r13", "supported"); - } - if (scptm_scell_r13_present) { - j.write_str("scptm-SCell-r13", "supported"); - } - if (scptm_non_serving_cell_r13_present) { - j.write_str("scptm-NonServingCell-r13", "supported"); - } - if (scptm_async_dc_r13_present) { - j.write_str("scptm-AsyncDC-r13", "supported"); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1340_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ue_category_ul_v1340_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ue_category_ul_v1340_present) { - HANDLE_CODE(pack_integer(bref, ue_category_ul_v1340, (uint8_t)15u, (uint8_t)15u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v1340_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ue_category_ul_v1340_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ue_category_ul_v1340_present) { - HANDLE_CODE(unpack_integer(ue_category_ul_v1340, bref, (uint8_t)15u, (uint8_t)15u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v1340_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ue_category_ul_v1340_present) { - j.write_int("ue-CategoryUL-v1340", ue_category_ul_v1340); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1390_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v1390_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v1390_present) { - HANDLE_CODE(rf_params_v1390.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v1390_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v1390_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v1390_present) { - HANDLE_CODE(rf_params_v1390.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v1390_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v1390_present) { - j.write_fieldname("rf-Parameters-v1390"); - rf_params_v1390.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(ce_params_v1380.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(ce_params_v1380.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_add_xdd_mode_v1380_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("ce-Parameters-v1380"); - ce_params_v1380.to_json(j); - j.end_obj(); -} - -// CE-Parameters-v1320 ::= SEQUENCE -SRSASN_CODE ce_params_v1320_s::pack(bit_ref& bref) const +// CE-Parameters-v1320 ::= SEQUENCE +SRSASN_CODE ce_params_v1320_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(intra_freq_a3_ce_mode_a_r13_present, 1)); HANDLE_CODE(bref.pack(intra_freq_a3_ce_mode_b_r13_present, 1)); @@ -11870,96 +11315,41 @@ void ue_eutra_cap_v1330_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1380_ies_s::pack(bit_ref& bref) const +// UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(rf_params_v1380_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1320_present, 1)); + HANDLE_CODE(bref.pack(scptm_params_r13_present, 1)); - if (rf_params_v1380_present) { - HANDLE_CODE(rf_params_v1380.pack(bref)); + if (phy_layer_params_v1320_present) { + HANDLE_CODE(phy_layer_params_v1320.pack(bref)); } - HANDLE_CODE(ce_params_v1380.pack(bref)); - HANDLE_CODE(fdd_add_ue_eutra_cap_v1380.pack(bref)); - HANDLE_CODE(tdd_add_ue_eutra_cap_v1380.pack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (scptm_params_r13_present) { + HANDLE_CODE(scptm_params_r13.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ue_eutra_cap_v1380_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(rf_params_v1380_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_v1320_present, 1)); + HANDLE_CODE(bref.unpack(scptm_params_r13_present, 1)); - if (rf_params_v1380_present) { - HANDLE_CODE(rf_params_v1380.unpack(bref)); + if (phy_layer_params_v1320_present) { + HANDLE_CODE(phy_layer_params_v1320.unpack(bref)); } - HANDLE_CODE(ce_params_v1380.unpack(bref)); - HANDLE_CODE(fdd_add_ue_eutra_cap_v1380.unpack(bref)); - HANDLE_CODE(tdd_add_ue_eutra_cap_v1380.unpack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (scptm_params_r13_present) { + HANDLE_CODE(scptm_params_r13.unpack(bref)); } return SRSASN_SUCCESS; } -void ue_eutra_cap_v1380_ies_s::to_json(json_writer& j) const +void ue_eutra_cap_add_xdd_mode_v1320_s::to_json(json_writer& j) const { j.start_obj(); - if (rf_params_v1380_present) { - j.write_fieldname("rf-Parameters-v1380"); - rf_params_v1380.to_json(j); - } - j.write_fieldname("ce-Parameters-v1380"); - ce_params_v1380.to_json(j); - j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1380"); - fdd_add_ue_eutra_cap_v1380.to_json(j); - j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1380"); - tdd_add_ue_eutra_cap_v1380.to_json(j); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(phy_layer_params_v1320_present, 1)); - HANDLE_CODE(bref.pack(scptm_params_r13_present, 1)); - - if (phy_layer_params_v1320_present) { - HANDLE_CODE(phy_layer_params_v1320.pack(bref)); - } - if (scptm_params_r13_present) { - HANDLE_CODE(scptm_params_r13.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1320_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(phy_layer_params_v1320_present, 1)); - HANDLE_CODE(bref.unpack(scptm_params_r13_present, 1)); - - if (phy_layer_params_v1320_present) { - HANDLE_CODE(phy_layer_params_v1320.unpack(bref)); - } - if (scptm_params_r13_present) { - HANDLE_CODE(scptm_params_r13.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_add_xdd_mode_v1320_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (phy_layer_params_v1320_present) { - j.write_fieldname("phyLayerParameters-v1320"); - phy_layer_params_v1320.to_json(j); + if (phy_layer_params_v1320_present) { + j.write_fieldname("phyLayerParameters-v1320"); + phy_layer_params_v1320.to_json(j); } if (scptm_params_r13_present) { j.write_fieldname("scptm-Parameters-r13"); @@ -11968,37 +11358,6 @@ void ue_eutra_cap_add_xdd_mode_v1320_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); - - if (ce_params_v1370_present) { - HANDLE_CODE(ce_params_v1370.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); - - if (ce_params_v1370_present) { - HANDLE_CODE(ce_params_v1370.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_add_xdd_mode_v1370_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ce_params_v1370_present) { - j.write_fieldname("ce-Parameters-v1370"); - ce_params_v1370.to_json(j); - } - j.end_obj(); -} - // CE-Parameters-r13 ::= SEQUENCE SRSASN_CODE ce_params_r13_s::pack(bit_ref& bref) const { @@ -12423,73 +11782,6 @@ void ue_eutra_cap_v1320_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1370_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); - HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1370_present, 1)); - HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1370_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ce_params_v1370_present) { - HANDLE_CODE(ce_params_v1370.pack(bref)); - } - if (fdd_add_ue_eutra_cap_v1370_present) { - HANDLE_CODE(fdd_add_ue_eutra_cap_v1370.pack(bref)); - } - if (tdd_add_ue_eutra_cap_v1370_present) { - HANDLE_CODE(tdd_add_ue_eutra_cap_v1370.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v1370_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); - HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_cap_v1370_present, 1)); - HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_cap_v1370_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ce_params_v1370_present) { - HANDLE_CODE(ce_params_v1370.unpack(bref)); - } - if (fdd_add_ue_eutra_cap_v1370_present) { - HANDLE_CODE(fdd_add_ue_eutra_cap_v1370.unpack(bref)); - } - if (tdd_add_ue_eutra_cap_v1370_present) { - HANDLE_CODE(tdd_add_ue_eutra_cap_v1370.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v1370_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (ce_params_v1370_present) { - j.write_fieldname("ce-Parameters-v1370"); - ce_params_v1370.to_json(j); - } - if (fdd_add_ue_eutra_cap_v1370_present) { - j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1370"); - fdd_add_ue_eutra_cap_v1370.to_json(j); - } - if (tdd_add_ue_eutra_cap_v1370_present) { - j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1370"); - tdd_add_ue_eutra_cap_v1370.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1310_s::pack(bit_ref& bref) const { @@ -12565,70 +11857,6 @@ void phy_layer_params_v1280_s::to_json(json_writer& j) const j.end_obj(); } -// RF-Parameters-v12b0 ::= SEQUENCE -SRSASN_CODE rf_params_v12b0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(max_layers_mimo_ind_r12_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rf_params_v12b0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(max_layers_mimo_ind_r12_present, 1)); - - return SRSASN_SUCCESS; -} -void rf_params_v12b0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (max_layers_mimo_ind_r12_present) { - j.write_str("maxLayersMIMO-Indication-r12", "supported"); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v12x0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v12x0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v12x0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1310_ies_s::pack(bit_ref& bref) const { @@ -12911,49 +12139,6 @@ void ue_eutra_cap_v1280_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v12b0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v12b0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v12b0_present) { - HANDLE_CODE(rf_params_v12b0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v12b0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v12b0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v12b0_present) { - HANDLE_CODE(rf_params_v12b0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v12b0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v12b0_present) { - j.write_fieldname("rf-Parameters-v12b0"); - rf_params_v12b0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // MeasParameters-v1250 ::= SEQUENCE SRSASN_CODE meas_params_v1250_s::pack(bit_ref& bref) const { @@ -13016,92 +12201,6 @@ void meas_params_v1250_s::to_json(json_writer& j) const j.end_obj(); } -// Other-Parameters-v11d0 ::= SEQUENCE -SRSASN_CODE other_params_v11d0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(in_dev_coex_ind_ul_ca_r11_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE other_params_v11d0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(in_dev_coex_ind_ul_ca_r11_present, 1)); - - return SRSASN_SUCCESS; -} -void other_params_v11d0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (in_dev_coex_ind_ul_ca_r11_present) { - j.write_str("inDeviceCoexInd-UL-CA-r11", "supported"); - } - j.end_obj(); -} - -// RF-Parameters-v10j0 ::= SEQUENCE -SRSASN_CODE rf_params_v10j0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(multi_ns_pmax_r10_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rf_params_v10j0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(multi_ns_pmax_r10_present, 1)); - - return SRSASN_SUCCESS; -} -void rf_params_v10j0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (multi_ns_pmax_r10_present) { - j.write_str("multiNS-Pmax-r10", "supported"); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v11x0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v11x0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v11x0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1270_ies_s::pack(bit_ref& bref) const { @@ -13253,99 +12352,6 @@ void ue_based_netw_perf_meas_params_v1250_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v10j0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v10j0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v10j0_present) { - HANDLE_CODE(rf_params_v10j0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v10j0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v10j0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v10j0_present) { - HANDLE_CODE(rf_params_v10j0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v10j0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v10j0_present) { - j.write_fieldname("rf-Parameters-v10j0"); - rf_params_v10j0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v11d0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v11d0_present, 1)); - HANDLE_CODE(bref.pack(other_params_v11d0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v11d0_present) { - HANDLE_CODE(rf_params_v11d0.pack(bref)); - } - if (other_params_v11d0_present) { - HANDLE_CODE(other_params_v11d0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v11d0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v11d0_present, 1)); - HANDLE_CODE(bref.unpack(other_params_v11d0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v11d0_present) { - HANDLE_CODE(rf_params_v11d0.unpack(bref)); - } - if (other_params_v11d0_present) { - HANDLE_CODE(other_params_v11d0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v11d0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v11d0_present) { - j.write_fieldname("rf-Parameters-v11d0"); - rf_params_v11d0.to_json(j); - } - if (other_params_v11d0_present) { - j.write_fieldname("otherParameters-v11d0"); - other_params_v11d0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1260_ies_s::pack(bit_ref& bref) const { @@ -13507,129 +12513,45 @@ void meas_params_v11a0_s::to_json(json_writer& j) const j.end_obj(); } -// RF-Parameters-v10f0 ::= SEQUENCE -SRSASN_CODE rf_params_v10f0_s::pack(bit_ref& bref) const +// UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1250_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(modified_mpr_behavior_r10_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1250_present, 1)); + HANDLE_CODE(bref.pack(rf_params_v1250_present, 1)); + HANDLE_CODE(bref.pack(rlc_params_r12_present, 1)); + HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1250_present, 1)); + HANDLE_CODE(bref.pack(ue_category_dl_r12_present, 1)); + HANDLE_CODE(bref.pack(ue_category_ul_r12_present, 1)); + HANDLE_CODE(bref.pack(wlan_iw_params_r12_present, 1)); + HANDLE_CODE(bref.pack(meas_params_v1250_present, 1)); + HANDLE_CODE(bref.pack(dc_params_r12_present, 1)); + HANDLE_CODE(bref.pack(mbms_params_v1250_present, 1)); + HANDLE_CODE(bref.pack(mac_params_r12_present, 1)); + HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1250_present, 1)); + HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1250_present, 1)); + HANDLE_CODE(bref.pack(sl_params_r12_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (modified_mpr_behavior_r10_present) { - HANDLE_CODE(modified_mpr_behavior_r10.pack(bref)); + if (phy_layer_params_v1250_present) { + HANDLE_CODE(phy_layer_params_v1250.pack(bref)); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rf_params_v10f0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(modified_mpr_behavior_r10_present, 1)); - - if (modified_mpr_behavior_r10_present) { - HANDLE_CODE(modified_mpr_behavior_r10.unpack(bref)); + if (rf_params_v1250_present) { + HANDLE_CODE(rf_params_v1250.pack(bref)); } - - return SRSASN_SUCCESS; -} -void rf_params_v10f0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (modified_mpr_behavior_r10_present) { - j.write_str("modifiedMPR-Behavior-r10", modified_mpr_behavior_r10.to_string()); + if (rlc_params_r12_present) { + HANDLE_CODE(rlc_params_r12.pack(bref)); } - j.end_obj(); -} - -// UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v10i0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v10i0_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v10i0_present) { - HANDLE_CODE(rf_params_v10i0.pack(bref)); + if (ue_based_netw_perf_meas_params_v1250_present) { + HANDLE_CODE(ue_based_netw_perf_meas_params_v1250.pack(bref)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (ue_category_dl_r12_present) { + HANDLE_CODE(pack_integer(bref, ue_category_dl_r12, (uint8_t)0u, (uint8_t)14u)); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (ue_category_ul_r12_present) { + HANDLE_CODE(pack_integer(bref, ue_category_ul_r12, (uint8_t)0u, (uint8_t)13u)); } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v10i0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v10i0_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v10i0_present) { - HANDLE_CODE(rf_params_v10i0.unpack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v10i0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v10i0_present) { - j.write_fieldname("rf-Parameters-v10i0"); - rf_params_v10i0.to_json(j); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1250_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(phy_layer_params_v1250_present, 1)); - HANDLE_CODE(bref.pack(rf_params_v1250_present, 1)); - HANDLE_CODE(bref.pack(rlc_params_r12_present, 1)); - HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_v1250_present, 1)); - HANDLE_CODE(bref.pack(ue_category_dl_r12_present, 1)); - HANDLE_CODE(bref.pack(ue_category_ul_r12_present, 1)); - HANDLE_CODE(bref.pack(wlan_iw_params_r12_present, 1)); - HANDLE_CODE(bref.pack(meas_params_v1250_present, 1)); - HANDLE_CODE(bref.pack(dc_params_r12_present, 1)); - HANDLE_CODE(bref.pack(mbms_params_v1250_present, 1)); - HANDLE_CODE(bref.pack(mac_params_r12_present, 1)); - HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1250_present, 1)); - HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1250_present, 1)); - HANDLE_CODE(bref.pack(sl_params_r12_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (phy_layer_params_v1250_present) { - HANDLE_CODE(phy_layer_params_v1250.pack(bref)); - } - if (rf_params_v1250_present) { - HANDLE_CODE(rf_params_v1250.pack(bref)); - } - if (rlc_params_r12_present) { - HANDLE_CODE(rlc_params_r12.pack(bref)); - } - if (ue_based_netw_perf_meas_params_v1250_present) { - HANDLE_CODE(ue_based_netw_perf_meas_params_v1250.pack(bref)); - } - if (ue_category_dl_r12_present) { - HANDLE_CODE(pack_integer(bref, ue_category_dl_r12, (uint8_t)0u, (uint8_t)14u)); - } - if (ue_category_ul_r12_present) { - HANDLE_CODE(pack_integer(bref, ue_category_ul_r12, (uint8_t)0u, (uint8_t)13u)); - } - if (wlan_iw_params_r12_present) { - HANDLE_CODE(wlan_iw_params_r12.pack(bref)); + if (wlan_iw_params_r12_present) { + HANDLE_CODE(wlan_iw_params_r12.pack(bref)); } if (meas_params_v1250_present) { HANDLE_CODE(meas_params_v1250.pack(bref)); @@ -13788,72 +12710,6 @@ void ue_eutra_cap_v1250_ies_s::to_json(json_writer& j) const j.end_obj(); } -// OTDOA-PositioningCapabilities-r10 ::= SEQUENCE -SRSASN_CODE otdoa_positioning_cap_r10_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(inter_freq_rstd_meas_r10_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE otdoa_positioning_cap_r10_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(inter_freq_rstd_meas_r10_present, 1)); - - return SRSASN_SUCCESS; -} -void otdoa_positioning_cap_r10_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("otdoa-UE-Assisted-r10", "supported"); - if (inter_freq_rstd_meas_r10_present) { - j.write_str("interFreqRSTD-Measurement-r10", "supported"); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v10f0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v10f0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v10f0_present) { - HANDLE_CODE(rf_params_v10f0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v10f0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v10f0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v10f0_present) { - HANDLE_CODE(rf_params_v10f0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v10f0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v10f0_present) { - j.write_fieldname("rf-Parameters-v10f0"); - rf_params_v10f0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v11a0_ies_s::pack(bit_ref& bref) const { @@ -13929,22 +12785,6 @@ void ue_eutra_cap_add_xdd_mode_v1180_s::to_json(json_writer& j) const j.end_obj(); } -// IRAT-ParametersUTRA-v9h0 ::= SEQUENCE -SRSASN_CODE irat_params_utra_v9h0_s::pack(bit_ref& bref) const -{ - return SRSASN_SUCCESS; -} -SRSASN_CODE irat_params_utra_v9h0_s::unpack(cbit_ref& bref) -{ - return SRSASN_SUCCESS; -} -void irat_params_utra_v9h0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("mfbi-UTRA-r9", "supported"); - j.end_obj(); -} - // MeasParameters-v1130 ::= SEQUENCE SRSASN_CODE meas_params_v1130_s::pack(bit_ref& bref) const { @@ -14081,49 +12921,6 @@ void phy_layer_params_v1170_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v10c0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(otdoa_positioning_cap_r10_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (otdoa_positioning_cap_r10_present) { - HANDLE_CODE(otdoa_positioning_cap_r10.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v10c0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(otdoa_positioning_cap_r10_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (otdoa_positioning_cap_r10_present) { - HANDLE_CODE(otdoa_positioning_cap_r10.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v10c0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (otdoa_positioning_cap_r10_present) { - j.write_fieldname("otdoa-PositioningCapabilities-r10"); - otdoa_positioning_cap_r10.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1180_ies_s::pack(bit_ref& bref) const { @@ -14306,60 +13103,6 @@ void ue_eutra_cap_v1170_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v9h0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(inter_rat_params_utra_v9h0_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (inter_rat_params_utra_v9h0_present) { - HANDLE_CODE(inter_rat_params_utra_v9h0.pack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v9h0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9h0_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (inter_rat_params_utra_v9h0_present) { - HANDLE_CODE(inter_rat_params_utra_v9h0.unpack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v9h0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (inter_rat_params_utra_v9h0_present) { - j.write_fieldname("interRAT-ParametersUTRA-v9h0"); - inter_rat_params_utra_v9h0.to_json(j); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1130_s::pack(bit_ref& bref) const { @@ -14449,29 +13192,25 @@ void irat_params_utra_tdd_v1020_s::to_json(json_writer& j) const j.end_obj(); } -// PhyLayerParameters-v9d0 ::= SEQUENCE -SRSASN_CODE phy_layer_params_v9d0_s::pack(bit_ref& bref) const +// OTDOA-PositioningCapabilities-r10 ::= SEQUENCE +SRSASN_CODE otdoa_positioning_cap_r10_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(tm5_fdd_r9_present, 1)); - HANDLE_CODE(bref.pack(tm5_tdd_r9_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_rstd_meas_r10_present, 1)); return SRSASN_SUCCESS; } -SRSASN_CODE phy_layer_params_v9d0_s::unpack(cbit_ref& bref) +SRSASN_CODE otdoa_positioning_cap_r10_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(tm5_fdd_r9_present, 1)); - HANDLE_CODE(bref.unpack(tm5_tdd_r9_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_rstd_meas_r10_present, 1)); return SRSASN_SUCCESS; } -void phy_layer_params_v9d0_s::to_json(json_writer& j) const +void otdoa_positioning_cap_r10_s::to_json(json_writer& j) const { j.start_obj(); - if (tm5_fdd_r9_present) { - j.write_str("tm5-FDD-r9", "supported"); - } - if (tm5_tdd_r9_present) { - j.write_str("tm5-TDD-r9", "supported"); + j.write_str("otdoa-UE-Assisted-r10", "supported"); + if (inter_freq_rstd_meas_r10_present) { + j.write_str("interFreqRSTD-Measurement-r10", "supported"); } j.end_obj(); } @@ -14563,190 +13302,6 @@ void ue_eutra_cap_v1130_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v9e0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rf_params_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rf_params_v9e0_present) { - HANDLE_CODE(rf_params_v9e0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v9e0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rf_params_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rf_params_v9e0_present) { - HANDLE_CODE(rf_params_v9e0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v9e0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rf_params_v9e0_present) { - j.write_fieldname("rf-Parameters-v9e0"); - rf_params_v9e0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE -SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); - - return SRSASN_SUCCESS; -} -void irat_params_cdma2000_minus1_xrtt_v920_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("e-CSFB-1XRTT-r9", "supported"); - if (e_csfb_conc_ps_mob1_xrtt_r9_present) { - j.write_str("e-CSFB-ConcPS-Mob1XRTT-r9", "supported"); - } - j.end_obj(); -} - -// IRAT-ParametersUTRA-v920 ::= SEQUENCE -SRSASN_CODE irat_params_utra_v920_s::pack(bit_ref& bref) const -{ - return SRSASN_SUCCESS; -} -SRSASN_CODE irat_params_utra_v920_s::unpack(cbit_ref& bref) -{ - return SRSASN_SUCCESS; -} -void irat_params_utra_v920_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("e-RedirectionUTRA-r9", "supported"); - j.end_obj(); -} - -// IRAT-ParametersUTRA-v9c0 ::= SEQUENCE -SRSASN_CODE irat_params_utra_v9c0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_fdd_r9_present, 1)); - HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); - HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); - HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); - HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); - HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE irat_params_utra_v9c0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_fdd_r9_present, 1)); - HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); - HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); - HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); - HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); - HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); - - return SRSASN_SUCCESS; -} -void irat_params_utra_v9c0_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (voice_over_ps_hs_utra_fdd_r9_present) { - j.write_str("voiceOverPS-HS-UTRA-FDD-r9", "supported"); - } - if (voice_over_ps_hs_utra_tdd128_r9_present) { - j.write_str("voiceOverPS-HS-UTRA-TDD128-r9", "supported"); - } - if (srvcc_from_utra_fdd_to_utra_fdd_r9_present) { - j.write_str("srvcc-FromUTRA-FDD-ToUTRA-FDD-r9", "supported"); - } - if (srvcc_from_utra_fdd_to_geran_r9_present) { - j.write_str("srvcc-FromUTRA-FDD-ToGERAN-r9", "supported"); - } - if (srvcc_from_utra_tdd128_to_utra_tdd128_r9_present) { - j.write_str("srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9", "supported"); - } - if (srvcc_from_utra_tdd128_to_geran_r9_present) { - j.write_str("srvcc-FromUTRA-TDD128-ToGERAN-r9", "supported"); - } - j.end_obj(); -} - -// NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE -SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(intra_freq_si_acquisition_for_ho_r9_present, 1)); - HANDLE_CODE(bref.pack(inter_freq_si_acquisition_for_ho_r9_present, 1)); - HANDLE_CODE(bref.pack(utran_si_acquisition_for_ho_r9_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(intra_freq_si_acquisition_for_ho_r9_present, 1)); - HANDLE_CODE(bref.unpack(inter_freq_si_acquisition_for_ho_r9_present, 1)); - HANDLE_CODE(bref.unpack(utran_si_acquisition_for_ho_r9_present, 1)); - - return SRSASN_SUCCESS; -} -void neigh_cell_si_acquisition_params_r9_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (intra_freq_si_acquisition_for_ho_r9_present) { - j.write_str("intraFreqSI-AcquisitionForHO-r9", "supported"); - } - if (inter_freq_si_acquisition_for_ho_r9_present) { - j.write_str("interFreqSI-AcquisitionForHO-r9", "supported"); - } - if (utran_si_acquisition_for_ho_r9_present) { - j.write_str("utran-SI-AcquisitionForHO-r9", "supported"); - } - j.end_obj(); -} - -// PhyLayerParameters ::= SEQUENCE -SRSASN_CODE phy_layer_params_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ue_tx_ant_sel_supported, 1)); - HANDLE_CODE(bref.pack(ue_specific_ref_sigs_supported, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE phy_layer_params_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(ue_tx_ant_sel_supported, 1)); - HANDLE_CODE(bref.unpack(ue_specific_ref_sigs_supported, 1)); - - return SRSASN_SUCCESS; -} -void phy_layer_params_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_bool("ue-TxAntennaSelectionSupported", ue_tx_ant_sel_supported); - j.write_bool("ue-SpecificRefSigsSupported", ue_specific_ref_sigs_supported); - j.end_obj(); -} - // UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v1090_ies_s::pack(bit_ref& bref) const { @@ -14790,49 +13345,6 @@ void ue_eutra_cap_v1090_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v9d0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(phy_layer_params_v9d0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (phy_layer_params_v9d0_present) { - HANDLE_CODE(phy_layer_params_v9d0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v9d0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(phy_layer_params_v9d0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (phy_layer_params_v9d0_present) { - HANDLE_CODE(phy_layer_params_v9d0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v9d0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (phy_layer_params_v9d0_present) { - j.write_fieldname("phyLayerParameters-v9d0"); - phy_layer_params_v9d0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1060_s::pack(bit_ref& bref) const { @@ -15030,167 +13542,21 @@ void ue_eutra_cap_v1060_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v9c0_ies_s::pack(bit_ref& bref) const +// UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1020_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(inter_rat_params_utra_v9c0_present, 1)); + HANDLE_CODE(bref.pack(ue_category_v1020_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1020_present, 1)); + HANDLE_CODE(bref.pack(rf_params_v1020_present, 1)); + HANDLE_CODE(bref.pack(meas_params_v1020_present, 1)); + HANDLE_CODE(bref.pack(feature_group_ind_rel10_r10_present, 1)); + HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_v1020_present, 1)); + HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_r10_present, 1)); + HANDLE_CODE(bref.pack(inter_rat_params_utra_tdd_v1020_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (inter_rat_params_utra_v9c0_present) { - HANDLE_CODE(inter_rat_params_utra_v9c0.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v9c0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9c0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (inter_rat_params_utra_v9c0_present) { - HANDLE_CODE(inter_rat_params_utra_v9c0.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v9c0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (inter_rat_params_utra_v9c0_present) { - j.write_fieldname("interRAT-ParametersUTRA-v9c0"); - inter_rat_params_utra_v9c0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(phy_layer_params_r9_present, 1)); - HANDLE_CODE(bref.pack(feature_group_inds_r9_present, 1)); - HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); - HANDLE_CODE(bref.pack(inter_rat_params_geran_r9_present, 1)); - HANDLE_CODE(bref.pack(inter_rat_params_utra_r9_present, 1)); - HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_r9_present, 1)); - HANDLE_CODE(bref.pack(neigh_cell_si_acquisition_params_r9_present, 1)); - - if (phy_layer_params_r9_present) { - HANDLE_CODE(phy_layer_params_r9.pack(bref)); - } - if (feature_group_inds_r9_present) { - HANDLE_CODE(feature_group_inds_r9.pack(bref)); - } - if (feature_group_ind_rel9_add_r9_present) { - HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); - } - if (inter_rat_params_geran_r9_present) { - HANDLE_CODE(inter_rat_params_geran_r9.pack(bref)); - } - if (inter_rat_params_utra_r9_present) { - HANDLE_CODE(inter_rat_params_utra_r9.pack(bref)); - } - if (inter_rat_params_cdma2000_r9_present) { - HANDLE_CODE(inter_rat_params_cdma2000_r9.pack(bref)); - } - if (neigh_cell_si_acquisition_params_r9_present) { - HANDLE_CODE(neigh_cell_si_acquisition_params_r9.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(phy_layer_params_r9_present, 1)); - HANDLE_CODE(bref.unpack(feature_group_inds_r9_present, 1)); - HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); - HANDLE_CODE(bref.unpack(inter_rat_params_geran_r9_present, 1)); - HANDLE_CODE(bref.unpack(inter_rat_params_utra_r9_present, 1)); - HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_r9_present, 1)); - HANDLE_CODE(bref.unpack(neigh_cell_si_acquisition_params_r9_present, 1)); - - if (phy_layer_params_r9_present) { - HANDLE_CODE(phy_layer_params_r9.unpack(bref)); - } - if (feature_group_inds_r9_present) { - HANDLE_CODE(feature_group_inds_r9.unpack(bref)); - } - if (feature_group_ind_rel9_add_r9_present) { - HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); - } - if (inter_rat_params_geran_r9_present) { - HANDLE_CODE(inter_rat_params_geran_r9.unpack(bref)); - } - if (inter_rat_params_utra_r9_present) { - HANDLE_CODE(inter_rat_params_utra_r9.unpack(bref)); - } - if (inter_rat_params_cdma2000_r9_present) { - HANDLE_CODE(inter_rat_params_cdma2000_r9.unpack(bref)); - } - if (neigh_cell_si_acquisition_params_r9_present) { - HANDLE_CODE(neigh_cell_si_acquisition_params_r9.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_add_xdd_mode_r9_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (phy_layer_params_r9_present) { - j.write_fieldname("phyLayerParameters-r9"); - phy_layer_params_r9.to_json(j); - } - if (feature_group_inds_r9_present) { - j.write_str("featureGroupIndicators-r9", feature_group_inds_r9.to_string()); - } - if (feature_group_ind_rel9_add_r9_present) { - j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); - } - if (inter_rat_params_geran_r9_present) { - j.write_fieldname("interRAT-ParametersGERAN-r9"); - inter_rat_params_geran_r9.to_json(j); - } - if (inter_rat_params_utra_r9_present) { - j.write_fieldname("interRAT-ParametersUTRA-r9"); - inter_rat_params_utra_r9.to_json(j); - } - if (inter_rat_params_cdma2000_r9_present) { - j.write_fieldname("interRAT-ParametersCDMA2000-r9"); - inter_rat_params_cdma2000_r9.to_json(j); - } - if (neigh_cell_si_acquisition_params_r9_present) { - j.write_fieldname("neighCellSI-AcquisitionParameters-r9"); - neigh_cell_si_acquisition_params_r9.to_json(j); - } - j.end_obj(); -} - -// UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v1020_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(ue_category_v1020_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_v1020_present, 1)); - HANDLE_CODE(bref.pack(rf_params_v1020_present, 1)); - HANDLE_CODE(bref.pack(meas_params_v1020_present, 1)); - HANDLE_CODE(bref.pack(feature_group_ind_rel10_r10_present, 1)); - HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_v1020_present, 1)); - HANDLE_CODE(bref.pack(ue_based_netw_perf_meas_params_r10_present, 1)); - HANDLE_CODE(bref.pack(inter_rat_params_utra_tdd_v1020_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (ue_category_v1020_present) { - HANDLE_CODE(pack_integer(bref, ue_category_v1020, (uint8_t)6u, (uint8_t)8u)); + if (ue_category_v1020_present) { + HANDLE_CODE(pack_integer(bref, ue_category_v1020, (uint8_t)6u, (uint8_t)8u)); } if (phy_layer_params_v1020_present) { HANDLE_CODE(phy_layer_params_v1020.pack(bref)); @@ -15301,72 +13667,6 @@ void ue_eutra_cap_v1020_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE -SRSASN_CODE ue_eutra_cap_v9a0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); - HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_r9_present, 1)); - HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_r9_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (feature_group_ind_rel9_add_r9_present) { - HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); - } - if (fdd_add_ue_eutra_cap_r9_present) { - HANDLE_CODE(fdd_add_ue_eutra_cap_r9.pack(bref)); - } - if (tdd_add_ue_eutra_cap_r9_present) { - HANDLE_CODE(tdd_add_ue_eutra_cap_r9.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_eutra_cap_v9a0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); - HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_cap_r9_present, 1)); - HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_cap_r9_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (feature_group_ind_rel9_add_r9_present) { - HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); - } - if (fdd_add_ue_eutra_cap_r9_present) { - HANDLE_CODE(fdd_add_ue_eutra_cap_r9.unpack(bref)); - } - if (tdd_add_ue_eutra_cap_r9_present) { - HANDLE_CODE(tdd_add_ue_eutra_cap_r9.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_eutra_cap_v9a0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (feature_group_ind_rel9_add_r9_present) { - j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); - } - if (fdd_add_ue_eutra_cap_r9_present) { - j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-r9"); - fdd_add_ue_eutra_cap_r9.to_json(j); - } - if (tdd_add_ue_eutra_cap_r9_present) { - j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-r9"); - tdd_add_ue_eutra_cap_r9.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - // CSG-ProximityIndicationParameters-r9 ::= SEQUENCE SRSASN_CODE csg_proximity_ind_params_r9_s::pack(bit_ref& bref) const { @@ -15399,6 +13699,29 @@ void csg_proximity_ind_params_r9_s::to_json(json_writer& j) const j.end_obj(); } +// IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE +SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE irat_params_cdma2000_minus1_xrtt_v920_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(e_csfb_conc_ps_mob1_xrtt_r9_present, 1)); + + return SRSASN_SUCCESS; +} +void irat_params_cdma2000_minus1_xrtt_v920_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("e-CSFB-1XRTT-r9", "supported"); + if (e_csfb_conc_ps_mob1_xrtt_r9_present) { + j.write_str("e-CSFB-ConcPS-Mob1XRTT-r9", "supported"); + } + j.end_obj(); +} + // IRAT-ParametersGERAN-v920 ::= SEQUENCE SRSASN_CODE irat_params_geran_v920_s::pack(bit_ref& bref) const { @@ -15426,25 +13749,73 @@ void irat_params_geran_v920_s::to_json(json_writer& j) const j.end_obj(); } -// PhyLayerParameters-v920 ::= SEQUENCE -SRSASN_CODE phy_layer_params_v920_s::pack(bit_ref& bref) const +// IRAT-ParametersUTRA-v920 ::= SEQUENCE +SRSASN_CODE irat_params_utra_v920_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(enhanced_dual_layer_fdd_r9_present, 1)); - HANDLE_CODE(bref.pack(enhanced_dual_layer_tdd_r9_present, 1)); - return SRSASN_SUCCESS; } -SRSASN_CODE phy_layer_params_v920_s::unpack(cbit_ref& bref) +SRSASN_CODE irat_params_utra_v920_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(enhanced_dual_layer_fdd_r9_present, 1)); - HANDLE_CODE(bref.unpack(enhanced_dual_layer_tdd_r9_present, 1)); - return SRSASN_SUCCESS; } -void phy_layer_params_v920_s::to_json(json_writer& j) const +void irat_params_utra_v920_s::to_json(json_writer& j) const { j.start_obj(); - if (enhanced_dual_layer_fdd_r9_present) { + j.write_str("e-RedirectionUTRA-r9", "supported"); + j.end_obj(); +} + +// NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE +SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(intra_freq_si_acquisition_for_ho_r9_present, 1)); + HANDLE_CODE(bref.pack(inter_freq_si_acquisition_for_ho_r9_present, 1)); + HANDLE_CODE(bref.pack(utran_si_acquisition_for_ho_r9_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE neigh_cell_si_acquisition_params_r9_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(intra_freq_si_acquisition_for_ho_r9_present, 1)); + HANDLE_CODE(bref.unpack(inter_freq_si_acquisition_for_ho_r9_present, 1)); + HANDLE_CODE(bref.unpack(utran_si_acquisition_for_ho_r9_present, 1)); + + return SRSASN_SUCCESS; +} +void neigh_cell_si_acquisition_params_r9_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (intra_freq_si_acquisition_for_ho_r9_present) { + j.write_str("intraFreqSI-AcquisitionForHO-r9", "supported"); + } + if (inter_freq_si_acquisition_for_ho_r9_present) { + j.write_str("interFreqSI-AcquisitionForHO-r9", "supported"); + } + if (utran_si_acquisition_for_ho_r9_present) { + j.write_str("utran-SI-AcquisitionForHO-r9", "supported"); + } + j.end_obj(); +} + +// PhyLayerParameters-v920 ::= SEQUENCE +SRSASN_CODE phy_layer_params_v920_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(enhanced_dual_layer_fdd_r9_present, 1)); + HANDLE_CODE(bref.pack(enhanced_dual_layer_tdd_r9_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE phy_layer_params_v920_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(enhanced_dual_layer_fdd_r9_present, 1)); + HANDLE_CODE(bref.unpack(enhanced_dual_layer_tdd_r9_present, 1)); + + return SRSASN_SUCCESS; +} +void phy_layer_params_v920_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (enhanced_dual_layer_fdd_r9_present) { j.write_str("enhancedDualLayerFDD-r9", "supported"); } if (enhanced_dual_layer_tdd_r9_present) { @@ -15529,6 +13900,29 @@ uint8_t access_stratum_release_opts::to_number() const return map_enum_number(options, 8, value, "access_stratum_release_e"); } +// PhyLayerParameters ::= SEQUENCE +SRSASN_CODE phy_layer_params_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(ue_tx_ant_sel_supported, 1)); + HANDLE_CODE(bref.pack(ue_specific_ref_sigs_supported, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE phy_layer_params_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(ue_tx_ant_sel_supported, 1)); + HANDLE_CODE(bref.unpack(ue_specific_ref_sigs_supported, 1)); + + return SRSASN_SUCCESS; +} +void phy_layer_params_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_bool("ue-TxAntennaSelectionSupported", ue_tx_ant_sel_supported); + j.write_bool("ue-SpecificRefSigsSupported", ue_specific_ref_sigs_supported); + j.end_obj(); +} + // UE-EUTRA-Capability-v920-IEs ::= SEQUENCE SRSASN_CODE ue_eutra_cap_v920_ies_s::pack(bit_ref& bref) const { @@ -15760,156 +14154,1584 @@ void ue_eutra_cap_s::to_json(json_writer& j) const j.end_obj(); } -// UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE -SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::pack(bit_ref& bref) const +// PhyLayerParameters-v14a0 ::= SEQUENCE +SRSASN_CODE phy_layer_params_v14a0_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(ue_radio_access_cap_info.pack(bref)); + HANDLE_CODE(bref.pack(ssp10_tdd_only_r14_present, 1)); return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE phy_layer_params_v14a0_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - HANDLE_CODE(ue_radio_access_cap_info.unpack(bref)); + HANDLE_CODE(bref.unpack(ssp10_tdd_only_r14_present, 1)); return SRSASN_SUCCESS; } -void ue_radio_access_cap_info_r8_ies_s::to_json(json_writer& j) const +void phy_layer_params_v14a0_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("ue-RadioAccessCapabilityInfo", ue_radio_access_cap_info.to_string()); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); + if (ssp10_tdd_only_r14_present) { + j.write_str("ssp10-TDD-Only-r14", "supported"); } j.end_obj(); } -// UERadioAccessCapabilityInformation ::= SEQUENCE -SRSASN_CODE ue_radio_access_cap_info_s::pack(bit_ref& bref) const +// UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v14b0_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(crit_exts.pack(bref)); + HANDLE_CODE(bref.pack(rf_params_v14b0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v14b0_present) { + HANDLE_CODE(rf_params_v14b0.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_access_cap_info_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_eutra_cap_v14b0_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(crit_exts.unpack(bref)); + HANDLE_CODE(bref.unpack(rf_params_v14b0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v14b0_present) { + HANDLE_CODE(rf_params_v14b0.unpack(bref)); + } return SRSASN_SUCCESS; } -void ue_radio_access_cap_info_s::to_json(json_writer& j) const +void ue_eutra_cap_v14b0_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); + if (rf_params_v14b0_present) { + j.write_fieldname("rf-Parameters-v14b0"); + rf_params_v14b0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } j.end_obj(); } -void ue_radio_access_cap_info_s::crit_exts_c_::destroy_() +// MBMS-Parameters-v1470 ::= SEQUENCE +SRSASN_CODE mbms_params_v1470_s::pack(bit_ref& bref) const { - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; + HANDLE_CODE(bref.pack(mbms_scaling_factor1dot25_r14_present, 1)); + HANDLE_CODE(bref.pack(mbms_scaling_factor7dot5_r14_present, 1)); + + HANDLE_CODE(mbms_max_bw_r14.pack(bref)); + if (mbms_scaling_factor1dot25_r14_present) { + HANDLE_CODE(mbms_scaling_factor1dot25_r14.pack(bref)); } -} -void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + if (mbms_scaling_factor7dot5_r14_present) { + HANDLE_CODE(mbms_scaling_factor7dot5_r14.pack(bref)); } + + return SRSASN_SUCCESS; } -ue_radio_access_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_access_cap_info_s::crit_exts_c_& other) +SRSASN_CODE mbms_params_v1470_s::unpack(cbit_ref& bref) { - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + HANDLE_CODE(bref.unpack(mbms_scaling_factor1dot25_r14_present, 1)); + HANDLE_CODE(bref.unpack(mbms_scaling_factor7dot5_r14_present, 1)); + + HANDLE_CODE(mbms_max_bw_r14.unpack(bref)); + if (mbms_scaling_factor1dot25_r14_present) { + HANDLE_CODE(mbms_scaling_factor1dot25_r14.unpack(bref)); + } + if (mbms_scaling_factor7dot5_r14_present) { + HANDLE_CODE(mbms_scaling_factor7dot5_r14.unpack(bref)); } + + return SRSASN_SUCCESS; } -ue_radio_access_cap_info_s::crit_exts_c_& -ue_radio_access_cap_info_s::crit_exts_c_::operator=(const ue_radio_access_cap_info_s::crit_exts_c_& other) +void mbms_params_v1470_s::to_json(json_writer& j) const { - if (this == &other) { - return *this; + j.start_obj(); + j.write_fieldname("mbms-MaxBW-r14"); + mbms_max_bw_r14.to_json(j); + if (mbms_scaling_factor1dot25_r14_present) { + j.write_str("mbms-ScalingFactor1dot25-r14", mbms_scaling_factor1dot25_r14.to_string()); } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + if (mbms_scaling_factor7dot5_r14_present) { + j.write_str("mbms-ScalingFactor7dot5-r14", mbms_scaling_factor7dot5_r14.to_string()); } + j.end_obj(); +} - return *this; +void mbms_params_v1470_s::mbms_max_bw_r14_c_::set(types::options e) +{ + type_ = e; } -void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const +void mbms_params_v1470_s::mbms_max_bw_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); + case types::implicit_value: break; - case types::crit_exts_future: + case types::explicit_value: + j.write_int("explicitValue", c); break; default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); } j.end_obj(); } -SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const +SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); + case types::implicit_value: break; - case types::crit_exts_future: + case types::explicit_value: + HANDLE_CODE(pack_integer(bref, c, (uint8_t)2u, (uint8_t)20u)); break; default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE mbms_params_v1470_s::mbms_max_bw_r14_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + case types::implicit_value: + break; + case types::explicit_value: + HANDLE_CODE(unpack_integer(c, bref, (uint8_t)2u, (uint8_t)20u)); + break; + default: + log_invalid_choice_id(type_, "mbms_params_v1470_s::mbms_max_bw_r14_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +std::string mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_string() const +{ + static const char* options[] = {"n3", "n6", "n9", "n12"}; + return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); +} +uint8_t mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_opts::to_number() const +{ + static const uint8_t options[] = {3, 6, 9, 12}; + return map_enum_number(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor1dot25_r14_e_"); +} + +std::string mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_string() const +{ + static const char* options[] = {"n1", "n2", "n3", "n4"}; + return convert_enum_idx(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_e_"); +} +uint8_t mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_opts::to_number() const +{ + static const uint8_t options[] = {1, 2, 3, 4}; + return map_enum_number(options, 4, value, "mbms_params_v1470_s::mbms_scaling_factor7dot5_r14_e_"); +} + +// UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v14a0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(phy_layer_params_v14a0.pack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v14a0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(phy_layer_params_v14a0.unpack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v14a0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("phyLayerParameters-v14a0"); + phy_layer_params_v14a0.to_json(j); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1470_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(mbms_params_v1470_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1470_present, 1)); + HANDLE_CODE(bref.pack(rf_params_v1470_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (mbms_params_v1470_present) { + HANDLE_CODE(mbms_params_v1470.pack(bref)); + } + if (phy_layer_params_v1470_present) { + HANDLE_CODE(phy_layer_params_v1470.pack(bref)); + } + if (rf_params_v1470_present) { + HANDLE_CODE(rf_params_v1470.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v1470_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(mbms_params_v1470_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_v1470_present, 1)); + HANDLE_CODE(bref.unpack(rf_params_v1470_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (mbms_params_v1470_present) { + HANDLE_CODE(mbms_params_v1470.unpack(bref)); + } + if (phy_layer_params_v1470_present) { + HANDLE_CODE(phy_layer_params_v1470.unpack(bref)); + } + if (rf_params_v1470_present) { + HANDLE_CODE(rf_params_v1470.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v1470_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (mbms_params_v1470_present) { + j.write_fieldname("mbms-Parameters-v1470"); + mbms_params_v1470.to_json(j); + } + if (phy_layer_params_v1470_present) { + j.write_fieldname("phyLayerParameters-v1470"); + phy_layer_params_v1470.to_json(j); + } + if (rf_params_v1470_present) { + j.write_fieldname("rf-Parameters-v1470"); + rf_params_v1470.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// CE-Parameters-v1380 ::= SEQUENCE +SRSASN_CODE ce_params_v1380_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(tm6_ce_mode_a_r13_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ce_params_v1380_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(tm6_ce_mode_a_r13_present, 1)); + + return SRSASN_SUCCESS; +} +void ce_params_v1380_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (tm6_ce_mode_a_r13_present) { + j.write_str("tm6-CE-ModeA-r13", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v13e0a_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v13e0a_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v13e0a_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// CE-Parameters-v1370 ::= SEQUENCE +SRSASN_CODE ce_params_v1370_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(tm9_ce_mode_a_r13_present, 1)); + HANDLE_CODE(bref.pack(tm9_ce_mode_b_r13_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ce_params_v1370_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(tm9_ce_mode_a_r13_present, 1)); + HANDLE_CODE(bref.unpack(tm9_ce_mode_b_r13_present, 1)); + + return SRSASN_SUCCESS; +} +void ce_params_v1370_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (tm9_ce_mode_a_r13_present) { + j.write_str("tm9-CE-ModeA-r13", "supported"); + } + if (tm9_ce_mode_b_r13_present) { + j.write_str("tm9-CE-ModeB-r13", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1390_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v1390_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v1390_present) { + HANDLE_CODE(rf_params_v1390.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v1390_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v1390_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v1390_present) { + HANDLE_CODE(rf_params_v1390.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v1390_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v1390_present) { + j.write_fieldname("rf-Parameters-v1390"); + rf_params_v1390.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(ce_params_v1380.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1380_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(ce_params_v1380.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_add_xdd_mode_v1380_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("ce-Parameters-v1380"); + ce_params_v1380.to_json(j); + j.end_obj(); +} + +// UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1380_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v1380_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v1380_present) { + HANDLE_CODE(rf_params_v1380.pack(bref)); + } + HANDLE_CODE(ce_params_v1380.pack(bref)); + HANDLE_CODE(fdd_add_ue_eutra_cap_v1380.pack(bref)); + HANDLE_CODE(tdd_add_ue_eutra_cap_v1380.pack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v1380_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v1380_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v1380_present) { + HANDLE_CODE(rf_params_v1380.unpack(bref)); + } + HANDLE_CODE(ce_params_v1380.unpack(bref)); + HANDLE_CODE(fdd_add_ue_eutra_cap_v1380.unpack(bref)); + HANDLE_CODE(tdd_add_ue_eutra_cap_v1380.unpack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v1380_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v1380_present) { + j.write_fieldname("rf-Parameters-v1380"); + rf_params_v1380.to_json(j); + } + j.write_fieldname("ce-Parameters-v1380"); + ce_params_v1380.to_json(j); + j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1380"); + fdd_add_ue_eutra_cap_v1380.to_json(j); + j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1380"); + tdd_add_ue_eutra_cap_v1380.to_json(j); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); + + if (ce_params_v1370_present) { + HANDLE_CODE(ce_params_v1370.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_add_xdd_mode_v1370_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); + + if (ce_params_v1370_present) { + HANDLE_CODE(ce_params_v1370.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_add_xdd_mode_v1370_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (ce_params_v1370_present) { + j.write_fieldname("ce-Parameters-v1370"); + ce_params_v1370.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v1370_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(ce_params_v1370_present, 1)); + HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_v1370_present, 1)); + HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_v1370_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (ce_params_v1370_present) { + HANDLE_CODE(ce_params_v1370.pack(bref)); + } + if (fdd_add_ue_eutra_cap_v1370_present) { + HANDLE_CODE(fdd_add_ue_eutra_cap_v1370.pack(bref)); + } + if (tdd_add_ue_eutra_cap_v1370_present) { + HANDLE_CODE(tdd_add_ue_eutra_cap_v1370.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v1370_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(ce_params_v1370_present, 1)); + HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_cap_v1370_present, 1)); + HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_cap_v1370_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (ce_params_v1370_present) { + HANDLE_CODE(ce_params_v1370.unpack(bref)); + } + if (fdd_add_ue_eutra_cap_v1370_present) { + HANDLE_CODE(fdd_add_ue_eutra_cap_v1370.unpack(bref)); + } + if (tdd_add_ue_eutra_cap_v1370_present) { + HANDLE_CODE(tdd_add_ue_eutra_cap_v1370.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v1370_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (ce_params_v1370_present) { + j.write_fieldname("ce-Parameters-v1370"); + ce_params_v1370.to_json(j); + } + if (fdd_add_ue_eutra_cap_v1370_present) { + j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-v1370"); + fdd_add_ue_eutra_cap_v1370.to_json(j); + } + if (tdd_add_ue_eutra_cap_v1370_present) { + j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-v1370"); + tdd_add_ue_eutra_cap_v1370.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RF-Parameters-v12b0 ::= SEQUENCE +SRSASN_CODE rf_params_v12b0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(max_layers_mimo_ind_r12_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rf_params_v12b0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(max_layers_mimo_ind_r12_present, 1)); + + return SRSASN_SUCCESS; +} +void rf_params_v12b0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (max_layers_mimo_ind_r12_present) { + j.write_str("maxLayersMIMO-Indication-r12", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v12x0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v12x0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v12x0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v12b0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v12b0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v12b0_present) { + HANDLE_CODE(rf_params_v12b0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v12b0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v12b0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v12b0_present) { + HANDLE_CODE(rf_params_v12b0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v12b0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v12b0_present) { + j.write_fieldname("rf-Parameters-v12b0"); + rf_params_v12b0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// Other-Parameters-v11d0 ::= SEQUENCE +SRSASN_CODE other_params_v11d0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(in_dev_coex_ind_ul_ca_r11_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE other_params_v11d0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(in_dev_coex_ind_ul_ca_r11_present, 1)); + + return SRSASN_SUCCESS; +} +void other_params_v11d0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (in_dev_coex_ind_ul_ca_r11_present) { + j.write_str("inDeviceCoexInd-UL-CA-r11", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v11x0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v11x0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v11x0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v11d0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v11d0_present, 1)); + HANDLE_CODE(bref.pack(other_params_v11d0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v11d0_present) { + HANDLE_CODE(rf_params_v11d0.pack(bref)); + } + if (other_params_v11d0_present) { + HANDLE_CODE(other_params_v11d0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v11d0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v11d0_present, 1)); + HANDLE_CODE(bref.unpack(other_params_v11d0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v11d0_present) { + HANDLE_CODE(rf_params_v11d0.unpack(bref)); + } + if (other_params_v11d0_present) { + HANDLE_CODE(other_params_v11d0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v11d0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v11d0_present) { + j.write_fieldname("rf-Parameters-v11d0"); + rf_params_v11d0.to_json(j); + } + if (other_params_v11d0_present) { + j.write_fieldname("otherParameters-v11d0"); + other_params_v11d0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RF-Parameters-v10f0 ::= SEQUENCE +SRSASN_CODE rf_params_v10f0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(modified_mpr_behavior_r10_present, 1)); + + if (modified_mpr_behavior_r10_present) { + HANDLE_CODE(modified_mpr_behavior_r10.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rf_params_v10f0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(modified_mpr_behavior_r10_present, 1)); + + if (modified_mpr_behavior_r10_present) { + HANDLE_CODE(modified_mpr_behavior_r10.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rf_params_v10f0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (modified_mpr_behavior_r10_present) { + j.write_str("modifiedMPR-Behavior-r10", modified_mpr_behavior_r10.to_string()); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v10i0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v10i0_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v10i0_present) { + HANDLE_CODE(rf_params_v10i0.pack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v10i0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v10i0_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v10i0_present) { + HANDLE_CODE(rf_params_v10i0.unpack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v10i0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v10i0_present) { + j.write_fieldname("rf-Parameters-v10i0"); + rf_params_v10i0.to_json(j); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v10f0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v10f0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v10f0_present) { + HANDLE_CODE(rf_params_v10f0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v10f0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v10f0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v10f0_present) { + HANDLE_CODE(rf_params_v10f0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v10f0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v10f0_present) { + j.write_fieldname("rf-Parameters-v10f0"); + rf_params_v10f0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v10c0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(otdoa_positioning_cap_r10_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (otdoa_positioning_cap_r10_present) { + HANDLE_CODE(otdoa_positioning_cap_r10.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v10c0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(otdoa_positioning_cap_r10_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (otdoa_positioning_cap_r10_present) { + HANDLE_CODE(otdoa_positioning_cap_r10.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v10c0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (otdoa_positioning_cap_r10_present) { + j.write_fieldname("otdoa-PositioningCapabilities-r10"); + otdoa_positioning_cap_r10.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// RF-Parameters-v10j0 ::= SEQUENCE +SRSASN_CODE rf_params_v10j0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(multi_ns_pmax_r10_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rf_params_v10j0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(multi_ns_pmax_r10_present, 1)); + + return SRSASN_SUCCESS; +} +void rf_params_v10j0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (multi_ns_pmax_r10_present) { + j.write_str("multiNS-Pmax-r10", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v10j0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v10j0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v10j0_present) { + HANDLE_CODE(rf_params_v10j0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v10j0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v10j0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v10j0_present) { + HANDLE_CODE(rf_params_v10j0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v10j0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v10j0_present) { + j.write_fieldname("rf-Parameters-v10j0"); + rf_params_v10j0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +// IRAT-ParametersUTRA-v9h0 ::= SEQUENCE +SRSASN_CODE irat_params_utra_v9h0_s::pack(bit_ref& bref) const +{ + return SRSASN_SUCCESS; +} +SRSASN_CODE irat_params_utra_v9h0_s::unpack(cbit_ref& bref) +{ + return SRSASN_SUCCESS; +} +void irat_params_utra_v9h0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("mfbi-UTRA-r9", "supported"); + j.end_obj(); +} + +// UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v9h0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(inter_rat_params_utra_v9h0_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (inter_rat_params_utra_v9h0_present) { + HANDLE_CODE(inter_rat_params_utra_v9h0.pack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v9h0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9h0_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (inter_rat_params_utra_v9h0_present) { + HANDLE_CODE(inter_rat_params_utra_v9h0.unpack(bref)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v9h0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (inter_rat_params_utra_v9h0_present) { + j.write_fieldname("interRAT-ParametersUTRA-v9h0"); + inter_rat_params_utra_v9h0.to_json(j); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// PhyLayerParameters-v9d0 ::= SEQUENCE +SRSASN_CODE phy_layer_params_v9d0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(tm5_fdd_r9_present, 1)); + HANDLE_CODE(bref.pack(tm5_tdd_r9_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE phy_layer_params_v9d0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(tm5_fdd_r9_present, 1)); + HANDLE_CODE(bref.unpack(tm5_tdd_r9_present, 1)); + + return SRSASN_SUCCESS; +} +void phy_layer_params_v9d0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (tm5_fdd_r9_present) { + j.write_str("tm5-FDD-r9", "supported"); + } + if (tm5_tdd_r9_present) { + j.write_str("tm5-TDD-r9", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v9e0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rf_params_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rf_params_v9e0_present) { + HANDLE_CODE(rf_params_v9e0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v9e0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rf_params_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rf_params_v9e0_present) { + HANDLE_CODE(rf_params_v9e0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v9e0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rf_params_v9e0_present) { + j.write_fieldname("rf-Parameters-v9e0"); + rf_params_v9e0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// IRAT-ParametersUTRA-v9c0 ::= SEQUENCE +SRSASN_CODE irat_params_utra_v9c0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_fdd_r9_present, 1)); + HANDLE_CODE(bref.pack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); + HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); + HANDLE_CODE(bref.pack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); + HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); + HANDLE_CODE(bref.pack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE irat_params_utra_v9c0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_fdd_r9_present, 1)); + HANDLE_CODE(bref.unpack(voice_over_ps_hs_utra_tdd128_r9_present, 1)); + HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_utra_fdd_r9_present, 1)); + HANDLE_CODE(bref.unpack(srvcc_from_utra_fdd_to_geran_r9_present, 1)); + HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_utra_tdd128_r9_present, 1)); + HANDLE_CODE(bref.unpack(srvcc_from_utra_tdd128_to_geran_r9_present, 1)); + + return SRSASN_SUCCESS; +} +void irat_params_utra_v9c0_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (voice_over_ps_hs_utra_fdd_r9_present) { + j.write_str("voiceOverPS-HS-UTRA-FDD-r9", "supported"); + } + if (voice_over_ps_hs_utra_tdd128_r9_present) { + j.write_str("voiceOverPS-HS-UTRA-TDD128-r9", "supported"); + } + if (srvcc_from_utra_fdd_to_utra_fdd_r9_present) { + j.write_str("srvcc-FromUTRA-FDD-ToUTRA-FDD-r9", "supported"); + } + if (srvcc_from_utra_fdd_to_geran_r9_present) { + j.write_str("srvcc-FromUTRA-FDD-ToGERAN-r9", "supported"); + } + if (srvcc_from_utra_tdd128_to_utra_tdd128_r9_present) { + j.write_str("srvcc-FromUTRA-TDD128-ToUTRA-TDD128-r9", "supported"); + } + if (srvcc_from_utra_tdd128_to_geran_r9_present) { + j.write_str("srvcc-FromUTRA-TDD128-ToGERAN-r9", "supported"); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v9d0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(phy_layer_params_v9d0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (phy_layer_params_v9d0_present) { + HANDLE_CODE(phy_layer_params_v9d0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v9d0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(phy_layer_params_v9d0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (phy_layer_params_v9d0_present) { + HANDLE_CODE(phy_layer_params_v9d0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v9d0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (phy_layer_params_v9d0_present) { + j.write_fieldname("phyLayerParameters-v9d0"); + phy_layer_params_v9d0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v9c0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(inter_rat_params_utra_v9c0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (inter_rat_params_utra_v9c0_present) { + HANDLE_CODE(inter_rat_params_utra_v9c0.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v9c0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(inter_rat_params_utra_v9c0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (inter_rat_params_utra_v9c0_present) { + HANDLE_CODE(inter_rat_params_utra_v9c0.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v9c0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (inter_rat_params_utra_v9c0_present) { + j.write_fieldname("interRAT-ParametersUTRA-v9c0"); + inter_rat_params_utra_v9c0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(phy_layer_params_r9_present, 1)); + HANDLE_CODE(bref.pack(feature_group_inds_r9_present, 1)); + HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); + HANDLE_CODE(bref.pack(inter_rat_params_geran_r9_present, 1)); + HANDLE_CODE(bref.pack(inter_rat_params_utra_r9_present, 1)); + HANDLE_CODE(bref.pack(inter_rat_params_cdma2000_r9_present, 1)); + HANDLE_CODE(bref.pack(neigh_cell_si_acquisition_params_r9_present, 1)); + + if (phy_layer_params_r9_present) { + HANDLE_CODE(phy_layer_params_r9.pack(bref)); + } + if (feature_group_inds_r9_present) { + HANDLE_CODE(feature_group_inds_r9.pack(bref)); + } + if (feature_group_ind_rel9_add_r9_present) { + HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); + } + if (inter_rat_params_geran_r9_present) { + HANDLE_CODE(inter_rat_params_geran_r9.pack(bref)); + } + if (inter_rat_params_utra_r9_present) { + HANDLE_CODE(inter_rat_params_utra_r9.pack(bref)); + } + if (inter_rat_params_cdma2000_r9_present) { + HANDLE_CODE(inter_rat_params_cdma2000_r9.pack(bref)); + } + if (neigh_cell_si_acquisition_params_r9_present) { + HANDLE_CODE(neigh_cell_si_acquisition_params_r9.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_add_xdd_mode_r9_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(phy_layer_params_r9_present, 1)); + HANDLE_CODE(bref.unpack(feature_group_inds_r9_present, 1)); + HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); + HANDLE_CODE(bref.unpack(inter_rat_params_geran_r9_present, 1)); + HANDLE_CODE(bref.unpack(inter_rat_params_utra_r9_present, 1)); + HANDLE_CODE(bref.unpack(inter_rat_params_cdma2000_r9_present, 1)); + HANDLE_CODE(bref.unpack(neigh_cell_si_acquisition_params_r9_present, 1)); + + if (phy_layer_params_r9_present) { + HANDLE_CODE(phy_layer_params_r9.unpack(bref)); + } + if (feature_group_inds_r9_present) { + HANDLE_CODE(feature_group_inds_r9.unpack(bref)); + } + if (feature_group_ind_rel9_add_r9_present) { + HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); + } + if (inter_rat_params_geran_r9_present) { + HANDLE_CODE(inter_rat_params_geran_r9.unpack(bref)); + } + if (inter_rat_params_utra_r9_present) { + HANDLE_CODE(inter_rat_params_utra_r9.unpack(bref)); + } + if (inter_rat_params_cdma2000_r9_present) { + HANDLE_CODE(inter_rat_params_cdma2000_r9.unpack(bref)); + } + if (neigh_cell_si_acquisition_params_r9_present) { + HANDLE_CODE(neigh_cell_si_acquisition_params_r9.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_add_xdd_mode_r9_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (phy_layer_params_r9_present) { + j.write_fieldname("phyLayerParameters-r9"); + phy_layer_params_r9.to_json(j); + } + if (feature_group_inds_r9_present) { + j.write_str("featureGroupIndicators-r9", feature_group_inds_r9.to_string()); + } + if (feature_group_ind_rel9_add_r9_present) { + j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); + } + if (inter_rat_params_geran_r9_present) { + j.write_fieldname("interRAT-ParametersGERAN-r9"); + inter_rat_params_geran_r9.to_json(j); + } + if (inter_rat_params_utra_r9_present) { + j.write_fieldname("interRAT-ParametersUTRA-r9"); + inter_rat_params_utra_r9.to_json(j); + } + if (inter_rat_params_cdma2000_r9_present) { + j.write_fieldname("interRAT-ParametersCDMA2000-r9"); + inter_rat_params_cdma2000_r9.to_json(j); + } + if (neigh_cell_si_acquisition_params_r9_present) { + j.write_fieldname("neighCellSI-AcquisitionParameters-r9"); + neigh_cell_si_acquisition_params_r9.to_json(j); + } + j.end_obj(); +} + +// UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE +SRSASN_CODE ue_eutra_cap_v9a0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(feature_group_ind_rel9_add_r9_present, 1)); + HANDLE_CODE(bref.pack(fdd_add_ue_eutra_cap_r9_present, 1)); + HANDLE_CODE(bref.pack(tdd_add_ue_eutra_cap_r9_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (feature_group_ind_rel9_add_r9_present) { + HANDLE_CODE(feature_group_ind_rel9_add_r9.pack(bref)); + } + if (fdd_add_ue_eutra_cap_r9_present) { + HANDLE_CODE(fdd_add_ue_eutra_cap_r9.pack(bref)); + } + if (tdd_add_ue_eutra_cap_r9_present) { + HANDLE_CODE(tdd_add_ue_eutra_cap_r9.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_eutra_cap_v9a0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(feature_group_ind_rel9_add_r9_present, 1)); + HANDLE_CODE(bref.unpack(fdd_add_ue_eutra_cap_r9_present, 1)); + HANDLE_CODE(bref.unpack(tdd_add_ue_eutra_cap_r9_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (feature_group_ind_rel9_add_r9_present) { + HANDLE_CODE(feature_group_ind_rel9_add_r9.unpack(bref)); + } + if (fdd_add_ue_eutra_cap_r9_present) { + HANDLE_CODE(fdd_add_ue_eutra_cap_r9.unpack(bref)); + } + if (tdd_add_ue_eutra_cap_r9_present) { + HANDLE_CODE(tdd_add_ue_eutra_cap_r9.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_eutra_cap_v9a0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (feature_group_ind_rel9_add_r9_present) { + j.write_str("featureGroupIndRel9Add-r9", feature_group_ind_rel9_add_r9.to_string()); + } + if (fdd_add_ue_eutra_cap_r9_present) { + j.write_fieldname("fdd-Add-UE-EUTRA-Capabilities-r9"); + fdd_add_ue_eutra_cap_r9.to_json(j); + } + if (tdd_add_ue_eutra_cap_r9_present) { + j.write_fieldname("tdd-Add-UE-EUTRA-Capabilities-r9"); + tdd_add_ue_eutra_cap_r9.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} + +// UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE +SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(ue_radio_access_cap_info.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_radio_access_cap_info_r8_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(ue_radio_access_cap_info.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ue_radio_access_cap_info_r8_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("ue-RadioAccessCapabilityInfo", ue_radio_access_cap_info.to_string()); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +// UERadioAccessCapabilityInformation ::= SEQUENCE +SRSASN_CODE ue_radio_access_cap_info_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(crit_exts.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_radio_access_cap_info_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void ue_radio_access_cap_info_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) +{ + type_ = e; +} +void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + } + j.end_obj(); +} +SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::c1: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; diff --git a/lib/src/asn1/rrc/ul_ccch_msg.cc b/lib/src/asn1/rrc/ul_ccch_msg.cc index 9d73adc8a..da391ce0f 100644 --- a/lib/src/asn1/rrc/ul_ccch_msg.cc +++ b/lib/src/asn1/rrc/ul_ccch_msg.cc @@ -825,67 +825,9 @@ void rrc_conn_reest_request_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_request_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_reest_request_r8: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reest_request_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_reest_request_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); - } -} -rrc_conn_reest_request_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_request_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_reest_request_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); - } -} -rrc_conn_reest_request_s::crit_exts_c_& -rrc_conn_reest_request_s::crit_exts_c_::operator=(const rrc_conn_reest_request_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_reest_request_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reest_request_s::crit_exts_c_::to_json(json_writer& j) const { @@ -893,7 +835,7 @@ void rrc_conn_reest_request_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_conn_reest_request_r8: j.write_fieldname("rrcConnectionReestablishmentRequest-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -907,7 +849,7 @@ SRSASN_CODE rrc_conn_reest_request_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_conn_reest_request_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -924,7 +866,7 @@ SRSASN_CODE rrc_conn_reest_request_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_conn_reest_request_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1238,67 +1180,9 @@ void rrc_early_data_request_r15_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_early_data_request_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_early_data_request_r15: - c.destroy(); - break; - default: - break; - } -} void rrc_early_data_request_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_early_data_request_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); - } -} -rrc_early_data_request_r15_s::crit_exts_c_::crit_exts_c_(const rrc_early_data_request_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_early_data_request_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); - } -} -rrc_early_data_request_r15_s::crit_exts_c_& -rrc_early_data_request_r15_s::crit_exts_c_::operator=(const rrc_early_data_request_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_early_data_request_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_r15_s::crit_exts_c_"); - } - - return *this; } void rrc_early_data_request_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -1306,7 +1190,7 @@ void rrc_early_data_request_r15_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_early_data_request_r15: j.write_fieldname("rrcEarlyDataRequest-r15"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -1320,7 +1204,7 @@ SRSASN_CODE rrc_early_data_request_r15_s::crit_exts_c_::pack(bit_ref& bref) cons type_.pack(bref); switch (type_) { case types::rrc_early_data_request_r15: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -1337,7 +1221,7 @@ SRSASN_CODE rrc_early_data_request_r15_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_early_data_request_r15: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -1725,69 +1609,9 @@ SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::c2_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::destroy_() -{ - switch (type_) { - case types::c3: - c.destroy(); - break; - default: - break; - } -} void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c3: - c.init(); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); - } -} -ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::msg_class_ext_future_r13_c_( - const ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c3: - c.init(other.c.get()); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); - } -} -ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& -ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::operator=( - const ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c3: - c.set(other.c.get()); - break; - case types::msg_class_ext_future_r15: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_"); - } - - return *this; } void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::to_json(json_writer& j) const { @@ -1795,7 +1619,7 @@ void ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::to_json( switch (type_) { case types::c3: j.write_fieldname("c3"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext_future_r15: break; @@ -1809,7 +1633,7 @@ SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::p type_.pack(bref); switch (type_) { case types::c3: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext_future_r15: break; @@ -1826,7 +1650,7 @@ SRSASN_CODE ul_ccch_msg_type_c::msg_class_ext_c_::msg_class_ext_future_r13_c_::u set(e); switch (type_) { case types::c3: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext_future_r15: break; diff --git a/lib/src/asn1/rrc/ul_dcch_msg.cc b/lib/src/asn1/rrc/ul_dcch_msg.cc index 6c055dc7c..e2726795a 100644 --- a/lib/src/asn1/rrc/ul_dcch_msg.cc +++ b/lib/src/asn1/rrc/ul_dcch_msg.cc @@ -2626,30 +2626,6 @@ void overheat_assist_r14_s::to_json(json_writer& j) const j.end_obj(); } -// RLF-Report-v9e0 ::= SEQUENCE -SRSASN_CODE rlf_report_v9e0_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_eutra_v9e0, 1, 8)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rlf_report_v9e0_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_eutra_v9e0, bref, 1, 8)); - - return SRSASN_SUCCESS; -} -void rlf_report_v9e0_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.start_array("measResultListEUTRA-v9e0"); - for (const auto& e1 : meas_result_list_eutra_v9e0) { - e1.to_json(j); - } - j.end_array(); - j.end_obj(); -} - // RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE SRSASN_CODE rrc_conn_recfg_complete_v1130_ies_s::pack(bit_ref& bref) const { @@ -4565,44 +4541,6 @@ void ue_info_resp_v1020_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UEInformationResponse-v9e0-IEs ::= SEQUENCE -SRSASN_CODE ue_info_resp_v9e0_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(rlf_report_v9e0_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (rlf_report_v9e0_present) { - HANDLE_CODE(rlf_report_v9e0.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_info_resp_v9e0_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(rlf_report_v9e0_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (rlf_report_v9e0_present) { - HANDLE_CODE(rlf_report_v9e0.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void ue_info_resp_v9e0_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (rlf_report_v9e0_present) { - j.write_fieldname("rlf-Report-v9e0"); - rlf_report_v9e0.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - // WLAN-Status-v1430 ::= ENUMERATED std::string wlan_status_v1430_opts::to_string() const { @@ -8304,67 +8242,9 @@ void csfb_params_request_cdma2000_s::to_json(json_writer& j) const j.end_obj(); } -void csfb_params_request_cdma2000_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::csfb_params_request_cdma2000_r8: - c.destroy(); - break; - default: - break; - } -} void csfb_params_request_cdma2000_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::csfb_params_request_cdma2000_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); - } -} -csfb_params_request_cdma2000_s::crit_exts_c_::crit_exts_c_(const csfb_params_request_cdma2000_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::csfb_params_request_cdma2000_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); - } -} -csfb_params_request_cdma2000_s::crit_exts_c_& -csfb_params_request_cdma2000_s::crit_exts_c_::operator=(const csfb_params_request_cdma2000_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::csfb_params_request_cdma2000_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "csfb_params_request_cdma2000_s::crit_exts_c_"); - } - - return *this; } void csfb_params_request_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const { @@ -8372,7 +8252,7 @@ void csfb_params_request_cdma2000_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::csfb_params_request_cdma2000_r8: j.write_fieldname("csfbParametersRequestCDMA2000-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -8386,7 +8266,7 @@ SRSASN_CODE csfb_params_request_cdma2000_s::crit_exts_c_::pack(bit_ref& bref) co type_.pack(bref); switch (type_) { case types::csfb_params_request_cdma2000_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -8403,7 +8283,7 @@ SRSASN_CODE csfb_params_request_cdma2000_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::csfb_params_request_cdma2000_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -8438,67 +8318,9 @@ void counter_check_resp_s::to_json(json_writer& j) const j.end_obj(); } -void counter_check_resp_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::counter_check_resp_r8: - c.destroy(); - break; - default: - break; - } -} void counter_check_resp_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::counter_check_resp_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } -} -counter_check_resp_s::crit_exts_c_::crit_exts_c_(const counter_check_resp_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::counter_check_resp_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } -} -counter_check_resp_s::crit_exts_c_& -counter_check_resp_s::crit_exts_c_::operator=(const counter_check_resp_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::counter_check_resp_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } - - return *this; } void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const { @@ -8506,7 +8328,7 @@ void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::counter_check_resp_r8: j.write_fieldname("counterCheckResponse-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -8520,7 +8342,7 @@ SRSASN_CODE counter_check_resp_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::counter_check_resp_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -8537,7 +8359,7 @@ SRSASN_CODE counter_check_resp_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::counter_check_resp_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -8600,67 +8422,9 @@ void in_dev_coex_ind_r11_s::to_json(json_writer& j) const j.end_obj(); } -void in_dev_coex_ind_r11_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void in_dev_coex_ind_r11_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); - } -} -in_dev_coex_ind_r11_s::crit_exts_c_::crit_exts_c_(const in_dev_coex_ind_r11_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); - } -} -in_dev_coex_ind_r11_s::crit_exts_c_& -in_dev_coex_ind_r11_s::crit_exts_c_::operator=(const in_dev_coex_ind_r11_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "in_dev_coex_ind_r11_s::crit_exts_c_"); - } - - return *this; } void in_dev_coex_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { @@ -8668,7 +8432,7 @@ void in_dev_coex_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -8682,7 +8446,7 @@ SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -8699,7 +8463,7 @@ SRSASN_CODE in_dev_coex_ind_r11_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -8795,95 +8559,37 @@ void inter_freq_rstd_meas_ind_r10_s::to_json(json_writer& j) const j.end_obj(); } -void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; +} +void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); + j.write_fieldname("c1"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); } + j.end_obj(); } -inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::crit_exts_c_(const inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& other) +SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { case types::c1: - c.init(other.c.get()); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); - } -} -inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& -inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::operator=(const inter_freq_rstd_meas_ind_r10_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); - } - - return *this; -} -void inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "inter_freq_rstd_meas_ind_r10_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } @@ -8894,7 +8600,7 @@ SRSASN_CODE inter_freq_rstd_meas_ind_r10_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -8990,67 +8696,9 @@ void mbms_count_resp_r10_s::to_json(json_writer& j) const j.end_obj(); } -void mbms_count_resp_r10_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void mbms_count_resp_r10_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); - } -} -mbms_count_resp_r10_s::crit_exts_c_::crit_exts_c_(const mbms_count_resp_r10_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); - } -} -mbms_count_resp_r10_s::crit_exts_c_& -mbms_count_resp_r10_s::crit_exts_c_::operator=(const mbms_count_resp_r10_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_count_resp_r10_s::crit_exts_c_"); - } - - return *this; } void mbms_count_resp_r10_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9058,7 +8706,7 @@ void mbms_count_resp_r10_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9072,7 +8720,7 @@ SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9089,7 +8737,7 @@ SRSASN_CODE mbms_count_resp_r10_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9185,67 +8833,9 @@ void mbms_interest_ind_r11_s::to_json(json_writer& j) const j.end_obj(); } -void mbms_interest_ind_r11_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void mbms_interest_ind_r11_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); - } -} -mbms_interest_ind_r11_s::crit_exts_c_::crit_exts_c_(const mbms_interest_ind_r11_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); - } -} -mbms_interest_ind_r11_s::crit_exts_c_& -mbms_interest_ind_r11_s::crit_exts_c_::operator=(const mbms_interest_ind_r11_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mbms_interest_ind_r11_s::crit_exts_c_"); - } - - return *this; } void mbms_interest_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9253,7 +8843,7 @@ void mbms_interest_ind_r11_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9267,7 +8857,7 @@ SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9284,7 +8874,7 @@ SRSASN_CODE mbms_interest_ind_r11_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9380,67 +8970,9 @@ void meas_report_app_layer_r15_s::to_json(json_writer& j) const j.end_obj(); } -void meas_report_app_layer_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::meas_report_app_layer_r15: - c.destroy(); - break; - default: - break; - } -} void meas_report_app_layer_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::meas_report_app_layer_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); - } -} -meas_report_app_layer_r15_s::crit_exts_c_::crit_exts_c_(const meas_report_app_layer_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::meas_report_app_layer_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); - } -} -meas_report_app_layer_r15_s::crit_exts_c_& -meas_report_app_layer_r15_s::crit_exts_c_::operator=(const meas_report_app_layer_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::meas_report_app_layer_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_app_layer_r15_s::crit_exts_c_"); - } - - return *this; } void meas_report_app_layer_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9448,7 +8980,7 @@ void meas_report_app_layer_r15_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::meas_report_app_layer_r15: j.write_fieldname("measReportAppLayer-r15"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9462,7 +8994,7 @@ SRSASN_CODE meas_report_app_layer_r15_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::meas_report_app_layer_r15: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9479,7 +9011,7 @@ SRSASN_CODE meas_report_app_layer_r15_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::meas_report_app_layer_r15: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9511,106 +9043,48 @@ void proximity_ind_r9_s::to_json(json_writer& j) const j.end_obj(); } -void proximity_ind_r9_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void proximity_ind_r9_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; +} +void proximity_ind_r9_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); + j.write_fieldname("c1"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); } + j.end_obj(); } -proximity_ind_r9_s::crit_exts_c_::crit_exts_c_(const proximity_ind_r9_s::crit_exts_c_& other) +SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { case types::c1: - c.init(other.c.get()); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -proximity_ind_r9_s::crit_exts_c_& -proximity_ind_r9_s::crit_exts_c_::operator=(const proximity_ind_r9_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); - } - - return *this; -} -void proximity_ind_r9_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "proximity_ind_r9_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE proximity_ind_r9_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9709,67 +9183,9 @@ void rn_recfg_complete_r10_s::to_json(json_writer& j) const j.end_obj(); } -void rn_recfg_complete_r10_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rn_recfg_complete_r10_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); - } -} -rn_recfg_complete_r10_s::crit_exts_c_::crit_exts_c_(const rn_recfg_complete_r10_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); - } -} -rn_recfg_complete_r10_s::crit_exts_c_& -rn_recfg_complete_r10_s::crit_exts_c_::operator=(const rn_recfg_complete_r10_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rn_recfg_complete_r10_s::crit_exts_c_"); - } - - return *this; } void rn_recfg_complete_r10_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9777,7 +9193,7 @@ void rn_recfg_complete_r10_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9791,7 +9207,7 @@ SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9808,7 +9224,7 @@ SRSASN_CODE rn_recfg_complete_r10_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9907,67 +9323,9 @@ void rrc_conn_recfg_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_recfg_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_recfg_complete_r8: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_recfg_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_recfg_complete_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); - } -} -rrc_conn_recfg_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_recfg_complete_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); - } -} -rrc_conn_recfg_complete_s::crit_exts_c_& -rrc_conn_recfg_complete_s::crit_exts_c_::operator=(const rrc_conn_recfg_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_recfg_complete_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9975,7 +9333,7 @@ void rrc_conn_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_conn_recfg_complete_r8: j.write_fieldname("rrcConnectionReconfigurationComplete-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9989,7 +9347,7 @@ SRSASN_CODE rrc_conn_recfg_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_conn_recfg_complete_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10006,7 +9364,7 @@ SRSASN_CODE rrc_conn_recfg_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_conn_recfg_complete_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10041,67 +9399,9 @@ void rrc_conn_reest_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_reest_complete_r8: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reest_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_reest_complete_r8: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); - } -} -rrc_conn_reest_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_reest_complete_r8: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); - } -} -rrc_conn_reest_complete_s::crit_exts_c_& -rrc_conn_reest_complete_s::crit_exts_c_::operator=(const rrc_conn_reest_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_reest_complete_r8: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10109,7 +9409,7 @@ void rrc_conn_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_conn_reest_complete_r8: j.write_fieldname("rrcConnectionReestablishmentComplete-r8"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10123,7 +9423,7 @@ SRSASN_CODE rrc_conn_reest_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_conn_reest_complete_r8: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10140,7 +9440,7 @@ SRSASN_CODE rrc_conn_reest_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_conn_reest_complete_r8: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10162,80 +9462,22 @@ SRSASN_CODE rrc_conn_resume_complete_r13_s::pack(bit_ref& bref) const SRSASN_CODE rrc_conn_resume_complete_r13_s::unpack(cbit_ref& bref) { HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_complete_r13_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_conn_resume_complete_r13_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.destroy(); - break; - default: - break; - } -} -void rrc_conn_resume_complete_r13_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); - } -} -rrc_conn_resume_complete_r13_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_complete_r13_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); - } -} -rrc_conn_resume_complete_r13_s::crit_exts_c_& -rrc_conn_resume_complete_r13_s::crit_exts_c_::operator=(const rrc_conn_resume_complete_r13_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_r13_s::crit_exts_c_"); - } + HANDLE_CODE(crit_exts.unpack(bref)); - return *this; + return SRSASN_SUCCESS; +} +void rrc_conn_resume_complete_r13_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void rrc_conn_resume_complete_r13_s::crit_exts_c_::set(types::options e) +{ + type_ = e; } void rrc_conn_resume_complete_r13_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10243,7 +9485,7 @@ void rrc_conn_resume_complete_r13_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_conn_resume_complete_r13: j.write_fieldname("rrcConnectionResumeComplete-r13"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10257,7 +9499,7 @@ SRSASN_CODE rrc_conn_resume_complete_r13_s::crit_exts_c_::pack(bit_ref& bref) co type_.pack(bref); switch (type_) { case types::rrc_conn_resume_complete_r13: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10274,7 +9516,7 @@ SRSASN_CODE rrc_conn_resume_complete_r13_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_conn_resume_complete_r13: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10309,67 +9551,9 @@ void rrc_conn_setup_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_setup_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_setup_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); - } -} -rrc_conn_setup_complete_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); - } -} -rrc_conn_setup_complete_s::crit_exts_c_& -rrc_conn_setup_complete_s::crit_exts_c_::operator=(const rrc_conn_setup_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10377,7 +9561,7 @@ void rrc_conn_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10391,7 +9575,7 @@ SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10408,7 +9592,7 @@ SRSASN_CODE rrc_conn_setup_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10504,67 +9688,9 @@ void scg_fail_info_r12_s::to_json(json_writer& j) const j.end_obj(); } -void scg_fail_info_r12_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void scg_fail_info_r12_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); - } -} -scg_fail_info_r12_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_r12_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); - } -} -scg_fail_info_r12_s::crit_exts_c_& -scg_fail_info_r12_s::crit_exts_c_::operator=(const scg_fail_info_r12_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_r12_s::crit_exts_c_"); - } - - return *this; } void scg_fail_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10572,7 +9698,7 @@ void scg_fail_info_r12_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10586,7 +9712,7 @@ SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10603,7 +9729,7 @@ SRSASN_CODE scg_fail_info_r12_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10699,67 +9825,9 @@ void scg_fail_info_nr_r15_s::to_json(json_writer& j) const j.end_obj(); } -void scg_fail_info_nr_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void scg_fail_info_nr_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); - } -} -scg_fail_info_nr_r15_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_nr_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); - } -} -scg_fail_info_nr_r15_s::crit_exts_c_& -scg_fail_info_nr_r15_s::crit_exts_c_::operator=(const scg_fail_info_nr_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_nr_r15_s::crit_exts_c_"); - } - - return *this; } void scg_fail_info_nr_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10767,7 +9835,7 @@ void scg_fail_info_nr_r15_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10781,7 +9849,7 @@ SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10798,7 +9866,7 @@ SRSASN_CODE scg_fail_info_nr_r15_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -10894,67 +9962,9 @@ void sidelink_ue_info_r12_s::to_json(json_writer& j) const j.end_obj(); } -void sidelink_ue_info_r12_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} -void sidelink_ue_info_r12_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); - } -} -sidelink_ue_info_r12_s::crit_exts_c_::crit_exts_c_(const sidelink_ue_info_r12_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); - } -} -sidelink_ue_info_r12_s::crit_exts_c_& -sidelink_ue_info_r12_s::crit_exts_c_::operator=(const sidelink_ue_info_r12_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sidelink_ue_info_r12_s::crit_exts_c_"); - } - - return *this; +void sidelink_ue_info_r12_s::crit_exts_c_::set(types::options e) +{ + type_ = e; } void sidelink_ue_info_r12_s::crit_exts_c_::to_json(json_writer& j) const { @@ -10962,7 +9972,7 @@ void sidelink_ue_info_r12_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -10976,7 +9986,7 @@ SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -10993,7 +10003,7 @@ SRSASN_CODE sidelink_ue_info_r12_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11089,67 +10099,9 @@ void ueassist_info_r11_s::to_json(json_writer& j) const j.end_obj(); } -void ueassist_info_r11_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ueassist_info_r11_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); - } -} -ueassist_info_r11_s::crit_exts_c_::crit_exts_c_(const ueassist_info_r11_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); - } -} -ueassist_info_r11_s::crit_exts_c_& -ueassist_info_r11_s::crit_exts_c_::operator=(const ueassist_info_r11_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_r11_s::crit_exts_c_"); - } - - return *this; } void ueassist_info_r11_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11157,7 +10109,7 @@ void ueassist_info_r11_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11171,7 +10123,7 @@ SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11188,7 +10140,7 @@ SRSASN_CODE ueassist_info_r11_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11287,67 +10239,9 @@ void ue_info_resp_r9_s::to_json(json_writer& j) const j.end_obj(); } -void ue_info_resp_r9_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_info_resp_r9_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); - } -} -ue_info_resp_r9_s::crit_exts_c_::crit_exts_c_(const ue_info_resp_r9_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); - } -} -ue_info_resp_r9_s::crit_exts_c_& -ue_info_resp_r9_s::crit_exts_c_::operator=(const ue_info_resp_r9_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_info_resp_r9_s::crit_exts_c_"); - } - - return *this; } void ue_info_resp_r9_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11355,7 +10249,7 @@ void ue_info_resp_r9_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11369,7 +10263,7 @@ SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11386,7 +10280,7 @@ SRSASN_CODE ue_info_resp_r9_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11482,67 +10376,9 @@ void ul_ho_prep_transfer_s::to_json(json_writer& j) const j.end_obj(); } -void ul_ho_prep_transfer_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_ho_prep_transfer_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); - } -} -ul_ho_prep_transfer_s::crit_exts_c_::crit_exts_c_(const ul_ho_prep_transfer_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); - } -} -ul_ho_prep_transfer_s::crit_exts_c_& -ul_ho_prep_transfer_s::crit_exts_c_::operator=(const ul_ho_prep_transfer_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ho_prep_transfer_s::crit_exts_c_"); - } - - return *this; } void ul_ho_prep_transfer_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11550,7 +10386,7 @@ void ul_ho_prep_transfer_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11564,7 +10400,7 @@ SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11581,7 +10417,7 @@ SRSASN_CODE ul_ho_prep_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11665,79 +10501,21 @@ SRSASN_CODE ul_info_transfer_s::pack(bit_ref& bref) const } SRSASN_CODE ul_info_transfer_s::unpack(cbit_ref& bref) { - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ul_info_transfer_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void ul_info_transfer_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} -void ul_info_transfer_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } -} -ul_info_transfer_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } -} -ul_info_transfer_s::crit_exts_c_& -ul_info_transfer_s::crit_exts_c_::operator=(const ul_info_transfer_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } + HANDLE_CODE(crit_exts.unpack(bref)); - return *this; + return SRSASN_SUCCESS; +} +void ul_info_transfer_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void ul_info_transfer_s::crit_exts_c_::set(types::options e) +{ + type_ = e; } void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11745,7 +10523,7 @@ void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11759,7 +10537,7 @@ SRSASN_CODE ul_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11776,7 +10554,7 @@ SRSASN_CODE ul_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11872,67 +10650,9 @@ void ul_info_transfer_mrdc_r15_s::to_json(json_writer& j) const j.end_obj(); } -void ul_info_transfer_mrdc_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_info_transfer_mrdc_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); - } -} -ul_info_transfer_mrdc_r15_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_mrdc_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); - } -} -ul_info_transfer_mrdc_r15_s::crit_exts_c_& -ul_info_transfer_mrdc_r15_s::crit_exts_c_::operator=(const ul_info_transfer_mrdc_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_r15_s::crit_exts_c_"); - } - - return *this; } void ul_info_transfer_mrdc_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11940,7 +10660,7 @@ void ul_info_transfer_mrdc_r15_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11954,7 +10674,7 @@ SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11971,7 +10691,7 @@ SRSASN_CODE ul_info_transfer_mrdc_r15_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -12067,67 +10787,9 @@ void wlan_conn_status_report_r13_s::to_json(json_writer& j) const j.end_obj(); } -void wlan_conn_status_report_r13_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void wlan_conn_status_report_r13_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); - } -} -wlan_conn_status_report_r13_s::crit_exts_c_::crit_exts_c_(const wlan_conn_status_report_r13_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); - } -} -wlan_conn_status_report_r13_s::crit_exts_c_& -wlan_conn_status_report_r13_s::crit_exts_c_::operator=(const wlan_conn_status_report_r13_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "wlan_conn_status_report_r13_s::crit_exts_c_"); - } - - return *this; } void wlan_conn_status_report_r13_s::crit_exts_c_::to_json(json_writer& j) const { @@ -12135,7 +10797,7 @@ void wlan_conn_status_report_r13_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -12149,7 +10811,7 @@ SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::pack(bit_ref& bref) con type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -12166,7 +10828,7 @@ SRSASN_CODE wlan_conn_status_report_r13_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -12788,67 +11450,9 @@ SRSASN_CODE ul_dcch_msg_type_c::c1_c_::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void ul_dcch_msg_type_c::msg_class_ext_c_::destroy_() -{ - switch (type_) { - case types::c2: - c.destroy(); - break; - default: - break; - } -} void ul_dcch_msg_type_c::msg_class_ext_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c2: - c.init(); - break; - case types::msg_class_ext_future_r11: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); - } -} -ul_dcch_msg_type_c::msg_class_ext_c_::msg_class_ext_c_(const ul_dcch_msg_type_c::msg_class_ext_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c2: - c.init(other.c.get()); - break; - case types::msg_class_ext_future_r11: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); - } -} -ul_dcch_msg_type_c::msg_class_ext_c_& -ul_dcch_msg_type_c::msg_class_ext_c_::operator=(const ul_dcch_msg_type_c::msg_class_ext_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c2: - c.set(other.c.get()); - break; - case types::msg_class_ext_future_r11: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c::msg_class_ext_c_"); - } - - return *this; } void ul_dcch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const { @@ -12856,7 +11460,7 @@ void ul_dcch_msg_type_c::msg_class_ext_c_::to_json(json_writer& j) const switch (type_) { case types::c2: j.write_fieldname("c2"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext_future_r11: break; @@ -12870,7 +11474,7 @@ SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c2: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext_future_r11: break; @@ -12887,7 +11491,7 @@ SRSASN_CODE ul_dcch_msg_type_c::msg_class_ext_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c2: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext_future_r11: break; @@ -13304,3 +11908,65 @@ void ul_dcch_msg_s::to_json(json_writer& j) const j.end_obj(); j.end_array(); } + +// RLF-Report-v9e0 ::= SEQUENCE +SRSASN_CODE rlf_report_v9e0_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_list_eutra_v9e0, 1, 8)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rlf_report_v9e0_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(unpack_dyn_seq_of(meas_result_list_eutra_v9e0, bref, 1, 8)); + + return SRSASN_SUCCESS; +} +void rlf_report_v9e0_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.start_array("measResultListEUTRA-v9e0"); + for (const auto& e1 : meas_result_list_eutra_v9e0) { + e1.to_json(j); + } + j.end_array(); + j.end_obj(); +} + +// UEInformationResponse-v9e0-IEs ::= SEQUENCE +SRSASN_CODE ue_info_resp_v9e0_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(rlf_report_v9e0_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (rlf_report_v9e0_present) { + HANDLE_CODE(rlf_report_v9e0.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE ue_info_resp_v9e0_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(rlf_report_v9e0_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (rlf_report_v9e0_present) { + HANDLE_CODE(rlf_report_v9e0.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void ue_info_resp_v9e0_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (rlf_report_v9e0_present) { + j.write_fieldname("rlf-Report-v9e0"); + rlf_report_v9e0.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} diff --git a/lib/src/asn1/rrc_nbiot.cc b/lib/src/asn1/rrc_nbiot.cc index 10883403d..3f1716054 100644 --- a/lib/src/asn1/rrc_nbiot.cc +++ b/lib/src/asn1/rrc_nbiot.cc @@ -11366,66 +11366,9 @@ void sys_info_nb_s::to_json(json_writer& j) const j.end_obj(); } -void sys_info_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::sys_info_r13: - c.destroy(); - break; - default: - break; - } -} void sys_info_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::sys_info_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_nb_s::crit_exts_c_"); - } -} -sys_info_nb_s::crit_exts_c_::crit_exts_c_(const sys_info_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::sys_info_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_nb_s::crit_exts_c_"); - } -} -sys_info_nb_s::crit_exts_c_& sys_info_nb_s::crit_exts_c_::operator=(const sys_info_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::sys_info_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_nb_s::crit_exts_c_"); - } - - return *this; } void sys_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -11433,7 +11376,7 @@ void sys_info_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::sys_info_r13: j.write_fieldname("systemInformation-r13"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -11447,7 +11390,7 @@ SRSASN_CODE sys_info_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::sys_info_r13: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -11464,7 +11407,7 @@ SRSASN_CODE sys_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::sys_info_r13: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -11740,66 +11683,9 @@ uint16_t sib_type1_nb_s::si_win_len_r13_opts::to_number() const } // BCCH-DL-SCH-MessageType-NB ::= CHOICE -void bcch_dl_sch_msg_type_nb_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void bcch_dl_sch_msg_type_nb_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_nb_c"); - } -} -bcch_dl_sch_msg_type_nb_c::bcch_dl_sch_msg_type_nb_c(const bcch_dl_sch_msg_type_nb_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_nb_c"); - } -} -bcch_dl_sch_msg_type_nb_c& bcch_dl_sch_msg_type_nb_c::operator=(const bcch_dl_sch_msg_type_nb_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_nb_c"); - } - - return *this; } void bcch_dl_sch_msg_type_nb_c::to_json(json_writer& j) const { @@ -11807,7 +11693,7 @@ void bcch_dl_sch_msg_type_nb_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -11821,7 +11707,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_nb_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -11838,7 +11724,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_nb_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -12395,67 +12281,9 @@ void rrc_conn_reest_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reest_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_nb_s::crit_exts_c_"); - } -} -rrc_conn_reest_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_nb_s::crit_exts_c_"); - } -} -rrc_conn_reest_nb_s::crit_exts_c_& -rrc_conn_reest_nb_s::crit_exts_c_::operator=(const rrc_conn_reest_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_nb_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reest_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -12463,7 +12291,7 @@ void rrc_conn_reest_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -12477,7 +12305,7 @@ SRSASN_CODE rrc_conn_reest_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -12494,7 +12322,7 @@ SRSASN_CODE rrc_conn_reest_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -12584,67 +12412,9 @@ void rrc_conn_reject_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reject_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_reject_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_nb_s::crit_exts_c_"); - } -} -rrc_conn_reject_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reject_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_nb_s::crit_exts_c_"); - } -} -rrc_conn_reject_nb_s::crit_exts_c_& -rrc_conn_reject_nb_s::crit_exts_c_::operator=(const rrc_conn_reject_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reject_nb_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_reject_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -12652,7 +12422,7 @@ void rrc_conn_reject_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -12666,7 +12436,7 @@ SRSASN_CODE rrc_conn_reject_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -12683,7 +12453,7 @@ SRSASN_CODE rrc_conn_reject_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -12776,117 +12546,59 @@ void rrc_conn_setup_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_setup_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_setup_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; +} +void rrc_conn_setup_nb_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); switch (type_) { case types::c1: - c.init(); + j.write_fieldname("c1"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); } + j.end_obj(); } -rrc_conn_setup_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_setup_nb_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { case types::c1: - c.init(other.c.get()); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -rrc_conn_setup_nb_s::crit_exts_c_& -rrc_conn_setup_nb_s::crit_exts_c_::operator=(const rrc_conn_setup_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_setup_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { case types::c1: - c.set(other.c.get()); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - - return *this; + return SRSASN_SUCCESS; } -void rrc_conn_setup_nb_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_conn_setup_nb_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_nb_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -void rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::set(types::options e) + +void rrc_conn_setup_nb_s::crit_exts_c_::c1_c_::set(types::options e) { type_ = e; } @@ -12965,68 +12677,9 @@ void rrc_early_data_complete_nb_r15_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_early_data_complete_nb_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_early_data_complete_r15: - c.destroy(); - break; - default: - break; - } -} void rrc_early_data_complete_nb_r15_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_early_data_complete_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_nb_r15_s::crit_exts_c_"); - } -} -rrc_early_data_complete_nb_r15_s::crit_exts_c_::crit_exts_c_( - const rrc_early_data_complete_nb_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_early_data_complete_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_nb_r15_s::crit_exts_c_"); - } -} -rrc_early_data_complete_nb_r15_s::crit_exts_c_& -rrc_early_data_complete_nb_r15_s::crit_exts_c_::operator=(const rrc_early_data_complete_nb_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_early_data_complete_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_complete_nb_r15_s::crit_exts_c_"); - } - - return *this; } void rrc_early_data_complete_nb_r15_s::crit_exts_c_::to_json(json_writer& j) const { @@ -13034,7 +12687,7 @@ void rrc_early_data_complete_nb_r15_s::crit_exts_c_::to_json(json_writer& j) con switch (type_) { case types::rrc_early_data_complete_r15: j.write_fieldname("rrcEarlyDataComplete-r15"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -13048,7 +12701,7 @@ SRSASN_CODE rrc_early_data_complete_nb_r15_s::crit_exts_c_::pack(bit_ref& bref) type_.pack(bref); switch (type_) { case types::rrc_early_data_complete_r15: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -13065,7 +12718,7 @@ SRSASN_CODE rrc_early_data_complete_nb_r15_s::crit_exts_c_::unpack(cbit_ref& bre set(e); switch (type_) { case types::rrc_early_data_complete_r15: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -13083,66 +12736,9 @@ std::string rrc_early_data_complete_nb_r15_s::crit_exts_c_::types_opts::to_strin } // DL-CCCH-MessageType-NB ::= CHOICE -void dl_ccch_msg_type_nb_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_ccch_msg_type_nb_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_nb_c"); - } -} -dl_ccch_msg_type_nb_c::dl_ccch_msg_type_nb_c(const dl_ccch_msg_type_nb_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_nb_c"); - } -} -dl_ccch_msg_type_nb_c& dl_ccch_msg_type_nb_c::operator=(const dl_ccch_msg_type_nb_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_nb_c"); - } - - return *this; } void dl_ccch_msg_type_nb_c::to_json(json_writer& j) const { @@ -13150,7 +12746,7 @@ void dl_ccch_msg_type_nb_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -13164,7 +12760,7 @@ SRSASN_CODE dl_ccch_msg_type_nb_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -13181,7 +12777,7 @@ SRSASN_CODE dl_ccch_msg_type_nb_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -13952,67 +13548,9 @@ void dl_info_transfer_nb_s::to_json(json_writer& j) const j.end_obj(); } -void dl_info_transfer_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_info_transfer_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_nb_s::crit_exts_c_"); - } -} -dl_info_transfer_nb_s::crit_exts_c_::crit_exts_c_(const dl_info_transfer_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_nb_s::crit_exts_c_"); - } -} -dl_info_transfer_nb_s::crit_exts_c_& -dl_info_transfer_nb_s::crit_exts_c_::operator=(const dl_info_transfer_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_nb_s::crit_exts_c_"); - } - - return *this; } void dl_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14020,7 +13558,7 @@ void dl_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14034,7 +13572,7 @@ SRSASN_CODE dl_info_transfer_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14051,7 +13589,7 @@ SRSASN_CODE dl_info_transfer_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14144,67 +13682,9 @@ void rrc_conn_recfg_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_recfg_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_recfg_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_nb_s::crit_exts_c_"); - } -} -rrc_conn_recfg_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_nb_s::crit_exts_c_"); - } -} -rrc_conn_recfg_nb_s::crit_exts_c_& -rrc_conn_recfg_nb_s::crit_exts_c_::operator=(const rrc_conn_recfg_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_nb_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_recfg_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14212,7 +13692,7 @@ void rrc_conn_recfg_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14226,7 +13706,7 @@ SRSASN_CODE rrc_conn_recfg_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14243,7 +13723,7 @@ SRSASN_CODE rrc_conn_recfg_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14336,67 +13816,9 @@ void rrc_conn_release_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_release_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_release_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_nb_s::crit_exts_c_"); - } -} -rrc_conn_release_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_release_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_nb_s::crit_exts_c_"); - } -} -rrc_conn_release_nb_s::crit_exts_c_& -rrc_conn_release_nb_s::crit_exts_c_::operator=(const rrc_conn_release_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_release_nb_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_release_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14404,7 +13826,7 @@ void rrc_conn_release_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14418,7 +13840,7 @@ SRSASN_CODE rrc_conn_release_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14435,7 +13857,7 @@ SRSASN_CODE rrc_conn_release_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14528,67 +13950,9 @@ void rrc_conn_resume_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_resume_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void rrc_conn_resume_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_nb_s::crit_exts_c_& -rrc_conn_resume_nb_s::crit_exts_c_::operator=(const rrc_conn_resume_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_nb_s::crit_exts_c_"); - } - - return *this; } void rrc_conn_resume_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14596,7 +13960,7 @@ void rrc_conn_resume_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14610,7 +13974,7 @@ SRSASN_CODE rrc_conn_resume_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14627,7 +13991,7 @@ SRSASN_CODE rrc_conn_resume_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14720,67 +14084,9 @@ void ue_cap_enquiry_nb_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_enquiry_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_cap_enquiry_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_nb_s::crit_exts_c_"); - } -} -ue_cap_enquiry_nb_s::crit_exts_c_::crit_exts_c_(const ue_cap_enquiry_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_nb_s::crit_exts_c_"); - } -} -ue_cap_enquiry_nb_s::crit_exts_c_& -ue_cap_enquiry_nb_s::crit_exts_c_::operator=(const ue_cap_enquiry_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_nb_s::crit_exts_c_"); - } - - return *this; } void ue_cap_enquiry_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -14788,7 +14094,7 @@ void ue_cap_enquiry_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -14802,7 +14108,7 @@ SRSASN_CODE ue_cap_enquiry_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -14819,7 +14125,7 @@ SRSASN_CODE ue_cap_enquiry_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -14889,66 +14195,9 @@ std::string ue_cap_enquiry_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() co } // DL-DCCH-MessageType-NB ::= CHOICE -void dl_dcch_msg_type_nb_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_dcch_msg_type_nb_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_nb_c"); - } -} -dl_dcch_msg_type_nb_c::dl_dcch_msg_type_nb_c(const dl_dcch_msg_type_nb_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_nb_c"); - } -} -dl_dcch_msg_type_nb_c& dl_dcch_msg_type_nb_c::operator=(const dl_dcch_msg_type_nb_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_nb_c"); - } - - return *this; } void dl_dcch_msg_type_nb_c::to_json(json_writer& j) const { @@ -14956,7 +14205,7 @@ void dl_dcch_msg_type_nb_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -14970,7 +14219,7 @@ SRSASN_CODE dl_dcch_msg_type_nb_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -14987,7 +14236,7 @@ SRSASN_CODE dl_dcch_msg_type_nb_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -15282,424 +14531,367 @@ void dl_dcch_msg_nb_s::to_json(json_writer& j) const j.end_array(); } -// PhyLayerParameters-NB-r13 ::= SEQUENCE -SRSASN_CODE phy_layer_params_nb_r13_s::pack(bit_ref& bref) const +// SupportedBand-NB-r13 ::= SEQUENCE +SRSASN_CODE supported_band_nb_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_tone_r13_present, 1)); - HANDLE_CODE(bref.pack(multi_carrier_r13_present, 1)); + HANDLE_CODE(bref.pack(pwr_class_nb_minus20dbm_r13_present, 1)); + + HANDLE_CODE(pack_integer(bref, band_r13, (uint16_t)1u, (uint16_t)256u)); return SRSASN_SUCCESS; } -SRSASN_CODE phy_layer_params_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE supported_band_nb_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_tone_r13_present, 1)); - HANDLE_CODE(bref.unpack(multi_carrier_r13_present, 1)); + HANDLE_CODE(bref.unpack(pwr_class_nb_minus20dbm_r13_present, 1)); + + HANDLE_CODE(unpack_integer(band_r13, bref, (uint16_t)1u, (uint16_t)256u)); return SRSASN_SUCCESS; } -void phy_layer_params_nb_r13_s::to_json(json_writer& j) const +void supported_band_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (multi_tone_r13_present) { - j.write_str("multiTone-r13", "supported"); - } - if (multi_carrier_r13_present) { - j.write_str("multiCarrier-r13", "supported"); + j.write_int("band-r13", band_r13); + if (pwr_class_nb_minus20dbm_r13_present) { + j.write_str("powerClassNB-20dBm-r13", "supported"); } j.end_obj(); } -// PhyLayerParameters-NB-v1430 ::= SEQUENCE -SRSASN_CODE phy_layer_params_nb_v1430_s::pack(bit_ref& bref) const +// AccessStratumRelease-NB-r13 ::= ENUMERATED +std::string access_stratum_release_nb_r13_opts::to_string() const { - HANDLE_CODE(bref.pack(multi_carrier_nprach_r14_present, 1)); - HANDLE_CODE(bref.pack(two_harq_processes_r14_present, 1)); - - return SRSASN_SUCCESS; + static const char* options[] = {"rel13", "rel14", "rel15", "spare5", "spare4", "spare3", "spare2", "spare1"}; + return convert_enum_idx(options, 8, value, "access_stratum_release_nb_r13_e"); } -SRSASN_CODE phy_layer_params_nb_v1430_s::unpack(cbit_ref& bref) +uint8_t access_stratum_release_nb_r13_opts::to_number() const { - HANDLE_CODE(bref.unpack(multi_carrier_nprach_r14_present, 1)); - HANDLE_CODE(bref.unpack(two_harq_processes_r14_present, 1)); + static const uint8_t options[] = {13, 14, 15}; + return map_enum_number(options, 3, value, "access_stratum_release_nb_r13_e"); +} - return SRSASN_SUCCESS; -} -void phy_layer_params_nb_v1430_s::to_json(json_writer& j) const +// HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_nb_ext_r14_ies_s::pack(bit_ref& bref) const { - j.start_obj(); - if (multi_carrier_nprach_r14_present) { - j.write_str("multiCarrier-NPRACH-r14", "supported"); - } - if (two_harq_processes_r14_present) { - j.write_str("twoHARQ-Processes-r14", "supported"); - } - j.end_obj(); -} + HANDLE_CODE(bref.pack(ue_radio_access_cap_info_ext_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); -// PhyLayerParameters-NB-v1530 ::= SEQUENCE -SRSASN_CODE phy_layer_params_nb_v1530_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(mixed_operation_mode_r15_present, 1)); - HANDLE_CODE(bref.pack(sr_with_harq_ack_r15_present, 1)); - HANDLE_CODE(bref.pack(sr_without_harq_ack_r15_present, 1)); - HANDLE_CODE(bref.pack(nprach_format2_r15_present, 1)); - HANDLE_CODE(bref.pack(add_tx_sib1_r15_present, 1)); - HANDLE_CODE(bref.pack(npusch_minus3dot75k_hz_scs_tdd_r15_present, 1)); + if (ue_radio_access_cap_info_ext_r14_present) { + HANDLE_CODE(ue_radio_access_cap_info_ext_r14.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE phy_layer_params_nb_v1530_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_prep_info_nb_ext_r14_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(mixed_operation_mode_r15_present, 1)); - HANDLE_CODE(bref.unpack(sr_with_harq_ack_r15_present, 1)); - HANDLE_CODE(bref.unpack(sr_without_harq_ack_r15_present, 1)); - HANDLE_CODE(bref.unpack(nprach_format2_r15_present, 1)); - HANDLE_CODE(bref.unpack(add_tx_sib1_r15_present, 1)); - HANDLE_CODE(bref.unpack(npusch_minus3dot75k_hz_scs_tdd_r15_present, 1)); + HANDLE_CODE(bref.unpack(ue_radio_access_cap_info_ext_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (ue_radio_access_cap_info_ext_r14_present) { + HANDLE_CODE(ue_radio_access_cap_info_ext_r14.unpack(bref)); + } return SRSASN_SUCCESS; } -void phy_layer_params_nb_v1530_s::to_json(json_writer& j) const +void ho_prep_info_nb_ext_r14_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (mixed_operation_mode_r15_present) { - j.write_str("mixedOperationMode-r15", "supported"); - } - if (sr_with_harq_ack_r15_present) { - j.write_str("sr-WithHARQ-ACK-r15", "supported"); - } - if (sr_without_harq_ack_r15_present) { - j.write_str("sr-WithoutHARQ-ACK-r15", "supported"); - } - if (nprach_format2_r15_present) { - j.write_str("nprach-Format2-r15", "supported"); - } - if (add_tx_sib1_r15_present) { - j.write_str("additionalTransmissionSIB1-r15", "supported"); + if (ue_radio_access_cap_info_ext_r14_present) { + j.write_str("ue-RadioAccessCapabilityInfoExt-r14", ue_radio_access_cap_info_ext_r14.to_string()); } - if (npusch_minus3dot75k_hz_scs_tdd_r15_present) { - j.write_str("npusch-3dot75kHz-SCS-TDD-r15", "supported"); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -// MAC-Parameters-NB-v1530 ::= SEQUENCE -SRSASN_CODE mac_params_nb_v1530_s::pack(bit_ref& bref) const +// PDCP-Parameters-NB-r13 ::= SEQUENCE +SRSASN_CODE pdcp_params_nb_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(sr_sps_bsr_r15_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(max_num_rohc_context_sessions_r13_present, 1)); + + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0002, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0003, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0004, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0006, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0102, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0103, 1)); + HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0104, 1)); + if (max_num_rohc_context_sessions_r13_present) { + HANDLE_CODE(max_num_rohc_context_sessions_r13.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE mac_params_nb_v1530_s::unpack(cbit_ref& bref) +SRSASN_CODE pdcp_params_nb_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(sr_sps_bsr_r15_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(max_num_rohc_context_sessions_r13_present, 1)); + + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0002, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0003, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0004, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0006, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0102, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0103, 1)); + HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0104, 1)); + if (max_num_rohc_context_sessions_r13_present) { + HANDLE_CODE(max_num_rohc_context_sessions_r13.unpack(bref)); + } return SRSASN_SUCCESS; } -void mac_params_nb_v1530_s::to_json(json_writer& j) const +void pdcp_params_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (sr_sps_bsr_r15_present) { - j.write_str("sr-SPS-BSR-r15", "supported"); + j.write_fieldname("supportedROHC-Profiles-r13"); + j.start_obj(); + j.write_bool("profile0x0002", supported_rohc_profiles_r13.profile0x0002); + j.write_bool("profile0x0003", supported_rohc_profiles_r13.profile0x0003); + j.write_bool("profile0x0004", supported_rohc_profiles_r13.profile0x0004); + j.write_bool("profile0x0006", supported_rohc_profiles_r13.profile0x0006); + j.write_bool("profile0x0102", supported_rohc_profiles_r13.profile0x0102); + j.write_bool("profile0x0103", supported_rohc_profiles_r13.profile0x0103); + j.write_bool("profile0x0104", supported_rohc_profiles_r13.profile0x0104); + j.end_obj(); + if (max_num_rohc_context_sessions_r13_present) { + j.write_str("maxNumberROHC-ContextSessions-r13", max_num_rohc_context_sessions_r13.to_string()); } j.end_obj(); } -// RLC-Parameters-NB-r15 ::= SEQUENCE -SRSASN_CODE rlc_params_nb_r15_s::pack(bit_ref& bref) const +std::string pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_string() const { - HANDLE_CODE(bref.pack(rlc_um_r15_present, 1)); + static const char* options[] = {"cs2", "cs4", "cs8", "cs12"}; + return convert_enum_idx(options, 4, value, "pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_e_"); +} +uint8_t pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_number() const +{ + static const uint8_t options[] = {2, 4, 8, 12}; + return map_enum_number(options, 4, value, "pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_e_"); +} + +// PhyLayerParameters-NB-r13 ::= SEQUENCE +SRSASN_CODE phy_layer_params_nb_r13_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(multi_tone_r13_present, 1)); + HANDLE_CODE(bref.pack(multi_carrier_r13_present, 1)); return SRSASN_SUCCESS; } -SRSASN_CODE rlc_params_nb_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE phy_layer_params_nb_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(rlc_um_r15_present, 1)); + HANDLE_CODE(bref.unpack(multi_tone_r13_present, 1)); + HANDLE_CODE(bref.unpack(multi_carrier_r13_present, 1)); return SRSASN_SUCCESS; } -void rlc_params_nb_r15_s::to_json(json_writer& j) const +void phy_layer_params_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (rlc_um_r15_present) { - j.write_str("rlc-UM-r15", "supported"); + if (multi_tone_r13_present) { + j.write_str("multiTone-r13", "supported"); + } + if (multi_carrier_r13_present) { + j.write_str("multiCarrier-r13", "supported"); } j.end_obj(); } -// TDD-UE-Capability-NB-r15 ::= SEQUENCE -SRSASN_CODE tdd_ue_cap_nb_r15_s::pack(bit_ref& bref) const +// RF-Parameters-NB-r13 ::= SEQUENCE +SRSASN_CODE rf_params_nb_r13_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ue_category_nb_r15_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_rel13_r15_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_rel14_r15_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_v1530_present, 1)); + HANDLE_CODE(bref.pack(multi_ns_pmax_r13_present, 1)); - if (phy_layer_params_rel13_r15_present) { - HANDLE_CODE(phy_layer_params_rel13_r15.pack(bref)); - } - if (phy_layer_params_rel14_r15_present) { - HANDLE_CODE(phy_layer_params_rel14_r15.pack(bref)); - } - if (phy_layer_params_v1530_present) { - HANDLE_CODE(phy_layer_params_v1530.pack(bref)); - } + HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_r13, 1, 64)); return SRSASN_SUCCESS; } -SRSASN_CODE tdd_ue_cap_nb_r15_s::unpack(cbit_ref& bref) +SRSASN_CODE rf_params_nb_r13_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ue_category_nb_r15_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_rel13_r15_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_rel14_r15_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_v1530_present, 1)); + HANDLE_CODE(bref.unpack(multi_ns_pmax_r13_present, 1)); - if (phy_layer_params_rel13_r15_present) { - HANDLE_CODE(phy_layer_params_rel13_r15.unpack(bref)); - } - if (phy_layer_params_rel14_r15_present) { - HANDLE_CODE(phy_layer_params_rel14_r15.unpack(bref)); - } - if (phy_layer_params_v1530_present) { - HANDLE_CODE(phy_layer_params_v1530.unpack(bref)); - } + HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_r13, bref, 1, 64)); return SRSASN_SUCCESS; } -void tdd_ue_cap_nb_r15_s::to_json(json_writer& j) const +void rf_params_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - if (ue_category_nb_r15_present) { - j.write_str("ue-Category-NB-r15", "nb2"); - } - if (phy_layer_params_rel13_r15_present) { - j.write_fieldname("phyLayerParametersRel13-r15"); - phy_layer_params_rel13_r15.to_json(j); - } - if (phy_layer_params_rel14_r15_present) { - j.write_fieldname("phyLayerParametersRel14-r15"); - phy_layer_params_rel14_r15.to_json(j); + j.start_array("supportedBandList-r13"); + for (const auto& e1 : supported_band_list_r13) { + e1.to_json(j); } - if (phy_layer_params_v1530_present) { - j.write_fieldname("phyLayerParameters-v1530"); - phy_layer_params_v1530.to_json(j); + j.end_array(); + if (multi_ns_pmax_r13_present) { + j.write_str("multiNS-Pmax-r13", "supported"); } j.end_obj(); } -// UE-Capability-NB-v1530-IEs ::= SEQUENCE -SRSASN_CODE ue_cap_nb_v1530_ies_s::pack(bit_ref& bref) const +// HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_nb_v1380_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(early_data_up_r15_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_v1530_present, 1)); - HANDLE_CODE(bref.pack(tdd_ue_cap_r15_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(rlc_params_r15.pack(bref)); - HANDLE_CODE(mac_params_v1530.pack(bref)); - if (phy_layer_params_v1530_present) { - HANDLE_CODE(phy_layer_params_v1530.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } - if (tdd_ue_cap_r15_present) { - HANDLE_CODE(tdd_ue_cap_r15.pack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ue_cap_nb_v1530_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_prep_info_nb_v1380_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(early_data_up_r15_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_v1530_present, 1)); - HANDLE_CODE(bref.unpack(tdd_ue_cap_r15_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(rlc_params_r15.unpack(bref)); - HANDLE_CODE(mac_params_v1530.unpack(bref)); - if (phy_layer_params_v1530_present) { - HANDLE_CODE(phy_layer_params_v1530.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - if (tdd_ue_cap_r15_present) { - HANDLE_CODE(tdd_ue_cap_r15.unpack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void ue_cap_nb_v1530_ies_s::to_json(json_writer& j) const +void ho_prep_info_nb_v1380_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (early_data_up_r15_present) { - j.write_str("earlyData-UP-r15", "supported"); - } - j.write_fieldname("rlc-Parameters-r15"); - rlc_params_r15.to_json(j); - j.write_fieldname("mac-Parameters-v1530"); - mac_params_v1530.to_json(j); - if (phy_layer_params_v1530_present) { - j.write_fieldname("phyLayerParameters-v1530"); - phy_layer_params_v1530.to_json(j); - } - if (tdd_ue_cap_r15_present) { - j.write_fieldname("tdd-UE-Capability-r15"); - tdd_ue_cap_r15.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// PhyLayerParameters-NB-v1440 ::= SEQUENCE -SRSASN_CODE phy_layer_params_nb_v1440_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(interference_randomisation_r14_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE phy_layer_params_nb_v1440_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(interference_randomisation_r14_present, 1)); - - return SRSASN_SUCCESS; -} -void phy_layer_params_nb_v1440_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (interference_randomisation_r14_present) { - j.write_str("interferenceRandomisation-r14", "supported"); + non_crit_ext.to_json(j); } j.end_obj(); } -// UE-Capability-NB-v14x0-IEs ::= SEQUENCE -SRSASN_CODE ue_cap_nb_v14x0_ies_s::pack(bit_ref& bref) const +// RRM-Config-NB ::= SEQUENCE +SRSASN_CODE rrm_cfg_nb_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ue_inactive_time_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (ue_inactive_time_present) { + HANDLE_CODE(ue_inactive_time.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ue_cap_nb_v14x0_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrm_cfg_nb_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ue_inactive_time_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (ue_inactive_time_present) { + HANDLE_CODE(ue_inactive_time.unpack(bref)); } return SRSASN_SUCCESS; } -void ue_cap_nb_v14x0_ies_s::to_json(json_writer& j) const +void rrm_cfg_nb_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + if (ue_inactive_time_present) { + j.write_str("ue-InactiveTime", ue_inactive_time.to_string()); } j.end_obj(); } -// MAC-Parameters-NB-r14 ::= SEQUENCE -SRSASN_CODE mac_params_nb_r14_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(data_inact_mon_r14_present, 1)); - HANDLE_CODE(bref.pack(rai_support_r14_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE mac_params_nb_r14_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(data_inact_mon_r14_present, 1)); - HANDLE_CODE(bref.unpack(rai_support_r14_present, 1)); - - return SRSASN_SUCCESS; -} -void mac_params_nb_r14_s::to_json(json_writer& j) const +std::string rrm_cfg_nb_s::ue_inactive_time_opts::to_string() const { - j.start_obj(); - if (data_inact_mon_r14_present) { - j.write_str("dataInactMon-r14", "supported"); - } - if (rai_support_r14_present) { - j.write_str("rai-Support-r14", "supported"); - } - j.end_obj(); + static const char* options[] = { + "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s25", "s30", + "s40", "s50", "min1", "min1s20", "min1s40", "min2", "min2s30", "min3", "min3s30", "min4", + "min5", "min6", "min7", "min8", "min9", "min10", "min12", "min14", "min17", "min20", + "min24", "min28", "min33", "min38", "min44", "min50", "hr1", "hr1min30", "hr2", "hr2min30", + "hr3", "hr3min30", "hr4", "hr5", "hr6", "hr8", "hr10", "hr13", "hr16", "hr20", + "day1", "day1hr12", "day2", "day2hr12", "day3", "day4", "day5", "day7", "day10", "day14", + "day19", "day24", "day30", "dayMoreThan30"}; + return convert_enum_idx(options, 64, value, "rrm_cfg_nb_s::ue_inactive_time_e_"); } -// RF-Parameters-NB-v1430 ::= SEQUENCE -SRSASN_CODE rf_params_nb_v1430_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(pwr_class_nb_minus14dbm_r14_present, 1)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rf_params_nb_v1430_s::unpack(cbit_ref& bref) +// UE-Capability-NB-r13 ::= SEQUENCE +SRSASN_CODE ue_cap_nb_r13_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.unpack(pwr_class_nb_minus14dbm_r14_present, 1)); + HANDLE_CODE(bref.pack(ue_category_nb_r13_present, 1)); + HANDLE_CODE(bref.pack(multiple_drb_r13_present, 1)); + HANDLE_CODE(bref.pack(pdcp_params_r13_present, 1)); + HANDLE_CODE(bref.pack(dummy_present, 1)); - return SRSASN_SUCCESS; -} -void rf_params_nb_v1430_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (pwr_class_nb_minus14dbm_r14_present) { - j.write_str("powerClassNB-14dBm-r14", "supported"); + HANDLE_CODE(access_stratum_release_r13.pack(bref)); + if (pdcp_params_r13_present) { + HANDLE_CODE(pdcp_params_r13.pack(bref)); } - j.end_obj(); -} - -// SupportedBand-NB-r13 ::= SEQUENCE -SRSASN_CODE supported_band_nb_r13_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(pwr_class_nb_minus20dbm_r13_present, 1)); - - HANDLE_CODE(pack_integer(bref, band_r13, (uint16_t)1u, (uint16_t)256u)); + HANDLE_CODE(phy_layer_params_r13.pack(bref)); + HANDLE_CODE(rf_params_r13.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE supported_band_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_cap_nb_r13_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(pwr_class_nb_minus20dbm_r13_present, 1)); + HANDLE_CODE(bref.unpack(ue_category_nb_r13_present, 1)); + HANDLE_CODE(bref.unpack(multiple_drb_r13_present, 1)); + HANDLE_CODE(bref.unpack(pdcp_params_r13_present, 1)); + HANDLE_CODE(bref.unpack(dummy_present, 1)); - HANDLE_CODE(unpack_integer(band_r13, bref, (uint16_t)1u, (uint16_t)256u)); + HANDLE_CODE(access_stratum_release_r13.unpack(bref)); + if (pdcp_params_r13_present) { + HANDLE_CODE(pdcp_params_r13.unpack(bref)); + } + HANDLE_CODE(phy_layer_params_r13.unpack(bref)); + HANDLE_CODE(rf_params_r13.unpack(bref)); return SRSASN_SUCCESS; } -void supported_band_nb_r13_s::to_json(json_writer& j) const +void ue_cap_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("band-r13", band_r13); - if (pwr_class_nb_minus20dbm_r13_present) { - j.write_str("powerClassNB-20dBm-r13", "supported"); + j.write_str("accessStratumRelease-r13", access_stratum_release_r13.to_string()); + if (ue_category_nb_r13_present) { + j.write_str("ue-Category-NB-r13", "nb1"); + } + if (multiple_drb_r13_present) { + j.write_str("multipleDRB-r13", "supported"); + } + if (pdcp_params_r13_present) { + j.write_fieldname("pdcp-Parameters-r13"); + pdcp_params_r13.to_json(j); + } + j.write_fieldname("phyLayerParameters-r13"); + phy_layer_params_r13.to_json(j); + j.write_fieldname("rf-Parameters-r13"); + rf_params_r13.to_json(j); + if (dummy_present) { + j.write_fieldname("dummy"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -// UE-Capability-NB-v1440-IEs ::= SEQUENCE -SRSASN_CODE ue_cap_nb_v1440_ies_s::pack(bit_ref& bref) const +// HandoverPreparationInformation-NB-IEs ::= SEQUENCE +SRSASN_CODE ho_prep_info_nb_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(phy_layer_params_v1440_present, 1)); + HANDLE_CODE(bref.pack(rrm_cfg_r13_present, 1)); + HANDLE_CODE(bref.pack(as_context_r13_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - if (phy_layer_params_v1440_present) { - HANDLE_CODE(phy_layer_params_v1440.pack(bref)); + HANDLE_CODE(ue_radio_access_cap_info_r13.pack(bref)); + HANDLE_CODE(as_cfg_r13.pack(bref)); + if (rrm_cfg_r13_present) { + HANDLE_CODE(rrm_cfg_r13.pack(bref)); + } + if (as_context_r13_present) { + HANDLE_CODE(as_context_r13.pack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.pack(bref)); @@ -15707,13 +14899,19 @@ SRSASN_CODE ue_cap_nb_v1440_ies_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE ue_cap_nb_v1440_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE ho_prep_info_nb_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(phy_layer_params_v1440_present, 1)); + HANDLE_CODE(bref.unpack(rrm_cfg_r13_present, 1)); + HANDLE_CODE(bref.unpack(as_context_r13_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - if (phy_layer_params_v1440_present) { - HANDLE_CODE(phy_layer_params_v1440.unpack(bref)); + HANDLE_CODE(ue_radio_access_cap_info_r13.unpack(bref)); + HANDLE_CODE(as_cfg_r13.unpack(bref)); + if (rrm_cfg_r13_present) { + HANDLE_CODE(rrm_cfg_r13.unpack(bref)); + } + if (as_context_r13_present) { + HANDLE_CODE(as_context_r13.unpack(bref)); } if (non_crit_ext_present) { HANDLE_CODE(non_crit_ext.unpack(bref)); @@ -15721,12 +14919,20 @@ SRSASN_CODE ue_cap_nb_v1440_ies_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void ue_cap_nb_v1440_ies_s::to_json(json_writer& j) const +void ho_prep_info_nb_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (phy_layer_params_v1440_present) { - j.write_fieldname("phyLayerParameters-v1440"); - phy_layer_params_v1440.to_json(j); + j.write_fieldname("ue-RadioAccessCapabilityInfo-r13"); + ue_radio_access_cap_info_r13.to_json(j); + j.write_fieldname("as-Config-r13"); + as_cfg_r13.to_json(j); + if (rrm_cfg_r13_present) { + j.write_fieldname("rrm-Config-r13"); + rrm_cfg_r13.to_json(j); + } + if (as_context_r13_present) { + j.write_fieldname("as-Context-r13"); + as_context_r13.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); @@ -15735,1111 +14941,1163 @@ void ue_cap_nb_v1440_ies_s::to_json(json_writer& j) const j.end_obj(); } -// UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE -SRSASN_CODE ue_cap_nb_ext_r14_ies_s::pack(bit_ref& bref) const +// HandoverPreparationInformation-NB ::= SEQUENCE +SRSASN_CODE ho_prep_info_nb_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ue_category_nb_r14_present, 1)); - HANDLE_CODE(bref.pack(mac_params_r14_present, 1)); - HANDLE_CODE(bref.pack(phy_layer_params_v1430_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(crit_exts.pack(bref)); - if (mac_params_r14_present) { - HANDLE_CODE(mac_params_r14.pack(bref)); - } - if (phy_layer_params_v1430_present) { - HANDLE_CODE(phy_layer_params_v1430.pack(bref)); - } - HANDLE_CODE(rf_params_v1430.pack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_nb_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ue_cap_nb_ext_r14_ies_s::unpack(cbit_ref& bref) +void ho_prep_info_nb_s::to_json(json_writer& j) const { - HANDLE_CODE(bref.unpack(ue_category_nb_r14_present, 1)); - HANDLE_CODE(bref.unpack(mac_params_r14_present, 1)); - HANDLE_CODE(bref.unpack(phy_layer_params_v1430_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} - if (mac_params_r14_present) { - HANDLE_CODE(mac_params_r14.unpack(bref)); +void ho_prep_info_nb_s::crit_exts_c_::set(types::options e) +{ + type_ = e; +} +void ho_prep_info_nb_s::crit_exts_c_::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); } - if (phy_layer_params_v1430_present) { - HANDLE_CODE(phy_layer_params_v1430.unpack(bref)); + j.end_obj(); +} +SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } - HANDLE_CODE(rf_params_v1430.unpack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + return SRSASN_SUCCESS; +} +SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::c1: + HANDLE_CODE(c.unpack(bref)); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void ue_cap_nb_ext_r14_ies_s::to_json(json_writer& j) const + +void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) +{ + type_ = e; +} +void ho_prep_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const { j.start_obj(); - if (ue_category_nb_r14_present) { - j.write_str("ue-Category-NB-r14", "nb2"); - } - if (mac_params_r14_present) { - j.write_fieldname("mac-Parameters-r14"); - mac_params_r14.to_json(j); - } - if (phy_layer_params_v1430_present) { - j.write_fieldname("phyLayerParameters-v1430"); - phy_layer_params_v1430.to_json(j); - } - j.write_fieldname("rf-Parameters-v1430"); - rf_params_v1430.to_json(j); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + switch (type_) { + case types::ho_prep_info_r13: + j.write_fieldname("handoverPreparationInformation-r13"); + c.to_json(j); + break; + case types::spare3: + break; + case types::spare2: + break; + case types::spare1: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); } j.end_obj(); } - -// AccessStratumRelease-NB-r13 ::= ENUMERATED -std::string access_stratum_release_nb_r13_opts::to_string() const +SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const { - static const char* options[] = {"rel13", "rel14", "rel15", "spare5", "spare4", "spare3", "spare2", "spare1"}; - return convert_enum_idx(options, 8, value, "access_stratum_release_nb_r13_e"); + type_.pack(bref); + switch (type_) { + case types::ho_prep_info_r13: + HANDLE_CODE(c.pack(bref)); + break; + case types::spare3: + break; + case types::spare2: + break; + case types::spare1: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; } -uint8_t access_stratum_release_nb_r13_opts::to_number() const +SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) { - static const uint8_t options[] = {13, 14, 15}; - return map_enum_number(options, 3, value, "access_stratum_release_nb_r13_e"); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::ho_prep_info_r13: + HANDLE_CODE(c.unpack(bref)); + break; + case types::spare3: + break; + case types::spare2: + break; + case types::spare1: + break; + default: + log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; } -// HandoverPreparationInformation-NB-Ext-r14-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_nb_ext_r14_ies_s::pack(bit_ref& bref) const +std::string ho_prep_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const { - HANDLE_CODE(bref.pack(ue_radio_access_cap_info_ext_r14_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + static const char* options[] = {"handoverPreparationInformation-r13", "spare3", "spare2", "spare1"}; + return convert_enum_idx(options, 4, value, "ho_prep_info_nb_s::crit_exts_c_::c1_c_::types"); +} - if (ue_radio_access_cap_info_ext_r14_present) { - HANDLE_CODE(ue_radio_access_cap_info_ext_r14.pack(bref)); - } +// MeasResultServCell-NB-r14 ::= SEQUENCE +SRSASN_CODE meas_result_serv_cell_nb_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, nrsrp_result_r14, (uint8_t)0u, (uint8_t)113u)); + HANDLE_CODE(pack_integer(bref, nrsrq_result_r14, (int8_t)-30, (int8_t)46)); return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_ext_r14_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE meas_result_serv_cell_nb_r14_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(ue_radio_access_cap_info_ext_r14_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (ue_radio_access_cap_info_ext_r14_present) { - HANDLE_CODE(ue_radio_access_cap_info_ext_r14.unpack(bref)); - } + HANDLE_CODE(unpack_integer(nrsrp_result_r14, bref, (uint8_t)0u, (uint8_t)113u)); + HANDLE_CODE(unpack_integer(nrsrq_result_r14, bref, (int8_t)-30, (int8_t)46)); return SRSASN_SUCCESS; } -void ho_prep_info_nb_ext_r14_ies_s::to_json(json_writer& j) const +void meas_result_serv_cell_nb_r14_s::to_json(json_writer& j) const { j.start_obj(); - if (ue_radio_access_cap_info_ext_r14_present) { - j.write_str("ue-RadioAccessCapabilityInfoExt-r14", ue_radio_access_cap_info_ext_r14.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } + j.write_int("nrsrpResult-r14", nrsrp_result_r14); + j.write_int("nrsrqResult-r14", nrsrq_result_r14); j.end_obj(); } -// PDCP-Parameters-NB-r13 ::= SEQUENCE -SRSASN_CODE pdcp_params_nb_r13_s::pack(bit_ref& bref) const +// PagingRecord-NB-r13 ::= SEQUENCE +SRSASN_CODE paging_record_nb_r13_s::pack(bit_ref& bref) const { bref.pack(ext, 1); - HANDLE_CODE(bref.pack(max_num_rohc_context_sessions_r13_present, 1)); - - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0002, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0003, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0004, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0006, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0102, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0103, 1)); - HANDLE_CODE(bref.pack(supported_rohc_profiles_r13.profile0x0104, 1)); - if (max_num_rohc_context_sessions_r13_present) { - HANDLE_CODE(max_num_rohc_context_sessions_r13.pack(bref)); - } + HANDLE_CODE(ue_id_r13.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE pdcp_params_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE paging_record_nb_r13_s::unpack(cbit_ref& bref) { bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(max_num_rohc_context_sessions_r13_present, 1)); - - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0002, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0003, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0004, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0006, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0102, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0103, 1)); - HANDLE_CODE(bref.unpack(supported_rohc_profiles_r13.profile0x0104, 1)); - if (max_num_rohc_context_sessions_r13_present) { - HANDLE_CODE(max_num_rohc_context_sessions_r13.unpack(bref)); - } + HANDLE_CODE(ue_id_r13.unpack(bref)); return SRSASN_SUCCESS; } -void pdcp_params_nb_r13_s::to_json(json_writer& j) const +void paging_record_nb_r13_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("supportedROHC-Profiles-r13"); - j.start_obj(); - j.write_bool("profile0x0002", supported_rohc_profiles_r13.profile0x0002); - j.write_bool("profile0x0003", supported_rohc_profiles_r13.profile0x0003); - j.write_bool("profile0x0004", supported_rohc_profiles_r13.profile0x0004); - j.write_bool("profile0x0006", supported_rohc_profiles_r13.profile0x0006); - j.write_bool("profile0x0102", supported_rohc_profiles_r13.profile0x0102); - j.write_bool("profile0x0103", supported_rohc_profiles_r13.profile0x0103); - j.write_bool("profile0x0104", supported_rohc_profiles_r13.profile0x0104); - j.end_obj(); - if (max_num_rohc_context_sessions_r13_present) { - j.write_str("maxNumberROHC-ContextSessions-r13", max_num_rohc_context_sessions_r13.to_string()); - } + j.write_fieldname("ue-Identity-r13"); + ue_id_r13.to_json(j); j.end_obj(); } -std::string pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_string() const -{ - static const char* options[] = {"cs2", "cs4", "cs8", "cs12"}; - return convert_enum_idx(options, 4, value, "pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_e_"); -} -uint8_t pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_opts::to_number() const -{ - static const uint8_t options[] = {2, 4, 8, 12}; - return map_enum_number(options, 4, value, "pdcp_params_nb_r13_s::max_num_rohc_context_sessions_r13_e_"); -} - -// RF-Parameters-NB-r13 ::= SEQUENCE -SRSASN_CODE rf_params_nb_r13_s::pack(bit_ref& bref) const +// Paging-NB ::= SEQUENCE +SRSASN_CODE paging_nb_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(multi_ns_pmax_r13_present, 1)); + HANDLE_CODE(bref.pack(paging_record_list_r13_present, 1)); + HANDLE_CODE(bref.pack(sys_info_mod_r13_present, 1)); + HANDLE_CODE(bref.pack(sys_info_mod_e_drx_r13_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, supported_band_list_r13, 1, 64)); + if (paging_record_list_r13_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, paging_record_list_r13, 1, 16)); + } return SRSASN_SUCCESS; } -SRSASN_CODE rf_params_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE paging_nb_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(multi_ns_pmax_r13_present, 1)); + HANDLE_CODE(bref.unpack(paging_record_list_r13_present, 1)); + HANDLE_CODE(bref.unpack(sys_info_mod_r13_present, 1)); + HANDLE_CODE(bref.unpack(sys_info_mod_e_drx_r13_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(supported_band_list_r13, bref, 1, 64)); + if (paging_record_list_r13_present) { + HANDLE_CODE(unpack_dyn_seq_of(paging_record_list_r13, bref, 1, 16)); + } return SRSASN_SUCCESS; } -void rf_params_nb_r13_s::to_json(json_writer& j) const +void paging_nb_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("supportedBandList-r13"); - for (const auto& e1 : supported_band_list_r13) { - e1.to_json(j); + if (paging_record_list_r13_present) { + j.start_array("pagingRecordList-r13"); + for (const auto& e1 : paging_record_list_r13) { + e1.to_json(j); + } + j.end_array(); } - j.end_array(); - if (multi_ns_pmax_r13_present) { - j.write_str("multiNS-Pmax-r13", "supported"); + if (sys_info_mod_r13_present) { + j.write_str("systemInfoModification-r13", "true"); + } + if (sys_info_mod_e_drx_r13_present) { + j.write_str("systemInfoModification-eDRX-r13", "true"); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -// HandoverPreparationInformation-NB-v1380-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_nb_v1380_ies_s::pack(bit_ref& bref) const +// PCCH-MessageType-NB ::= CHOICE +void pcch_msg_type_nb_c::set(types::options e) { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + type_ = e; +} +void pcch_msg_type_nb_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); + break; + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + j.end_obj(); +} +SRSASN_CODE pcch_msg_type_nb_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); + break; + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + return SRSASN_ERROR_ENCODE_FAIL; } - return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_v1380_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE pcch_msg_type_nb_c::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::c1: + HANDLE_CODE(c.unpack(bref)); + break; + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + return SRSASN_ERROR_DECODE_FAIL; } - return SRSASN_SUCCESS; } -void ho_prep_info_nb_v1380_ies_s::to_json(json_writer& j) const + +void pcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } + j.write_fieldname("paging-r13"); + c.to_json(j); j.end_obj(); } +SRSASN_CODE pcch_msg_type_nb_c::c1_c_::pack(bit_ref& bref) const +{ + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; +} +SRSASN_CODE pcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) +{ + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; +} -// RRM-Config-NB ::= SEQUENCE -SRSASN_CODE rrm_cfg_nb_s::pack(bit_ref& bref) const +std::string pcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { - bref.pack(ext, 1); - HANDLE_CODE(bref.pack(ue_inactive_time_present, 1)); + static const char* options[] = {"paging-r13"}; + return convert_enum_idx(options, 1, value, "pcch_msg_type_nb_c::c1_c_::types"); +} - if (ue_inactive_time_present) { - HANDLE_CODE(ue_inactive_time.pack(bref)); - } +std::string pcch_msg_type_nb_c::types_opts::to_string() const +{ + static const char* options[] = {"c1", "messageClassExtension"}; + return convert_enum_idx(options, 2, value, "pcch_msg_type_nb_c::types"); +} +uint8_t pcch_msg_type_nb_c::types_opts::to_number() const +{ + static const uint8_t options[] = {1}; + return map_enum_number(options, 1, value, "pcch_msg_type_nb_c::types"); +} + +// PCCH-Message-NB ::= SEQUENCE +SRSASN_CODE pcch_msg_nb_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(msg.pack(bref)); + + bref.align_bytes_zero(); return SRSASN_SUCCESS; } -SRSASN_CODE rrm_cfg_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE pcch_msg_nb_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); - HANDLE_CODE(bref.unpack(ue_inactive_time_present, 1)); + HANDLE_CODE(msg.unpack(bref)); - if (ue_inactive_time_present) { - HANDLE_CODE(ue_inactive_time.unpack(bref)); - } + bref.align_bytes(); return SRSASN_SUCCESS; } -void rrm_cfg_nb_s::to_json(json_writer& j) const +void pcch_msg_nb_s::to_json(json_writer& j) const { + j.start_array(); j.start_obj(); - if (ue_inactive_time_present) { - j.write_str("ue-InactiveTime", ue_inactive_time.to_string()); - } + j.start_obj("PCCH-Message-NB"); + j.write_fieldname("message"); + msg.to_json(j); j.end_obj(); + j.end_obj(); + j.end_array(); } -std::string rrm_cfg_nb_s::ue_inactive_time_opts::to_string() const -{ - static const char* options[] = { - "s1", "s2", "s3", "s5", "s7", "s10", "s15", "s20", "s25", "s30", - "s40", "s50", "min1", "min1s20", "min1s40", "min2", "min2s30", "min3", "min3s30", "min4", - "min5", "min6", "min7", "min8", "min9", "min10", "min12", "min14", "min17", "min20", - "min24", "min28", "min33", "min38", "min44", "min50", "hr1", "hr1min30", "hr2", "hr2min30", - "hr3", "hr3min30", "hr4", "hr5", "hr6", "hr8", "hr10", "hr13", "hr16", "hr20", - "day1", "day1hr12", "day2", "day2hr12", "day3", "day4", "day5", "day7", "day10", "day14", - "day19", "day24", "day30", "dayMoreThan30"}; - return convert_enum_idx(options, 64, value, "rrm_cfg_nb_s::ue_inactive_time_e_"); -} - -// UE-Capability-NB-r13 ::= SEQUENCE -SRSASN_CODE ue_cap_nb_r13_s::pack(bit_ref& bref) const +// PCI-ARFCN-NB-r14 ::= SEQUENCE +SRSASN_CODE pci_arfcn_nb_r14_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(ue_category_nb_r13_present, 1)); - HANDLE_CODE(bref.pack(multiple_drb_r13_present, 1)); - HANDLE_CODE(bref.pack(pdcp_params_r13_present, 1)); - HANDLE_CODE(bref.pack(dummy_present, 1)); + HANDLE_CODE(bref.pack(carrier_freq_r14_present, 1)); - HANDLE_CODE(access_stratum_release_r13.pack(bref)); - if (pdcp_params_r13_present) { - HANDLE_CODE(pdcp_params_r13.pack(bref)); + HANDLE_CODE(pack_integer(bref, pci_r14, (uint16_t)0u, (uint16_t)503u)); + if (carrier_freq_r14_present) { + HANDLE_CODE(carrier_freq_r14.pack(bref)); } - HANDLE_CODE(phy_layer_params_r13.pack(bref)); - HANDLE_CODE(rf_params_r13.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ue_cap_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE pci_arfcn_nb_r14_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(ue_category_nb_r13_present, 1)); - HANDLE_CODE(bref.unpack(multiple_drb_r13_present, 1)); - HANDLE_CODE(bref.unpack(pdcp_params_r13_present, 1)); - HANDLE_CODE(bref.unpack(dummy_present, 1)); + HANDLE_CODE(bref.unpack(carrier_freq_r14_present, 1)); - HANDLE_CODE(access_stratum_release_r13.unpack(bref)); - if (pdcp_params_r13_present) { - HANDLE_CODE(pdcp_params_r13.unpack(bref)); + HANDLE_CODE(unpack_integer(pci_r14, bref, (uint16_t)0u, (uint16_t)503u)); + if (carrier_freq_r14_present) { + HANDLE_CODE(carrier_freq_r14.unpack(bref)); } - HANDLE_CODE(phy_layer_params_r13.unpack(bref)); - HANDLE_CODE(rf_params_r13.unpack(bref)); return SRSASN_SUCCESS; } -void ue_cap_nb_r13_s::to_json(json_writer& j) const +void pci_arfcn_nb_r14_s::to_json(json_writer& j) const { j.start_obj(); - j.write_str("accessStratumRelease-r13", access_stratum_release_r13.to_string()); - if (ue_category_nb_r13_present) { - j.write_str("ue-Category-NB-r13", "nb1"); - } - if (multiple_drb_r13_present) { - j.write_str("multipleDRB-r13", "supported"); - } - if (pdcp_params_r13_present) { - j.write_fieldname("pdcp-Parameters-r13"); - pdcp_params_r13.to_json(j); - } - j.write_fieldname("phyLayerParameters-r13"); - phy_layer_params_r13.to_json(j); - j.write_fieldname("rf-Parameters-r13"); - rf_params_r13.to_json(j); - if (dummy_present) { - j.write_fieldname("dummy"); - j.start_obj(); - j.end_obj(); + j.write_int("physCellId-r14", pci_r14); + if (carrier_freq_r14_present) { + j.write_fieldname("carrierFreq-r14"); + carrier_freq_r14.to_json(j); } j.end_obj(); } -// HandoverPreparationInformation-NB-IEs ::= SEQUENCE -SRSASN_CODE ho_prep_info_nb_ies_s::pack(bit_ref& bref) const +// RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_complete_nb_r13_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(rrm_cfg_r13_present, 1)); - HANDLE_CODE(bref.pack(as_context_r13_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(ue_radio_access_cap_info_r13.pack(bref)); - HANDLE_CODE(as_cfg_r13.pack(bref)); - if (rrm_cfg_r13_present) { - HANDLE_CODE(rrm_cfg_r13.pack(bref)); - } - if (as_context_r13_present) { - HANDLE_CODE(as_context_r13.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_recfg_complete_nb_r13_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(rrm_cfg_r13_present, 1)); - HANDLE_CODE(bref.unpack(as_context_r13_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(ue_radio_access_cap_info_r13.unpack(bref)); - HANDLE_CODE(as_cfg_r13.unpack(bref)); - if (rrm_cfg_r13_present) { - HANDLE_CODE(rrm_cfg_r13.unpack(bref)); - } - if (as_context_r13_present) { - HANDLE_CODE(as_context_r13.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } return SRSASN_SUCCESS; } -void ho_prep_info_nb_ies_s::to_json(json_writer& j) const +void rrc_conn_recfg_complete_nb_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("ue-RadioAccessCapabilityInfo-r13"); - ue_radio_access_cap_info_r13.to_json(j); - j.write_fieldname("as-Config-r13"); - as_cfg_r13.to_json(j); - if (rrm_cfg_r13_present) { - j.write_fieldname("rrm-Config-r13"); - rrm_cfg_r13.to_json(j); - } - if (as_context_r13_present) { - j.write_fieldname("as-Context-r13"); - as_context_r13.to_json(j); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -// HandoverPreparationInformation-NB ::= SEQUENCE -SRSASN_CODE ho_prep_info_nb_s::pack(bit_ref& bref) const +// RRCConnectionReconfigurationComplete-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_recfg_complete_nb_s::pack(bit_ref& bref) const { + HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_recfg_complete_nb_s::unpack(cbit_ref& bref) { + HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } -void ho_prep_info_nb_s::to_json(json_writer& j) const +void rrc_conn_recfg_complete_nb_s::to_json(json_writer& j) const { j.start_obj(); + j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } -void ho_prep_info_nb_s::crit_exts_c_::destroy_() +void rrc_conn_recfg_complete_nb_s::crit_exts_c_::set(types::options e) { - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } + type_ = e; } -void ho_prep_info_nb_s::crit_exts_c_::set(types::options e) +void rrc_conn_recfg_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { - destroy_(); - type_ = e; + j.start_obj(); switch (type_) { - case types::c1: - c.init(); + case types::rrc_conn_recfg_complete_r13: + j.write_fieldname("rrcConnectionReconfigurationComplete-r13"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); } + j.end_obj(); } -ho_prep_info_nb_s::crit_exts_c_::crit_exts_c_(const ho_prep_info_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_recfg_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { - case types::c1: - c.init(other.c.get()); + case types::rrc_conn_recfg_complete_r13: + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -ho_prep_info_nb_s::crit_exts_c_& -ho_prep_info_nb_s::crit_exts_c_::operator=(const ho_prep_info_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_recfg_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::c1: - c.set(other.c.get()); + case types::rrc_conn_recfg_complete_r13: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; +} - return *this; +std::string rrc_conn_recfg_complete_nb_s::crit_exts_c_::types_opts::to_string() const +{ + static const char* options[] = {"rrcConnectionReconfigurationComplete-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_recfg_complete_nb_s::crit_exts_c_::types"); } -void ho_prep_info_nb_s::crit_exts_c_::to_json(json_writer& j) const + +// RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(meas_result_serv_cell_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (meas_result_serv_cell_r14_present) { + HANDLE_CODE(meas_result_serv_cell_r14.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(meas_result_serv_cell_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (meas_result_serv_cell_r14_present) { + HANDLE_CODE(meas_result_serv_cell_r14.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void rrc_conn_reest_complete_nb_v1470_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); + if (meas_result_serv_cell_r14_present) { + j.write_fieldname("measResultServCell-r14"); + meas_result_serv_cell_r14.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } j.end_obj(); } -SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::pack(bit_ref& bref) const + +// RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + return SRSASN_SUCCESS; } +void rrc_conn_reest_complete_nb_r13_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); +} -void ho_prep_info_nb_s::crit_exts_c_::c1_c_::set(types::options e) +// RRCConnectionReestablishmentComplete-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_complete_nb_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); + HANDLE_CODE(crit_exts.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_reest_complete_nb_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rrc_conn_reest_complete_nb_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void rrc_conn_reest_complete_nb_s::crit_exts_c_::set(types::options e) { type_ = e; } -void ho_prep_info_nb_s::crit_exts_c_::c1_c_::to_json(json_writer& j) const +void rrc_conn_reest_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::ho_prep_info_r13: - j.write_fieldname("handoverPreparationInformation-r13"); + case types::rrc_conn_reest_complete_r13: + j.write_fieldname("rrcConnectionReestablishmentComplete-r13"); c.to_json(j); break; - case types::spare3: - break; - case types::spare2: - break; - case types::spare1: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); + log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); } j.end_obj(); } -SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::c1_c_::pack(bit_ref& bref) const +SRSASN_CODE rrc_conn_reest_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::ho_prep_info_r13: + case types::rrc_conn_reest_complete_r13: HANDLE_CODE(c.pack(bref)); break; - case types::spare3: - break; - case types::spare2: - break; - case types::spare1: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); + log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE ho_prep_info_nb_s::crit_exts_c_::c1_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_reest_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::ho_prep_info_r13: + case types::rrc_conn_reest_complete_r13: HANDLE_CODE(c.unpack(bref)); break; - case types::spare3: - break; - case types::spare2: - break; - case types::spare1: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "ho_prep_info_nb_s::crit_exts_c_::c1_c_"); + log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string ho_prep_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_string() const +std::string rrc_conn_reest_complete_nb_s::crit_exts_c_::types_opts::to_string() const { - static const char* options[] = {"handoverPreparationInformation-r13", "spare3", "spare2", "spare1"}; - return convert_enum_idx(options, 4, value, "ho_prep_info_nb_s::crit_exts_c_::c1_c_::types"); + static const char* options[] = {"rrcConnectionReestablishmentComplete-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_reest_complete_nb_s::crit_exts_c_::types"); } -// MeasResultServCell-NB-r14 ::= SEQUENCE -SRSASN_CODE meas_result_serv_cell_nb_r14_s::pack(bit_ref& bref) const +// CQI-NPDCCH-NB-r14 ::= ENUMERATED +std::string cqi_npdcch_nb_r14_opts::to_string() const { - HANDLE_CODE(pack_integer(bref, nrsrp_result_r14, (uint8_t)0u, (uint8_t)113u)); - HANDLE_CODE(pack_integer(bref, nrsrq_result_r14, (int8_t)-30, (int8_t)46)); + static const char* options[] = {"noMeasurements", + "candidateRep-A", + "candidateRep-B", + "candidateRep-C", + "candidateRep-D", + "candidateRep-E", + "candidateRep-F", + "candidateRep-G", + "candidateRep-H", + "candidateRep-I", + "candidateRep-J", + "candidateRep-K", + "candidateRep-L"}; + return convert_enum_idx(options, 13, value, "cqi_npdcch_nb_r14_e"); +} + +// CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED +std::string cqi_npdcch_short_nb_r14_opts::to_string() const +{ + static const char* options[] = {"noMeasurements", "candidateRep-1", "candidateRep-2", "candidateRep-3"}; + return convert_enum_idx(options, 4, value, "cqi_npdcch_short_nb_r14_e"); +} +int8_t cqi_npdcch_short_nb_r14_opts::to_number() const +{ + switch (value) { + case candidate_rep_minus1: + return -1; + case candidate_rep_minus2: + return -2; + case candidate_rep_minus3: + return -3; + default: + invalid_enum_number(value, "cqi_npdcch_short_nb_r14_e"); + } + return 0; +} + +// ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE +SRSASN_CODE reestab_ue_id_cp_nb_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(s_tmsi_r14.pack(bref)); + HANDLE_CODE(ul_nas_mac_r14.pack(bref)); + HANDLE_CODE(ul_nas_count_r14.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE meas_result_serv_cell_nb_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE reestab_ue_id_cp_nb_r14_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(nrsrp_result_r14, bref, (uint8_t)0u, (uint8_t)113u)); - HANDLE_CODE(unpack_integer(nrsrq_result_r14, bref, (int8_t)-30, (int8_t)46)); + HANDLE_CODE(s_tmsi_r14.unpack(bref)); + HANDLE_CODE(ul_nas_mac_r14.unpack(bref)); + HANDLE_CODE(ul_nas_count_r14.unpack(bref)); return SRSASN_SUCCESS; } -void meas_result_serv_cell_nb_r14_s::to_json(json_writer& j) const +void reestab_ue_id_cp_nb_r14_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("nrsrpResult-r14", nrsrp_result_r14); - j.write_int("nrsrqResult-r14", nrsrq_result_r14); + j.write_fieldname("s-TMSI-r14"); + s_tmsi_r14.to_json(j); + j.write_str("ul-NAS-MAC-r14", ul_nas_mac_r14.to_string()); + j.write_str("ul-NAS-Count-r14", ul_nas_count_r14.to_string()); j.end_obj(); } -// PagingRecord-NB-r13 ::= SEQUENCE -SRSASN_CODE paging_record_nb_r13_s::pack(bit_ref& bref) const +// ReestablishmentCause-NB-r13 ::= ENUMERATED +std::string reest_cause_nb_r13_opts::to_string() const +{ + static const char* options[] = {"reconfigurationFailure", "otherFailure", "spare2", "spare1"}; + return convert_enum_idx(options, 4, value, "reest_cause_nb_r13_e"); +} + +// RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_request_nb_r13_ies_s::pack(bit_ref& bref) const { - bref.pack(ext, 1); HANDLE_CODE(ue_id_r13.pack(bref)); + HANDLE_CODE(reest_cause_r13.pack(bref)); + HANDLE_CODE(cqi_npdcch_r14.pack(bref)); + HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); + HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE paging_record_nb_r13_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_reest_request_nb_r13_ies_s::unpack(cbit_ref& bref) { - bref.unpack(ext, 1); HANDLE_CODE(ue_id_r13.unpack(bref)); + HANDLE_CODE(reest_cause_r13.unpack(bref)); + HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); + HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } -void paging_record_nb_r13_s::to_json(json_writer& j) const +void rrc_conn_reest_request_nb_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); j.write_fieldname("ue-Identity-r13"); ue_id_r13.to_json(j); + j.write_str("reestablishmentCause-r13", reest_cause_r13.to_string()); + j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); + j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); + j.write_str("spare", spare.to_string()); j.end_obj(); } -// Paging-NB ::= SEQUENCE -SRSASN_CODE paging_nb_s::pack(bit_ref& bref) const +// RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_request_nb_r14_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(paging_record_list_r13_present, 1)); - HANDLE_CODE(bref.pack(sys_info_mod_r13_present, 1)); - HANDLE_CODE(bref.pack(sys_info_mod_e_drx_r13_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(ue_id_r14.pack(bref)); + HANDLE_CODE(reest_cause_r14.pack(bref)); + HANDLE_CODE(cqi_npdcch_r14.pack(bref)); + HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); + HANDLE_CODE(spare.pack(bref)); - if (paging_record_list_r13_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, paging_record_list_r13, 1, 16)); - } + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_reest_request_nb_r14_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(ue_id_r14.unpack(bref)); + HANDLE_CODE(reest_cause_r14.unpack(bref)); + HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); + HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); + HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE paging_nb_s::unpack(cbit_ref& bref) +void rrc_conn_reest_request_nb_r14_ies_s::to_json(json_writer& j) const { - HANDLE_CODE(bref.unpack(paging_record_list_r13_present, 1)); - HANDLE_CODE(bref.unpack(sys_info_mod_r13_present, 1)); - HANDLE_CODE(bref.unpack(sys_info_mod_e_drx_r13_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + j.start_obj(); + j.write_fieldname("ue-Identity-r14"); + ue_id_r14.to_json(j); + j.write_str("reestablishmentCause-r14", reest_cause_r14.to_string()); + j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); + j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); + j.write_str("spare", spare.to_string()); + j.end_obj(); +} - if (paging_record_list_r13_present) { - HANDLE_CODE(unpack_dyn_seq_of(paging_record_list_r13, bref, 1, 16)); - } +// RRCConnectionReestablishmentRequest-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_reest_request_nb_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } -void paging_nb_s::to_json(json_writer& j) const +SRSASN_CODE rrc_conn_reest_request_nb_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rrc_conn_reest_request_nb_s::to_json(json_writer& j) const { j.start_obj(); - if (paging_record_list_r13_present) { - j.start_array("pagingRecordList-r13"); - for (const auto& e1 : paging_record_list_r13) { - e1.to_json(j); - } - j.end_array(); - } - if (sys_info_mod_r13_present) { - j.write_str("systemInfoModification-r13", "true"); - } - if (sys_info_mod_e_drx_r13_present) { - j.write_str("systemInfoModification-eDRX-r13", "true"); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); j.end_obj(); } -// PCCH-MessageType-NB ::= CHOICE -void pcch_msg_type_nb_c::destroy_() +void rrc_conn_reest_request_nb_s::crit_exts_c_::destroy_() { switch (type_) { - case types::c1: - c.destroy(); + case types::rrc_conn_reest_request_r13: + c.destroy(); + break; + case types::later: + c.destroy(); break; default: break; } } -void pcch_msg_type_nb_c::set(types::options e) +void rrc_conn_reest_request_nb_s::crit_exts_c_::set(types::options e) { destroy_(); type_ = e; switch (type_) { - case types::c1: - c.init(); + case types::rrc_conn_reest_request_r13: + c.init(); break; - case types::msg_class_ext: + case types::later: + c.init(); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); } } -pcch_msg_type_nb_c::pcch_msg_type_nb_c(const pcch_msg_type_nb_c& other) +rrc_conn_reest_request_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_request_nb_s::crit_exts_c_& other) { type_ = other.type(); switch (type_) { - case types::c1: - c.init(other.c.get()); + case types::rrc_conn_reest_request_r13: + c.init(other.c.get()); break; - case types::msg_class_ext: + case types::later: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); } } -pcch_msg_type_nb_c& pcch_msg_type_nb_c::operator=(const pcch_msg_type_nb_c& other) +rrc_conn_reest_request_nb_s::crit_exts_c_& +rrc_conn_reest_request_nb_s::crit_exts_c_::operator=(const rrc_conn_reest_request_nb_s::crit_exts_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::c1: - c.set(other.c.get()); + case types::rrc_conn_reest_request_r13: + c.set(other.c.get()); break; - case types::msg_class_ext: + case types::later: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); } return *this; } -void pcch_msg_type_nb_c::to_json(json_writer& j) const +void rrc_conn_reest_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); + case types::rrc_conn_reest_request_r13: + j.write_fieldname("rrcConnectionReestablishmentRequest-r13"); + c.get().to_json(j); break; - case types::msg_class_ext: + case types::later: + j.write_fieldname("later"); + c.get().to_json(j); break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); } j.end_obj(); } -SRSASN_CODE pcch_msg_type_nb_c::pack(bit_ref& bref) const +SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); + case types::rrc_conn_reest_request_r13: + HANDLE_CODE(c.get().pack(bref)); break; - case types::msg_class_ext: + case types::later: + HANDLE_CODE(c.get().pack(bref)); break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE pcch_msg_type_nb_c::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_conn_reest_request_r13: + HANDLE_CODE(c.get().unpack(bref)); break; - case types::msg_class_ext: + case types::later: + HANDLE_CODE(c.get().unpack(bref)); break; default: - log_invalid_choice_id(type_, "pcch_msg_type_nb_c"); + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -void pcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("paging-r13"); - c.to_json(j); - j.end_obj(); -} -SRSASN_CODE pcch_msg_type_nb_c::c1_c_::pack(bit_ref& bref) const +void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::set(types::options e) { - HANDLE_CODE(c.pack(bref)); - return SRSASN_SUCCESS; + type_ = e; } -SRSASN_CODE pcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) +void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::to_json(json_writer& j) const { - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; -} - -std::string pcch_msg_type_nb_c::c1_c_::types_opts::to_string() const -{ - static const char* options[] = {"paging-r13"}; - return convert_enum_idx(options, 1, value, "pcch_msg_type_nb_c::c1_c_::types"); -} - -std::string pcch_msg_type_nb_c::types_opts::to_string() const -{ - static const char* options[] = {"c1", "messageClassExtension"}; - return convert_enum_idx(options, 2, value, "pcch_msg_type_nb_c::types"); -} -uint8_t pcch_msg_type_nb_c::types_opts::to_number() const -{ - static const uint8_t options[] = {1}; - return map_enum_number(options, 1, value, "pcch_msg_type_nb_c::types"); + j.start_obj(); + switch (type_) { + case types::rrc_conn_reest_request_r14: + j.write_fieldname("rrcConnectionReestablishmentRequest-r14"); + c.to_json(j); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + } + j.end_obj(); } - -// PCCH-Message-NB ::= SEQUENCE -SRSASN_CODE pcch_msg_nb_s::pack(bit_ref& bref) const +SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::pack(bit_ref& bref) const { - HANDLE_CODE(msg.pack(bref)); - - bref.align_bytes_zero(); - + type_.pack(bref); + switch (type_) { + case types::rrc_conn_reest_request_r14: + HANDLE_CODE(c.pack(bref)); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } return SRSASN_SUCCESS; } -SRSASN_CODE pcch_msg_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::unpack(cbit_ref& bref) { - HANDLE_CODE(msg.unpack(bref)); - - bref.align_bytes(); - + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::rrc_conn_reest_request_r14: + HANDLE_CODE(c.unpack(bref)); + break; + case types::crit_exts_future: + break; + default: + log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } return SRSASN_SUCCESS; } -void pcch_msg_nb_s::to_json(json_writer& j) const + +std::string rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types_opts::to_string() const { - j.start_array(); - j.start_obj(); - j.start_obj("PCCH-Message-NB"); - j.write_fieldname("message"); - msg.to_json(j); - j.end_obj(); - j.end_obj(); - j.end_array(); + static const char* options[] = {"rrcConnectionReestablishmentRequest-r14", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types"); } -// PCI-ARFCN-NB-r14 ::= SEQUENCE -SRSASN_CODE pci_arfcn_nb_r14_s::pack(bit_ref& bref) const +std::string rrc_conn_reest_request_nb_s::crit_exts_c_::types_opts::to_string() const { - HANDLE_CODE(bref.pack(carrier_freq_r14_present, 1)); - - HANDLE_CODE(pack_integer(bref, pci_r14, (uint16_t)0u, (uint16_t)503u)); - if (carrier_freq_r14_present) { - HANDLE_CODE(carrier_freq_r14.pack(bref)); - } - - return SRSASN_SUCCESS; + static const char* options[] = {"rrcConnectionReestablishmentRequest-r13", "later"}; + return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::types"); } -SRSASN_CODE pci_arfcn_nb_r14_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(carrier_freq_r14_present, 1)); - - HANDLE_CODE(unpack_integer(pci_r14, bref, (uint16_t)0u, (uint16_t)503u)); - if (carrier_freq_r14_present) { - HANDLE_CODE(carrier_freq_r14.unpack(bref)); - } - return SRSASN_SUCCESS; -} -void pci_arfcn_nb_r14_s::to_json(json_writer& j) const +// EstablishmentCause-NB-r13 ::= ENUMERATED +std::string establishment_cause_nb_r13_opts::to_string() const { - j.start_obj(); - j.write_int("physCellId-r14", pci_r14); - if (carrier_freq_r14_present) { - j.write_fieldname("carrierFreq-r14"); - carrier_freq_r14.to_json(j); - } - j.end_obj(); + static const char* options[] = {"mt-Access", + "mo-Signalling", + "mo-Data", + "mo-ExceptionData", + "delayTolerantAccess-v1330", + "spare3", + "spare2", + "spare1"}; + return convert_enum_idx(options, 8, value, "establishment_cause_nb_r13_e"); } -// RRCConnectionReconfigurationComplete-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_complete_nb_r13_ies_s::pack(bit_ref& bref) const +// RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_request_nb_r13_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(multi_tone_support_r13_present, 1)); + HANDLE_CODE(bref.pack(multi_carrier_support_r13_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } + HANDLE_CODE(ue_id_r13.pack(bref)); + HANDLE_CODE(establishment_cause_r13.pack(bref)); + HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); + HANDLE_CODE(cqi_npdcch_r14.pack(bref)); + HANDLE_CODE(spare.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_recfg_complete_nb_r13_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_request_nb_r13_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(multi_tone_support_r13_present, 1)); + HANDLE_CODE(bref.unpack(multi_carrier_support_r13_present, 1)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } + HANDLE_CODE(ue_id_r13.unpack(bref)); + HANDLE_CODE(establishment_cause_r13.unpack(bref)); + HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); + HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); + HANDLE_CODE(spare.unpack(bref)); return SRSASN_SUCCESS; } -void rrc_conn_recfg_complete_nb_r13_ies_s::to_json(json_writer& j) const +void rrc_conn_request_nb_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + j.write_fieldname("ue-Identity-r13"); + ue_id_r13.to_json(j); + j.write_str("establishmentCause-r13", establishment_cause_r13.to_string()); + if (multi_tone_support_r13_present) { + j.write_str("multiToneSupport-r13", "true"); } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); + if (multi_carrier_support_r13_present) { + j.write_str("multiCarrierSupport-r13", "true"); } + j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); + j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); + j.write_str("spare", spare.to_string()); j.end_obj(); } -// RRCConnectionReconfigurationComplete-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_recfg_complete_nb_s::pack(bit_ref& bref) const +// RRCConnectionRequest-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_request_nb_s::pack(bit_ref& bref) const { - HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_recfg_complete_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_request_nb_s::unpack(cbit_ref& bref) { - HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } -void rrc_conn_recfg_complete_nb_s::to_json(json_writer& j) const +void rrc_conn_request_nb_s::to_json(json_writer& j) const { j.start_obj(); - j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } -void rrc_conn_recfg_complete_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_recfg_complete_r13: - c.destroy(); - break; - default: - break; - } -} -void rrc_conn_recfg_complete_nb_s::crit_exts_c_::set(types::options e) +void rrc_conn_request_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_recfg_complete_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_recfg_complete_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_recfg_complete_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_recfg_complete_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_recfg_complete_nb_s::crit_exts_c_& -rrc_conn_recfg_complete_nb_s::crit_exts_c_::operator=(const rrc_conn_recfg_complete_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_recfg_complete_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); - } - - return *this; } -void rrc_conn_recfg_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const +void rrc_conn_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::rrc_conn_recfg_complete_r13: - j.write_fieldname("rrcConnectionReconfigurationComplete-r13"); - c.get().to_json(j); + case types::rrc_conn_request_r13: + j.write_fieldname("rrcConnectionRequest-r13"); + c.to_json(j); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); } j.end_obj(); } -SRSASN_CODE rrc_conn_recfg_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const +SRSASN_CODE rrc_conn_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::rrc_conn_recfg_complete_r13: - HANDLE_CODE(c.get().pack(bref)); + case types::rrc_conn_request_r13: + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_recfg_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::rrc_conn_recfg_complete_r13: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_conn_request_r13: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_recfg_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string rrc_conn_recfg_complete_nb_s::crit_exts_c_::types_opts::to_string() const +std::string rrc_conn_request_nb_s::crit_exts_c_::types_opts::to_string() const { - static const char* options[] = {"rrcConnectionReconfigurationComplete-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_recfg_complete_nb_s::crit_exts_c_::types"); + static const char* options[] = {"rrcConnectionRequest-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_request_nb_s::crit_exts_c_::types"); } -// RRCConnectionReestablishmentComplete-NB-v1470-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::pack(bit_ref& bref) const +// RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_complete_nb_v1470_ies_s::pack(bit_ref& bref) const { HANDLE_CODE(bref.pack(meas_result_serv_cell_r14_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); @@ -16850,7 +16108,7 @@ SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_resume_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) { HANDLE_CODE(bref.unpack(meas_result_serv_cell_r14_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); @@ -16861,7 +16119,7 @@ SRSASN_CODE rrc_conn_reest_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void rrc_conn_reest_complete_nb_v1470_ies_s::to_json(json_writer& j) const +void rrc_conn_resume_complete_nb_v1470_ies_s::to_json(json_writer& j) const { j.start_obj(); if (meas_result_serv_cell_r14_present) { @@ -16876,12 +16134,20 @@ void rrc_conn_reest_complete_nb_v1470_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RRCConnectionReestablishmentComplete-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::pack(bit_ref& bref) const +// RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_complete_nb_r13_ies_s::pack(bit_ref& bref) const { + HANDLE_CODE(bref.pack(sel_plmn_id_r13_present, 1)); + HANDLE_CODE(bref.pack(ded_info_nas_r13_present, 1)); HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + if (sel_plmn_id_r13_present) { + HANDLE_CODE(pack_integer(bref, sel_plmn_id_r13, (uint8_t)1u, (uint8_t)6u)); + } + if (ded_info_nas_r13_present) { + HANDLE_CODE(ded_info_nas_r13.pack(bref)); + } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.pack(bref)); } @@ -16891,11 +16157,19 @@ SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_resume_complete_nb_r13_ies_s::unpack(cbit_ref& bref) { + HANDLE_CODE(bref.unpack(sel_plmn_id_r13_present, 1)); + HANDLE_CODE(bref.unpack(ded_info_nas_r13_present, 1)); HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + if (sel_plmn_id_r13_present) { + HANDLE_CODE(unpack_integer(sel_plmn_id_r13, bref, (uint8_t)1u, (uint8_t)6u)); + } + if (ded_info_nas_r13_present) { + HANDLE_CODE(ded_info_nas_r13.unpack(bref)); + } if (late_non_crit_ext_present) { HANDLE_CODE(late_non_crit_ext.unpack(bref)); } @@ -16905,9 +16179,15 @@ SRSASN_CODE rrc_conn_reest_complete_nb_r13_ies_s::unpack(cbit_ref& bref) return SRSASN_SUCCESS; } -void rrc_conn_reest_complete_nb_r13_ies_s::to_json(json_writer& j) const +void rrc_conn_resume_complete_nb_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); + if (sel_plmn_id_r13_present) { + j.write_int("selectedPLMN-Identity-r13", sel_plmn_id_r13); + } + if (ded_info_nas_r13_present) { + j.write_str("dedicatedInfoNAS-r13", ded_info_nas_r13.to_string()); + } if (late_non_crit_ext_present) { j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); } @@ -16918,22 +16198,22 @@ void rrc_conn_reest_complete_nb_r13_ies_s::to_json(json_writer& j) const j.end_obj(); } -// RRCConnectionReestablishmentComplete-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_complete_nb_s::pack(bit_ref& bref) const +// RRCConnectionResumeComplete-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_complete_nb_s::pack(bit_ref& bref) const { HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_complete_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_resume_complete_nb_s::unpack(cbit_ref& bref) { HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } -void rrc_conn_reest_complete_nb_s::to_json(json_writer& j) const +void rrc_conn_resume_complete_nb_s::to_json(json_writer& j) const { j.start_obj(); j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); @@ -16942,1922 +16222,848 @@ void rrc_conn_reest_complete_nb_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_conn_reest_complete_nb_s::crit_exts_c_::destroy_() +void rrc_conn_resume_complete_nb_s::crit_exts_c_::set(types::options e) { - switch (type_) { - case types::rrc_conn_reest_complete_r13: - c.destroy(); - break; - default: - break; - } + type_ = e; } -void rrc_conn_reest_complete_nb_s::crit_exts_c_::set(types::options e) +void rrc_conn_resume_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { - destroy_(); - type_ = e; + j.start_obj(); switch (type_) { - case types::rrc_conn_reest_complete_r13: - c.init(); + case types::rrc_conn_resume_complete_r13: + j.write_fieldname("rrcConnectionResumeComplete-r13"); + c.to_json(j); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); } + j.end_obj(); } -rrc_conn_reest_complete_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_complete_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_resume_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { - case types::rrc_conn_reest_complete_r13: - c.init(other.c.get()); + case types::rrc_conn_resume_complete_r13: + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -rrc_conn_reest_complete_nb_s::crit_exts_c_& -rrc_conn_reest_complete_nb_s::crit_exts_c_::operator=(const rrc_conn_reest_complete_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_resume_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::rrc_conn_reest_complete_r13: - c.set(other.c.get()); + case types::rrc_conn_resume_complete_r13: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; - case types::nulltype: - break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } + return SRSASN_SUCCESS; +} - return *this; +std::string rrc_conn_resume_complete_nb_s::crit_exts_c_::types_opts::to_string() const +{ + static const char* options[] = {"rrcConnectionResumeComplete-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_resume_complete_nb_s::crit_exts_c_::types"); } -void rrc_conn_reest_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const + +// RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_request_nb_r13_ies_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(resume_id_r13.pack(bref)); + HANDLE_CODE(short_resume_mac_i_r13.pack(bref)); + HANDLE_CODE(resume_cause_r13.pack(bref)); + HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); + HANDLE_CODE(cqi_npdcch_r14.pack(bref)); + HANDLE_CODE(spare.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_resume_request_nb_r13_ies_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(resume_id_r13.unpack(bref)); + HANDLE_CODE(short_resume_mac_i_r13.unpack(bref)); + HANDLE_CODE(resume_cause_r13.unpack(bref)); + HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); + HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); + HANDLE_CODE(spare.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rrc_conn_resume_request_nb_r13_ies_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_str("resumeID-r13", resume_id_r13.to_string()); + j.write_str("shortResumeMAC-I-r13", short_resume_mac_i_r13.to_string()); + j.write_str("resumeCause-r13", resume_cause_r13.to_string()); + j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); + j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); + j.write_str("spare", spare.to_string()); + j.end_obj(); +} + +// RRCConnectionResumeRequest-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_resume_request_nb_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(crit_exts.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_conn_resume_request_nb_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rrc_conn_resume_request_nb_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void rrc_conn_resume_request_nb_s::crit_exts_c_::set(types::options e) +{ + type_ = e; +} +void rrc_conn_resume_request_nb_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::rrc_conn_reest_complete_r13: - j.write_fieldname("rrcConnectionReestablishmentComplete-r13"); - c.get().to_json(j); + case types::rrc_conn_resume_request_r13: + j.write_fieldname("rrcConnectionResumeRequest-r13"); + c.to_json(j); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); } j.end_obj(); } -SRSASN_CODE rrc_conn_reest_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const +SRSASN_CODE rrc_conn_resume_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::rrc_conn_reest_complete_r13: - HANDLE_CODE(c.get().pack(bref)); + case types::rrc_conn_resume_request_r13: + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_resume_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::rrc_conn_reest_complete_r13: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_conn_resume_request_r13: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_complete_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string rrc_conn_reest_complete_nb_s::crit_exts_c_::types_opts::to_string() const +std::string rrc_conn_resume_request_nb_s::crit_exts_c_::types_opts::to_string() const { - static const char* options[] = {"rrcConnectionReestablishmentComplete-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_reest_complete_nb_s::crit_exts_c_::types"); + static const char* options[] = {"rrcConnectionResumeRequest-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_nb_s::crit_exts_c_::types"); } -// CQI-NPDCCH-NB-r14 ::= ENUMERATED -std::string cqi_npdcch_nb_r14_opts::to_string() const +// RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_setup_complete_nb_v1470_ies_s::pack(bit_ref& bref) const { - static const char* options[] = {"noMeasurements", - "candidateRep-A", - "candidateRep-B", - "candidateRep-C", - "candidateRep-D", - "candidateRep-E", - "candidateRep-F", - "candidateRep-G", - "candidateRep-H", - "candidateRep-I", - "candidateRep-J", - "candidateRep-K", - "candidateRep-L"}; - return convert_enum_idx(options, 13, value, "cqi_npdcch_nb_r14_e"); -} + HANDLE_CODE(bref.pack(meas_result_serv_cell_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); -// CQI-NPDCCH-Short-NB-r14 ::= ENUMERATED -std::string cqi_npdcch_short_nb_r14_opts::to_string() const -{ - static const char* options[] = {"noMeasurements", "candidateRep-1", "candidateRep-2", "candidateRep-3"}; - return convert_enum_idx(options, 4, value, "cqi_npdcch_short_nb_r14_e"); -} -int8_t cqi_npdcch_short_nb_r14_opts::to_number() const -{ - switch (value) { - case candidate_rep_minus1: - return -1; - case candidate_rep_minus2: - return -2; - case candidate_rep_minus3: - return -3; - default: - invalid_enum_number(value, "cqi_npdcch_short_nb_r14_e"); + if (meas_result_serv_cell_r14_present) { + HANDLE_CODE(meas_result_serv_cell_r14.pack(bref)); } - return 0; -} - -// ReestabUE-Identity-CP-NB-r14 ::= SEQUENCE -SRSASN_CODE reestab_ue_id_cp_nb_r14_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(s_tmsi_r14.pack(bref)); - HANDLE_CODE(ul_nas_mac_r14.pack(bref)); - HANDLE_CODE(ul_nas_count_r14.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE reestab_ue_id_cp_nb_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_setup_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(s_tmsi_r14.unpack(bref)); - HANDLE_CODE(ul_nas_mac_r14.unpack(bref)); - HANDLE_CODE(ul_nas_count_r14.unpack(bref)); - + HANDLE_CODE(bref.unpack(meas_result_serv_cell_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (meas_result_serv_cell_r14_present) { + HANDLE_CODE(meas_result_serv_cell_r14.unpack(bref)); + } + return SRSASN_SUCCESS; } -void reestab_ue_id_cp_nb_r14_s::to_json(json_writer& j) const +void rrc_conn_setup_complete_nb_v1470_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("s-TMSI-r14"); - s_tmsi_r14.to_json(j); - j.write_str("ul-NAS-MAC-r14", ul_nas_mac_r14.to_string()); - j.write_str("ul-NAS-Count-r14", ul_nas_count_r14.to_string()); + if (meas_result_serv_cell_r14_present) { + j.write_fieldname("measResultServCell-r14"); + meas_result_serv_cell_r14.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } j.end_obj(); } -// ReestablishmentCause-NB-r13 ::= ENUMERATED -std::string reest_cause_nb_r13_opts::to_string() const +// RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_setup_complete_nb_v1430_ies_s::pack(bit_ref& bref) const { - static const char* options[] = {"reconfigurationFailure", "otherFailure", "spare2", "spare1"}; - return convert_enum_idx(options, 4, value, "reest_cause_nb_r13_e"); -} + HANDLE_CODE(bref.pack(gummei_type_r14_present, 1)); + HANDLE_CODE(bref.pack(dcn_id_r14_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); -// RRCConnectionReestablishmentRequest-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_request_nb_r13_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(ue_id_r13.pack(bref)); - HANDLE_CODE(reest_cause_r13.pack(bref)); - HANDLE_CODE(cqi_npdcch_r14.pack(bref)); - HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); - HANDLE_CODE(spare.pack(bref)); + if (dcn_id_r14_present) { + HANDLE_CODE(pack_integer(bref, dcn_id_r14, (uint32_t)0u, (uint32_t)65535u)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_request_nb_r13_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_setup_complete_nb_v1430_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(ue_id_r13.unpack(bref)); - HANDLE_CODE(reest_cause_r13.unpack(bref)); - HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); - HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); - HANDLE_CODE(spare.unpack(bref)); + HANDLE_CODE(bref.unpack(gummei_type_r14_present, 1)); + HANDLE_CODE(bref.unpack(dcn_id_r14_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (dcn_id_r14_present) { + HANDLE_CODE(unpack_integer(dcn_id_r14, bref, (uint32_t)0u, (uint32_t)65535u)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void rrc_conn_reest_request_nb_r13_ies_s::to_json(json_writer& j) const +void rrc_conn_setup_complete_nb_v1430_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("ue-Identity-r13"); - ue_id_r13.to_json(j); - j.write_str("reestablishmentCause-r13", reest_cause_r13.to_string()); - j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); - j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); - j.write_str("spare", spare.to_string()); + if (gummei_type_r14_present) { + j.write_str("gummei-Type-r14", "mapped"); + } + if (dcn_id_r14_present) { + j.write_int("dcn-ID-r14", dcn_id_r14); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } j.end_obj(); } -// RRCConnectionReestablishmentRequest-NB-r14-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_request_nb_r14_ies_s::pack(bit_ref& bref) const +// RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE +SRSASN_CODE rrc_conn_setup_complete_nb_r13_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(ue_id_r14.pack(bref)); - HANDLE_CODE(reest_cause_r14.pack(bref)); - HANDLE_CODE(cqi_npdcch_r14.pack(bref)); - HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); - HANDLE_CODE(spare.pack(bref)); + HANDLE_CODE(bref.pack(s_tmsi_r13_present, 1)); + HANDLE_CODE(bref.pack(registered_mme_r13_present, 1)); + HANDLE_CODE(bref.pack(attach_without_pdn_connect_r13_present, 1)); + HANDLE_CODE(bref.pack(up_cio_t_eps_optim_r13_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(pack_integer(bref, sel_plmn_id_r13, (uint8_t)1u, (uint8_t)6u)); + if (s_tmsi_r13_present) { + HANDLE_CODE(s_tmsi_r13.pack(bref)); + } + if (registered_mme_r13_present) { + HANDLE_CODE(registered_mme_r13.pack(bref)); + } + HANDLE_CODE(ded_info_nas_r13.pack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_request_nb_r14_ies_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_setup_complete_nb_r13_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(ue_id_r14.unpack(bref)); - HANDLE_CODE(reest_cause_r14.unpack(bref)); - HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); - HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); - HANDLE_CODE(spare.unpack(bref)); + HANDLE_CODE(bref.unpack(s_tmsi_r13_present, 1)); + HANDLE_CODE(bref.unpack(registered_mme_r13_present, 1)); + HANDLE_CODE(bref.unpack(attach_without_pdn_connect_r13_present, 1)); + HANDLE_CODE(bref.unpack(up_cio_t_eps_optim_r13_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_integer(sel_plmn_id_r13, bref, (uint8_t)1u, (uint8_t)6u)); + if (s_tmsi_r13_present) { + HANDLE_CODE(s_tmsi_r13.unpack(bref)); + } + if (registered_mme_r13_present) { + HANDLE_CODE(registered_mme_r13.unpack(bref)); + } + HANDLE_CODE(ded_info_nas_r13.unpack(bref)); + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void rrc_conn_reest_request_nb_r14_ies_s::to_json(json_writer& j) const +void rrc_conn_setup_complete_nb_r13_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("ue-Identity-r14"); - ue_id_r14.to_json(j); - j.write_str("reestablishmentCause-r14", reest_cause_r14.to_string()); - j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); - j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); - j.write_str("spare", spare.to_string()); + j.write_int("selectedPLMN-Identity-r13", sel_plmn_id_r13); + if (s_tmsi_r13_present) { + j.write_fieldname("s-TMSI-r13"); + s_tmsi_r13.to_json(j); + } + if (registered_mme_r13_present) { + j.write_fieldname("registeredMME-r13"); + registered_mme_r13.to_json(j); + } + j.write_str("dedicatedInfoNAS-r13", ded_info_nas_r13.to_string()); + if (attach_without_pdn_connect_r13_present) { + j.write_str("attachWithoutPDN-Connectivity-r13", "true"); + } + if (up_cio_t_eps_optim_r13_present) { + j.write_str("up-CIoT-EPS-Optimisation-r13", "true"); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } j.end_obj(); } -// RRCConnectionReestablishmentRequest-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_reest_request_nb_s::pack(bit_ref& bref) const +// RRCConnectionSetupComplete-NB ::= SEQUENCE +SRSASN_CODE rrc_conn_setup_complete_nb_s::pack(bit_ref& bref) const { + HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.pack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_request_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE rrc_conn_setup_complete_nb_s::unpack(cbit_ref& bref) { + HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); HANDLE_CODE(crit_exts.unpack(bref)); return SRSASN_SUCCESS; } -void rrc_conn_reest_request_nb_s::to_json(json_writer& j) const +void rrc_conn_setup_complete_nb_s::to_json(json_writer& j) const { j.start_obj(); + j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); j.write_fieldname("criticalExtensions"); crit_exts.to_json(j); j.end_obj(); } -void rrc_conn_reest_request_nb_s::crit_exts_c_::destroy_() +void rrc_conn_setup_complete_nb_s::crit_exts_c_::set(types::options e) { - switch (type_) { - case types::rrc_conn_reest_request_r13: - c.destroy(); - break; - case types::later: - c.destroy(); - break; - default: - break; - } + type_ = e; } -void rrc_conn_reest_request_nb_s::crit_exts_c_::set(types::options e) +void rrc_conn_setup_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const { - destroy_(); - type_ = e; + j.start_obj(); switch (type_) { - case types::rrc_conn_reest_request_r13: - c.init(); - break; - case types::later: - c.init(); + case types::rrc_conn_setup_complete_r13: + j.write_fieldname("rrcConnectionSetupComplete-r13"); + c.to_json(j); break; - case types::nulltype: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); } + j.end_obj(); } -rrc_conn_reest_request_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_reest_request_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_setup_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const { - type_ = other.type(); + type_.pack(bref); switch (type_) { - case types::rrc_conn_reest_request_r13: - c.init(other.c.get()); - break; - case types::later: - c.init(other.c.get()); + case types::rrc_conn_setup_complete_r13: + HANDLE_CODE(c.pack(bref)); break; - case types::nulltype: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_ENCODE_FAIL; } + return SRSASN_SUCCESS; } -rrc_conn_reest_request_nb_s::crit_exts_c_& -rrc_conn_reest_request_nb_s::crit_exts_c_::operator=(const rrc_conn_reest_request_nb_s::crit_exts_c_& other) +SRSASN_CODE rrc_conn_setup_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); + types e; + e.unpack(bref); + set(e); switch (type_) { - case types::rrc_conn_reest_request_r13: - c.set(other.c.get()); - break; - case types::later: - c.set(other.c.get()); + case types::rrc_conn_setup_complete_r13: + HANDLE_CODE(c.unpack(bref)); break; - case types::nulltype: + case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); + return SRSASN_ERROR_DECODE_FAIL; } - - return *this; + return SRSASN_SUCCESS; } -void rrc_conn_reest_request_nb_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::rrc_conn_reest_request_r13: - j.write_fieldname("rrcConnectionReestablishmentRequest-r13"); - c.get().to_json(j); - break; - case types::later: - j.write_fieldname("later"); - c.get().to_json(j); - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); - } - j.end_obj(); + +std::string rrc_conn_setup_complete_nb_s::crit_exts_c_::types_opts::to_string() const +{ + static const char* options[] = {"rrcConnectionSetupComplete-r13", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_nb_s::crit_exts_c_::types"); } -SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const + +// RRCEarlyDataRequest-NB-v1590-IEs ::= SEQUENCE +SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::rrc_conn_reest_request_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::later: - HANDLE_CODE(c.get().pack(bref)); - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); } + return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_conn_reest_request_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::later: - HANDLE_CODE(c.get().unpack(bref)); - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } + return SRSASN_SUCCESS; } - -void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::destroy_() +void rrc_early_data_request_nb_v1590_ies_s::to_json(json_writer& j) const { - switch (type_) { - case types::rrc_conn_reest_request_r14: - c.destroy(); - break; - default: - break; + j.start_obj(); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); } + j.end_obj(); } -void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::set(types::options e) + +// RRCEarlyDataRequest-NB-r15-IEs ::= SEQUENCE +SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::pack(bit_ref& bref) const { - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_conn_reest_request_r14: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + HANDLE_CODE(bref.pack(cqi_npdcch_r15_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(s_tmsi_r15.pack(bref)); + HANDLE_CODE(establishment_cause_r15.pack(bref)); + if (cqi_npdcch_r15_present) { + HANDLE_CODE(cqi_npdcch_r15.pack(bref)); + } + HANDLE_CODE(ded_info_nas_r15.pack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } + + return SRSASN_SUCCESS; } -rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::later_c_( - const rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_& other) +SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::unpack(cbit_ref& bref) { - type_ = other.type(); - switch (type_) { - case types::rrc_conn_reest_request_r14: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + HANDLE_CODE(bref.unpack(cqi_npdcch_r15_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(s_tmsi_r15.unpack(bref)); + HANDLE_CODE(establishment_cause_r15.unpack(bref)); + if (cqi_npdcch_r15_present) { + HANDLE_CODE(cqi_npdcch_r15.unpack(bref)); + } + HANDLE_CODE(ded_info_nas_r15.unpack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } + + return SRSASN_SUCCESS; } -rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_& rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::operator=( - const rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_& other) +void rrc_early_data_request_nb_r15_ies_s::to_json(json_writer& j) const { - if (this == &other) { - return *this; + j.start_obj(); + j.write_fieldname("s-TMSI-r15"); + s_tmsi_r15.to_json(j); + j.write_str("establishmentCause-r15", establishment_cause_r15.to_string()); + if (cqi_npdcch_r15_present) { + j.write_str("cqi-NPDCCH-r15", cqi_npdcch_r15.to_string()); } - set(other.type()); - switch (type_) { - case types::rrc_conn_reest_request_r14: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string()); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } + j.end_obj(); +} - return *this; +std::string rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_opts::to_string() const +{ + static const char* options[] = {"mo-Data", "mo-ExceptionData", "delayTolerantAccess", "spare1"}; + return convert_enum_idx(options, 4, value, "rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_e_"); } -void rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::to_json(json_writer& j) const + +// RRCEarlyDataRequest-NB-r15 ::= SEQUENCE +SRSASN_CODE rrc_early_data_request_nb_r15_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(crit_exts.pack(bref)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE rrc_early_data_request_nb_r15_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; +} +void rrc_early_data_request_nb_r15_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void rrc_early_data_request_nb_r15_s::crit_exts_c_::set(types::options e) +{ + type_ = e; +} +void rrc_early_data_request_nb_r15_s::crit_exts_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::rrc_conn_reest_request_r14: - j.write_fieldname("rrcConnectionReestablishmentRequest-r14"); - c.get().to_json(j); + case types::rrc_early_data_request_r15: + j.write_fieldname("rrcEarlyDataRequest-r15"); + c.to_json(j); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); } j.end_obj(); } -SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::pack(bit_ref& bref) const +SRSASN_CODE rrc_early_data_request_nb_r15_s::crit_exts_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::rrc_conn_reest_request_r14: - HANDLE_CODE(c.get().pack(bref)); + case types::rrc_early_data_request_r15: + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::unpack(cbit_ref& bref) +SRSASN_CODE rrc_early_data_request_nb_r15_s::crit_exts_c_::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::rrc_conn_reest_request_r14: - HANDLE_CODE(c.get().unpack(bref)); + case types::rrc_early_data_request_r15: + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; default: - log_invalid_choice_id(type_, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_"); + log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types_opts::to_string() const +std::string rrc_early_data_request_nb_r15_s::crit_exts_c_::types_opts::to_string() const { - static const char* options[] = {"rrcConnectionReestablishmentRequest-r14", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::later_c_::types"); + static const char* options[] = {"rrcEarlyDataRequest-r15", "criticalExtensionsFuture"}; + return convert_enum_idx(options, 2, value, "rrc_early_data_request_nb_r15_s::crit_exts_c_::types"); } -std::string rrc_conn_reest_request_nb_s::crit_exts_c_::types_opts::to_string() const +// SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE +SRSASN_CODE sc_mtch_sched_info_nb_r14_s::pack(bit_ref& bref) const { - static const char* options[] = {"rrcConnectionReestablishmentRequest-r13", "later"}; - return convert_enum_idx(options, 2, value, "rrc_conn_reest_request_nb_s::crit_exts_c_::types"); -} + bref.pack(ext, 1); + HANDLE_CODE(on_dur_timer_scptm_r14.pack(bref)); + HANDLE_CODE(drx_inactivity_timer_scptm_r14.pack(bref)); + HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); -// EstablishmentCause-NB-r13 ::= ENUMERATED -std::string establishment_cause_nb_r13_opts::to_string() const -{ - static const char* options[] = {"mt-Access", - "mo-Signalling", - "mo-Data", - "mo-ExceptionData", - "delayTolerantAccess-v1330", - "spare3", - "spare2", - "spare1"}; - return convert_enum_idx(options, 8, value, "establishment_cause_nb_r13_e"); + return SRSASN_SUCCESS; } - -// RRCConnectionRequest-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_request_nb_r13_ies_s::pack(bit_ref& bref) const +SRSASN_CODE sc_mtch_sched_info_nb_r14_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.pack(multi_tone_support_r13_present, 1)); - HANDLE_CODE(bref.pack(multi_carrier_support_r13_present, 1)); - - HANDLE_CODE(ue_id_r13.pack(bref)); - HANDLE_CODE(establishment_cause_r13.pack(bref)); - HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); - HANDLE_CODE(cqi_npdcch_r14.pack(bref)); - HANDLE_CODE(spare.pack(bref)); + bref.unpack(ext, 1); + HANDLE_CODE(on_dur_timer_scptm_r14.unpack(bref)); + HANDLE_CODE(drx_inactivity_timer_scptm_r14.unpack(bref)); + HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); return SRSASN_SUCCESS; } -SRSASN_CODE rrc_conn_request_nb_r13_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(multi_tone_support_r13_present, 1)); - HANDLE_CODE(bref.unpack(multi_carrier_support_r13_present, 1)); - - HANDLE_CODE(ue_id_r13.unpack(bref)); - HANDLE_CODE(establishment_cause_r13.unpack(bref)); - HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); - HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); - HANDLE_CODE(spare.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_request_nb_r13_ies_s::to_json(json_writer& j) const +void sc_mtch_sched_info_nb_r14_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("ue-Identity-r13"); - ue_id_r13.to_json(j); - j.write_str("establishmentCause-r13", establishment_cause_r13.to_string()); - if (multi_tone_support_r13_present) { - j.write_str("multiToneSupport-r13", "true"); - } - if (multi_carrier_support_r13_present) { - j.write_str("multiCarrierSupport-r13", "true"); - } - j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); - j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); - j.write_str("spare", spare.to_string()); + j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); + j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); + j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); + sched_period_start_offset_scptm_r14.to_json(j); j.end_obj(); } -// RRCConnectionRequest-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_request_nb_s::pack(bit_ref& bref) const +std::string sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const { - HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; + static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "spare"}; + return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); } -SRSASN_CODE rrc_conn_request_nb_s::unpack(cbit_ref& bref) +uint8_t sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_number() const { - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; + static const uint8_t options[] = {1, 2, 3, 4, 8, 16, 32}; + return map_enum_number(options, 7, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); } -void rrc_conn_request_nb_s::to_json(json_writer& j) const + +std::string sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const { - j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); + static const char* options[] = {"pp0", "pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32"}; + return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); } - -void rrc_conn_request_nb_s::crit_exts_c_::destroy_() +uint8_t sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_number() const { - switch (type_) { - case types::rrc_conn_request_r13: - c.destroy(); - break; - default: - break; - } + static const uint8_t options[] = {0, 1, 2, 3, 4, 8, 16, 32}; + return map_enum_number(options, 8, value, "sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); } -void rrc_conn_request_nb_s::crit_exts_c_::set(types::options e) + +void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} +void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) { destroy_(); type_ = e; - switch (type_) { - case types::rrc_conn_request_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); - } } -rrc_conn_request_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_request_nb_s::crit_exts_c_& other) +sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( + const sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& other) { type_ = other.type(); switch (type_) { - case types::rrc_conn_request_r13: - c.init(other.c.get()); + case types::sf10: + c.init(other.c.get()); break; - case types::crit_exts_future: + case types::sf20: + c.init(other.c.get()); + break; + case types::sf32: + c.init(other.c.get()); + break; + case types::sf40: + c.init(other.c.get()); + break; + case types::sf64: + c.init(other.c.get()); + break; + case types::sf80: + c.init(other.c.get()); + break; + case types::sf128: + c.init(other.c.get()); + break; + case types::sf160: + c.init(other.c.get()); + break; + case types::sf256: + c.init(other.c.get()); + break; + case types::sf320: + c.init(other.c.get()); + break; + case types::sf512: + c.init(other.c.get()); + break; + case types::sf640: + c.init(other.c.get()); + break; + case types::sf1024: + c.init(other.c.get()); + break; + case types::sf2048: + c.init(other.c.get()); + break; + case types::sf4096: + c.init(other.c.get()); + break; + case types::sf8192: + c.init(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); } } -rrc_conn_request_nb_s::crit_exts_c_& -rrc_conn_request_nb_s::crit_exts_c_::operator=(const rrc_conn_request_nb_s::crit_exts_c_& other) +sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& +sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( + const sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& other) { if (this == &other) { return *this; } set(other.type()); switch (type_) { - case types::rrc_conn_request_r13: - c.set(other.c.get()); + case types::sf10: + c.set(other.c.get()); break; - case types::crit_exts_future: + case types::sf20: + c.set(other.c.get()); + break; + case types::sf32: + c.set(other.c.get()); + break; + case types::sf40: + c.set(other.c.get()); + break; + case types::sf64: + c.set(other.c.get()); + break; + case types::sf80: + c.set(other.c.get()); + break; + case types::sf128: + c.set(other.c.get()); + break; + case types::sf160: + c.set(other.c.get()); + break; + case types::sf256: + c.set(other.c.get()); + break; + case types::sf320: + c.set(other.c.get()); + break; + case types::sf512: + c.set(other.c.get()); + break; + case types::sf640: + c.set(other.c.get()); + break; + case types::sf1024: + c.set(other.c.get()); + break; + case types::sf2048: + c.set(other.c.get()); + break; + case types::sf4096: + c.set(other.c.get()); + break; + case types::sf8192: + c.set(other.c.get()); break; case types::nulltype: break; default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); } return *this; } -void rrc_conn_request_nb_s::crit_exts_c_::to_json(json_writer& j) const +void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const { j.start_obj(); switch (type_) { - case types::rrc_conn_request_r13: - j.write_fieldname("rrcConnectionRequest-r13"); - c.get().to_json(j); + case types::sf10: + j.write_int("sf10", c.get()); break; - case types::crit_exts_future: + case types::sf20: + j.write_int("sf20", c.get()); + break; + case types::sf32: + j.write_int("sf32", c.get()); + break; + case types::sf40: + j.write_int("sf40", c.get()); + break; + case types::sf64: + j.write_int("sf64", c.get()); + break; + case types::sf80: + j.write_int("sf80", c.get()); + break; + case types::sf128: + j.write_int("sf128", c.get()); + break; + case types::sf160: + j.write_int("sf160", c.get()); + break; + case types::sf256: + j.write_int("sf256", c.get()); + break; + case types::sf320: + j.write_int("sf320", c.get()); + break; + case types::sf512: + j.write_int("sf512", c.get()); + break; + case types::sf640: + j.write_int("sf640", c.get()); + break; + case types::sf1024: + j.write_int("sf1024", c.get()); + break; + case types::sf2048: + j.write_int("sf2048", c.get()); + break; + case types::sf4096: + j.write_int("sf4096", c.get()); + break; + case types::sf8192: + j.write_int("sf8192", c.get()); break; default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); + log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); } j.end_obj(); } -SRSASN_CODE rrc_conn_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const +SRSASN_CODE sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const { type_.pack(bref); switch (type_) { - case types::rrc_conn_request_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: + case types::sf10: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)9u)); break; - default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_conn_request_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string rrc_conn_request_nb_s::crit_exts_c_::types_opts::to_string() const -{ - static const char* options[] = {"rrcConnectionRequest-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_request_nb_s::crit_exts_c_::types"); -} - -// RRCConnectionResumeComplete-NB-v1470-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_complete_nb_v1470_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(meas_result_serv_cell_r14_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (meas_result_serv_cell_r14_present) { - HANDLE_CODE(meas_result_serv_cell_r14.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(meas_result_serv_cell_r14_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (meas_result_serv_cell_r14_present) { - HANDLE_CODE(meas_result_serv_cell_r14.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_complete_nb_v1470_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (meas_result_serv_cell_r14_present) { - j.write_fieldname("measResultServCell-r14"); - meas_result_serv_cell_r14.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// RRCConnectionResumeComplete-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_complete_nb_r13_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(sel_plmn_id_r13_present, 1)); - HANDLE_CODE(bref.pack(ded_info_nas_r13_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (sel_plmn_id_r13_present) { - HANDLE_CODE(pack_integer(bref, sel_plmn_id_r13, (uint8_t)1u, (uint8_t)6u)); - } - if (ded_info_nas_r13_present) { - HANDLE_CODE(ded_info_nas_r13.pack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_complete_nb_r13_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(sel_plmn_id_r13_present, 1)); - HANDLE_CODE(bref.unpack(ded_info_nas_r13_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (sel_plmn_id_r13_present) { - HANDLE_CODE(unpack_integer(sel_plmn_id_r13, bref, (uint8_t)1u, (uint8_t)6u)); - } - if (ded_info_nas_r13_present) { - HANDLE_CODE(ded_info_nas_r13.unpack(bref)); - } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_complete_nb_r13_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (sel_plmn_id_r13_present) { - j.write_int("selectedPLMN-Identity-r13", sel_plmn_id_r13); - } - if (ded_info_nas_r13_present) { - j.write_str("dedicatedInfoNAS-r13", ded_info_nas_r13.to_string()); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// RRCConnectionResumeComplete-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_complete_nb_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_complete_nb_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_complete_nb_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_conn_resume_complete_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.destroy(); - break; - default: - break; - } -} -void rrc_conn_resume_complete_nb_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_complete_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_complete_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_complete_nb_s::crit_exts_c_& -rrc_conn_resume_complete_nb_s::crit_exts_c_::operator=(const rrc_conn_resume_complete_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - } - - return *this; -} -void rrc_conn_resume_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - j.write_fieldname("rrcConnectionResumeComplete-r13"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_conn_resume_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_conn_resume_complete_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_complete_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string rrc_conn_resume_complete_nb_s::crit_exts_c_::types_opts::to_string() const -{ - static const char* options[] = {"rrcConnectionResumeComplete-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_resume_complete_nb_s::crit_exts_c_::types"); -} - -// RRCConnectionResumeRequest-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_request_nb_r13_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(resume_id_r13.pack(bref)); - HANDLE_CODE(short_resume_mac_i_r13.pack(bref)); - HANDLE_CODE(resume_cause_r13.pack(bref)); - HANDLE_CODE(bref.pack(early_contention_resolution_r14, 1)); - HANDLE_CODE(cqi_npdcch_r14.pack(bref)); - HANDLE_CODE(spare.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_request_nb_r13_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(resume_id_r13.unpack(bref)); - HANDLE_CODE(short_resume_mac_i_r13.unpack(bref)); - HANDLE_CODE(resume_cause_r13.unpack(bref)); - HANDLE_CODE(bref.unpack(early_contention_resolution_r14, 1)); - HANDLE_CODE(cqi_npdcch_r14.unpack(bref)); - HANDLE_CODE(spare.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_request_nb_r13_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("resumeID-r13", resume_id_r13.to_string()); - j.write_str("shortResumeMAC-I-r13", short_resume_mac_i_r13.to_string()); - j.write_str("resumeCause-r13", resume_cause_r13.to_string()); - j.write_bool("earlyContentionResolution-r14", early_contention_resolution_r14); - j.write_str("cqi-NPDCCH-r14", cqi_npdcch_r14.to_string()); - j.write_str("spare", spare.to_string()); - j.end_obj(); -} - -// RRCConnectionResumeRequest-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_resume_request_nb_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_request_nb_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_resume_request_nb_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_conn_resume_request_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_resume_request_r13: - c.destroy(); - break; - default: - break; - } -} -void rrc_conn_resume_request_nb_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_conn_resume_request_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_request_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_resume_request_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_resume_request_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - } -} -rrc_conn_resume_request_nb_s::crit_exts_c_& -rrc_conn_resume_request_nb_s::crit_exts_c_::operator=(const rrc_conn_resume_request_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_resume_request_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - } - - return *this; -} -void rrc_conn_resume_request_nb_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::rrc_conn_resume_request_r13: - j.write_fieldname("rrcConnectionResumeRequest-r13"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_conn_resume_request_nb_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::rrc_conn_resume_request_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_resume_request_nb_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_conn_resume_request_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_resume_request_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string rrc_conn_resume_request_nb_s::crit_exts_c_::types_opts::to_string() const -{ - static const char* options[] = {"rrcConnectionResumeRequest-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_resume_request_nb_s::crit_exts_c_::types"); -} - -// RRCConnectionSetupComplete-NB-v1470-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_setup_complete_nb_v1470_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(meas_result_serv_cell_r14_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (meas_result_serv_cell_r14_present) { - HANDLE_CODE(meas_result_serv_cell_r14.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_complete_nb_v1470_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(meas_result_serv_cell_r14_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (meas_result_serv_cell_r14_present) { - HANDLE_CODE(meas_result_serv_cell_r14.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_setup_complete_nb_v1470_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (meas_result_serv_cell_r14_present) { - j.write_fieldname("measResultServCell-r14"); - meas_result_serv_cell_r14.to_json(j); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// RRCConnectionSetupComplete-NB-v1430-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_setup_complete_nb_v1430_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(gummei_type_r14_present, 1)); - HANDLE_CODE(bref.pack(dcn_id_r14_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (dcn_id_r14_present) { - HANDLE_CODE(pack_integer(bref, dcn_id_r14, (uint32_t)0u, (uint32_t)65535u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_complete_nb_v1430_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(gummei_type_r14_present, 1)); - HANDLE_CODE(bref.unpack(dcn_id_r14_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (dcn_id_r14_present) { - HANDLE_CODE(unpack_integer(dcn_id_r14, bref, (uint32_t)0u, (uint32_t)65535u)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_setup_complete_nb_v1430_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (gummei_type_r14_present) { - j.write_str("gummei-Type-r14", "mapped"); - } - if (dcn_id_r14_present) { - j.write_int("dcn-ID-r14", dcn_id_r14); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// RRCConnectionSetupComplete-NB-r13-IEs ::= SEQUENCE -SRSASN_CODE rrc_conn_setup_complete_nb_r13_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(s_tmsi_r13_present, 1)); - HANDLE_CODE(bref.pack(registered_mme_r13_present, 1)); - HANDLE_CODE(bref.pack(attach_without_pdn_connect_r13_present, 1)); - HANDLE_CODE(bref.pack(up_cio_t_eps_optim_r13_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(pack_integer(bref, sel_plmn_id_r13, (uint8_t)1u, (uint8_t)6u)); - if (s_tmsi_r13_present) { - HANDLE_CODE(s_tmsi_r13.pack(bref)); - } - if (registered_mme_r13_present) { - HANDLE_CODE(registered_mme_r13.pack(bref)); - } - HANDLE_CODE(ded_info_nas_r13.pack(bref)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_complete_nb_r13_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(s_tmsi_r13_present, 1)); - HANDLE_CODE(bref.unpack(registered_mme_r13_present, 1)); - HANDLE_CODE(bref.unpack(attach_without_pdn_connect_r13_present, 1)); - HANDLE_CODE(bref.unpack(up_cio_t_eps_optim_r13_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - HANDLE_CODE(unpack_integer(sel_plmn_id_r13, bref, (uint8_t)1u, (uint8_t)6u)); - if (s_tmsi_r13_present) { - HANDLE_CODE(s_tmsi_r13.unpack(bref)); - } - if (registered_mme_r13_present) { - HANDLE_CODE(registered_mme_r13.unpack(bref)); - } - HANDLE_CODE(ded_info_nas_r13.unpack(bref)); - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_conn_setup_complete_nb_r13_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("selectedPLMN-Identity-r13", sel_plmn_id_r13); - if (s_tmsi_r13_present) { - j.write_fieldname("s-TMSI-r13"); - s_tmsi_r13.to_json(j); - } - if (registered_mme_r13_present) { - j.write_fieldname("registeredMME-r13"); - registered_mme_r13.to_json(j); - } - j.write_str("dedicatedInfoNAS-r13", ded_info_nas_r13.to_string()); - if (attach_without_pdn_connect_r13_present) { - j.write_str("attachWithoutPDN-Connectivity-r13", "true"); - } - if (up_cio_t_eps_optim_r13_present) { - j.write_str("up-CIoT-EPS-Optimisation-r13", "true"); - } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -// RRCConnectionSetupComplete-NB ::= SEQUENCE -SRSASN_CODE rrc_conn_setup_complete_nb_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(pack_integer(bref, rrc_transaction_id, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_complete_nb_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_conn_setup_complete_nb_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_conn_setup_complete_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_conn_setup_complete_r13: - c.destroy(); - break; - default: - break; - } -} -void rrc_conn_setup_complete_nb_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_conn_setup_complete_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_setup_complete_nb_s::crit_exts_c_::crit_exts_c_(const rrc_conn_setup_complete_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_conn_setup_complete_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - } -} -rrc_conn_setup_complete_nb_s::crit_exts_c_& -rrc_conn_setup_complete_nb_s::crit_exts_c_::operator=(const rrc_conn_setup_complete_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_conn_setup_complete_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - } - - return *this; -} -void rrc_conn_setup_complete_nb_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::rrc_conn_setup_complete_r13: - j.write_fieldname("rrcConnectionSetupComplete-r13"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_conn_setup_complete_nb_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::rrc_conn_setup_complete_r13: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_conn_setup_complete_nb_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_conn_setup_complete_r13: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_conn_setup_complete_nb_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string rrc_conn_setup_complete_nb_s::crit_exts_c_::types_opts::to_string() const -{ - static const char* options[] = {"rrcConnectionSetupComplete-r13", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_nb_s::crit_exts_c_::types"); -} - -// RRCEarlyDataRequest-NB-v1590-IEs ::= SEQUENCE -SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_early_data_request_nb_v1590_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); - } - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - j.start_obj(); - j.end_obj(); - } - j.end_obj(); -} - -// RRCEarlyDataRequest-NB-r15-IEs ::= SEQUENCE -SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(bref.pack(cqi_npdcch_r15_present, 1)); - HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - - HANDLE_CODE(s_tmsi_r15.pack(bref)); - HANDLE_CODE(establishment_cause_r15.pack(bref)); - if (cqi_npdcch_r15_present) { - HANDLE_CODE(cqi_npdcch_r15.pack(bref)); - } - HANDLE_CODE(ded_info_nas_r15.pack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.pack(bref)); - } - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(bref.unpack(cqi_npdcch_r15_present, 1)); - HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - - HANDLE_CODE(s_tmsi_r15.unpack(bref)); - HANDLE_CODE(establishment_cause_r15.unpack(bref)); - if (cqi_npdcch_r15_present) { - HANDLE_CODE(cqi_npdcch_r15.unpack(bref)); - } - HANDLE_CODE(ded_info_nas_r15.unpack(bref)); - if (non_crit_ext_present) { - HANDLE_CODE(non_crit_ext.unpack(bref)); - } - - return SRSASN_SUCCESS; -} -void rrc_early_data_request_nb_r15_ies_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("s-TMSI-r15"); - s_tmsi_r15.to_json(j); - j.write_str("establishmentCause-r15", establishment_cause_r15.to_string()); - if (cqi_npdcch_r15_present) { - j.write_str("cqi-NPDCCH-r15", cqi_npdcch_r15.to_string()); - } - j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string()); - if (non_crit_ext_present) { - j.write_fieldname("nonCriticalExtension"); - non_crit_ext.to_json(j); - } - j.end_obj(); -} - -std::string rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_opts::to_string() const -{ - static const char* options[] = {"mo-Data", "mo-ExceptionData", "delayTolerantAccess", "spare1"}; - return convert_enum_idx(options, 4, value, "rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_e_"); -} - -// RRCEarlyDataRequest-NB-r15 ::= SEQUENCE -SRSASN_CODE rrc_early_data_request_nb_r15_s::pack(bit_ref& bref) const -{ - HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_early_data_request_nb_r15_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_early_data_request_nb_r15_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_early_data_request_nb_r15_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_early_data_request_r15: - c.destroy(); - break; - default: - break; - } -} -void rrc_early_data_request_nb_r15_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_early_data_request_r15: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - } -} -rrc_early_data_request_nb_r15_s::crit_exts_c_::crit_exts_c_(const rrc_early_data_request_nb_r15_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_early_data_request_r15: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - } -} -rrc_early_data_request_nb_r15_s::crit_exts_c_& -rrc_early_data_request_nb_r15_s::crit_exts_c_::operator=(const rrc_early_data_request_nb_r15_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_early_data_request_r15: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - } - - return *this; -} -void rrc_early_data_request_nb_r15_s::crit_exts_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::rrc_early_data_request_r15: - j.write_fieldname("rrcEarlyDataRequest-r15"); - c.get().to_json(j); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - } - j.end_obj(); -} -SRSASN_CODE rrc_early_data_request_nb_r15_s::crit_exts_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::rrc_early_data_request_r15: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - return SRSASN_ERROR_ENCODE_FAIL; - } - return SRSASN_SUCCESS; -} -SRSASN_CODE rrc_early_data_request_nb_r15_s::crit_exts_c_::unpack(cbit_ref& bref) -{ - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::rrc_early_data_request_r15: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::crit_exts_future: - break; - default: - log_invalid_choice_id(type_, "rrc_early_data_request_nb_r15_s::crit_exts_c_"); - return SRSASN_ERROR_DECODE_FAIL; - } - return SRSASN_SUCCESS; -} - -std::string rrc_early_data_request_nb_r15_s::crit_exts_c_::types_opts::to_string() const -{ - static const char* options[] = {"rrcEarlyDataRequest-r15", "criticalExtensionsFuture"}; - return convert_enum_idx(options, 2, value, "rrc_early_data_request_nb_r15_s::crit_exts_c_::types"); -} - -// SC-MTCH-SchedulingInfo-NB-r14 ::= SEQUENCE -SRSASN_CODE sc_mtch_sched_info_nb_r14_s::pack(bit_ref& bref) const -{ - bref.pack(ext, 1); - HANDLE_CODE(on_dur_timer_scptm_r14.pack(bref)); - HANDLE_CODE(drx_inactivity_timer_scptm_r14.pack(bref)); - HANDLE_CODE(sched_period_start_offset_scptm_r14.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE sc_mtch_sched_info_nb_r14_s::unpack(cbit_ref& bref) -{ - bref.unpack(ext, 1); - HANDLE_CODE(on_dur_timer_scptm_r14.unpack(bref)); - HANDLE_CODE(drx_inactivity_timer_scptm_r14.unpack(bref)); - HANDLE_CODE(sched_period_start_offset_scptm_r14.unpack(bref)); - - return SRSASN_SUCCESS; -} -void sc_mtch_sched_info_nb_r14_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_str("onDurationTimerSCPTM-r14", on_dur_timer_scptm_r14.to_string()); - j.write_str("drx-InactivityTimerSCPTM-r14", drx_inactivity_timer_scptm_r14.to_string()); - j.write_fieldname("schedulingPeriodStartOffsetSCPTM-r14"); - sched_period_start_offset_scptm_r14.to_json(j); - j.end_obj(); -} - -std::string sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_string() const -{ - static const char* options[] = {"pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32", "spare"}; - return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); -} -uint8_t sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_opts::to_number() const -{ - static const uint8_t options[] = {1, 2, 3, 4, 8, 16, 32}; - return map_enum_number(options, 7, value, "sc_mtch_sched_info_nb_r14_s::on_dur_timer_scptm_r14_e_"); -} - -std::string sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_string() const -{ - static const char* options[] = {"pp0", "pp1", "pp2", "pp3", "pp4", "pp8", "pp16", "pp32"}; - return convert_enum_idx(options, 8, value, "sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); -} -uint8_t sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_opts::to_number() const -{ - static const uint8_t options[] = {0, 1, 2, 3, 4, 8, 16, 32}; - return map_enum_number(options, 8, value, "sc_mtch_sched_info_nb_r14_s::drx_inactivity_timer_scptm_r14_e_"); -} - -void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::destroy_() {} -void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::set(types::options e) -{ - destroy_(); - type_ = e; -} -sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::sched_period_start_offset_scptm_r14_c_( - const sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::sf10: - c.init(other.c.get()); - break; - case types::sf20: - c.init(other.c.get()); - break; - case types::sf32: - c.init(other.c.get()); - break; - case types::sf40: - c.init(other.c.get()); - break; - case types::sf64: - c.init(other.c.get()); - break; - case types::sf80: - c.init(other.c.get()); - break; - case types::sf128: - c.init(other.c.get()); - break; - case types::sf160: - c.init(other.c.get()); - break; - case types::sf256: - c.init(other.c.get()); - break; - case types::sf320: - c.init(other.c.get()); - break; - case types::sf512: - c.init(other.c.get()); - break; - case types::sf640: - c.init(other.c.get()); - break; - case types::sf1024: - c.init(other.c.get()); - break; - case types::sf2048: - c.init(other.c.get()); - break; - case types::sf4096: - c.init(other.c.get()); - break; - case types::sf8192: - c.init(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); - } -} -sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& -sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::operator=( - const sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::sf10: - c.set(other.c.get()); - break; - case types::sf20: - c.set(other.c.get()); - break; - case types::sf32: - c.set(other.c.get()); - break; - case types::sf40: - c.set(other.c.get()); - break; - case types::sf64: - c.set(other.c.get()); - break; - case types::sf80: - c.set(other.c.get()); - break; - case types::sf128: - c.set(other.c.get()); - break; - case types::sf160: - c.set(other.c.get()); - break; - case types::sf256: - c.set(other.c.get()); - break; - case types::sf320: - c.set(other.c.get()); - break; - case types::sf512: - c.set(other.c.get()); - break; - case types::sf640: - c.set(other.c.get()); - break; - case types::sf1024: - c.set(other.c.get()); - break; - case types::sf2048: - c.set(other.c.get()); - break; - case types::sf4096: - c.set(other.c.get()); - break; - case types::sf8192: - c.set(other.c.get()); - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); - } - - return *this; -} -void sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::to_json(json_writer& j) const -{ - j.start_obj(); - switch (type_) { - case types::sf10: - j.write_int("sf10", c.get()); - break; - case types::sf20: - j.write_int("sf20", c.get()); - break; - case types::sf32: - j.write_int("sf32", c.get()); - break; - case types::sf40: - j.write_int("sf40", c.get()); - break; - case types::sf64: - j.write_int("sf64", c.get()); - break; - case types::sf80: - j.write_int("sf80", c.get()); - break; - case types::sf128: - j.write_int("sf128", c.get()); - break; - case types::sf160: - j.write_int("sf160", c.get()); - break; - case types::sf256: - j.write_int("sf256", c.get()); - break; - case types::sf320: - j.write_int("sf320", c.get()); - break; - case types::sf512: - j.write_int("sf512", c.get()); - break; - case types::sf640: - j.write_int("sf640", c.get()); - break; - case types::sf1024: - j.write_int("sf1024", c.get()); - break; - case types::sf2048: - j.write_int("sf2048", c.get()); - break; - case types::sf4096: - j.write_int("sf4096", c.get()); - break; - case types::sf8192: - j.write_int("sf8192", c.get()); - break; - default: - log_invalid_choice_id(type_, "sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_"); - } - j.end_obj(); -} -SRSASN_CODE sc_mtch_sched_info_nb_r14_s::sched_period_start_offset_scptm_r14_c_::pack(bit_ref& bref) const -{ - type_.pack(bref); - switch (type_) { - case types::sf10: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)9u)); - break; - case types::sf20: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)19u)); + case types::sf20: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)19u)); break; case types::sf32: HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)31u)); @@ -19151,160 +17357,520 @@ SRSASN_CODE sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::pack(bit_ref& bre case types::dl_carrier_cfg_r14: HANDLE_CODE(c.get().pack(bref)); break; - case types::dl_carrier_idx_r14: - HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)15u)); + case types::dl_carrier_idx_r14: + HANDLE_CODE(pack_integer(bref, c.get(), (uint8_t)0u, (uint8_t)15u)); + break; + default: + log_invalid_choice_id(type_, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_"); + return SRSASN_ERROR_ENCODE_FAIL; + } + return SRSASN_SUCCESS; +} +SRSASN_CODE sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::unpack(cbit_ref& bref) +{ + types e; + e.unpack(bref); + set(e); + switch (type_) { + case types::dl_carrier_cfg_r14: + HANDLE_CODE(c.get().unpack(bref)); + break; + case types::dl_carrier_idx_r14: + HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)15u)); + break; + default: + log_invalid_choice_id(type_, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_"); + return SRSASN_ERROR_DECODE_FAIL; + } + return SRSASN_SUCCESS; +} + +std::string sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types_opts::to_string() const +{ + static const char* options[] = {"dl-CarrierConfig-r14", "dl-CarrierIndex-r14"}; + return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types"); +} + +std::string sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = {"n680", "n2536"}; + return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); +} +uint16_t sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_number() const +{ + static const uint16_t options[] = {680, 2536}; + return map_enum_number(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); +} + +std::string sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = {"r1", + "r2", + "r4", + "r8", + "r16", + "r32", + "r64", + "r128", + "r256", + "r512", + "r1024", + "r2048", + "spare4", + "spare3", + "spare2", + "spare1"}; + return convert_enum_idx(options, 16, value, "sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_e_"); +} +uint16_t sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_number() const +{ + static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048}; + return map_enum_number(options, 12, value, "sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_e_"); +} + +std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; + return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); +} +float sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number() const +{ + static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; + return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); +} +std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number_string() const +{ + static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; + return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); +} + +std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_string() const +{ + static const char* options[] = { + "zero", "oneEighth", "oneQuarter", "threeEighth", "oneHalf", "fiveEighth", "threeQuarter", "sevenEighth"}; + return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); +} +float sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number() const +{ + static const float options[] = {0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875}; + return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); +} +std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number_string() const +{ + static const char* options[] = {"0", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; + return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); +} + +// SCPTMConfiguration-NB-r14 ::= SEQUENCE +SRSASN_CODE scptm_cfg_nb_r14_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(scptm_neighbour_cell_list_r14_present, 1)); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + HANDLE_CODE(pack_dyn_seq_of(bref, sc_mtch_info_list_r14, 0, 64)); + if (scptm_neighbour_cell_list_r14_present) { + HANDLE_CODE(pack_dyn_seq_of(bref, scptm_neighbour_cell_list_r14, 1, 8)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE scptm_cfg_nb_r14_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(scptm_neighbour_cell_list_r14_present, 1)); + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + HANDLE_CODE(unpack_dyn_seq_of(sc_mtch_info_list_r14, bref, 0, 64)); + if (scptm_neighbour_cell_list_r14_present) { + HANDLE_CODE(unpack_dyn_seq_of(scptm_neighbour_cell_list_r14, bref, 1, 8)); + } + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void scptm_cfg_nb_r14_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.start_array("sc-mtch-InfoList-r14"); + for (const auto& e1 : sc_mtch_info_list_r14) { + e1.to_json(j); + } + j.end_array(); + if (scptm_neighbour_cell_list_r14_present) { + j.start_array("scptm-NeighbourCellList-r14"); + for (const auto& e1 : scptm_neighbour_cell_list_r14) { + e1.to_json(j); + } + j.end_array(); + } + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + j.start_obj(); + j.end_obj(); + } + j.end_obj(); +} + +// SC-MCCH-MessageType-NB ::= CHOICE +void sc_mcch_msg_type_nb_c::set(types::options e) +{ + type_ = e; +} +void sc_mcch_msg_type_nb_c::to_json(json_writer& j) const +{ + j.start_obj(); + switch (type_) { + case types::c1: + j.write_fieldname("c1"); + c.to_json(j); + break; + case types::msg_class_ext: + break; + default: + log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); + } + j.end_obj(); +} +SRSASN_CODE sc_mcch_msg_type_nb_c::pack(bit_ref& bref) const +{ + type_.pack(bref); + switch (type_) { + case types::c1: + HANDLE_CODE(c.pack(bref)); + break; + case types::msg_class_ext: break; default: - log_invalid_choice_id(type_, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_"); + log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); return SRSASN_ERROR_ENCODE_FAIL; } return SRSASN_SUCCESS; } -SRSASN_CODE sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::unpack(cbit_ref& bref) +SRSASN_CODE sc_mcch_msg_type_nb_c::unpack(cbit_ref& bref) { types e; e.unpack(bref); set(e); switch (type_) { - case types::dl_carrier_cfg_r14: - HANDLE_CODE(c.get().unpack(bref)); + case types::c1: + HANDLE_CODE(c.unpack(bref)); break; - case types::dl_carrier_idx_r14: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint8_t)0u, (uint8_t)15u)); + case types::msg_class_ext: break; default: - log_invalid_choice_id(type_, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_"); + log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); return SRSASN_ERROR_DECODE_FAIL; } return SRSASN_SUCCESS; } -std::string sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types_opts::to_string() const +void sc_mcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const { - static const char* options[] = {"dl-CarrierConfig-r14", "dl-CarrierIndex-r14"}; - return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::sc_mtch_carrier_cfg_r14_c_::types"); + j.start_obj(); + j.write_fieldname("scptmConfiguration-r14"); + c.to_json(j); + j.end_obj(); +} +SRSASN_CODE sc_mcch_msg_type_nb_c::c1_c_::pack(bit_ref& bref) const +{ + HANDLE_CODE(c.pack(bref)); + return SRSASN_SUCCESS; +} +SRSASN_CODE sc_mcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) +{ + HANDLE_CODE(c.unpack(bref)); + return SRSASN_SUCCESS; } -std::string sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_string() const +std::string sc_mcch_msg_type_nb_c::c1_c_::types_opts::to_string() const { - static const char* options[] = {"n680", "n2536"}; - return convert_enum_idx(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); + static const char* options[] = {"scptmConfiguration-r14"}; + return convert_enum_idx(options, 1, value, "sc_mcch_msg_type_nb_c::c1_c_::types"); } -uint16_t sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_opts::to_number() const + +std::string sc_mcch_msg_type_nb_c::types_opts::to_string() const { - static const uint16_t options[] = {680, 2536}; - return map_enum_number(options, 2, value, "sc_mtch_info_nb_r14_s::npdcch_npdsch_max_tbs_sc_mtch_r14_e_"); + static const char* options[] = {"c1", "messageClassExtension"}; + return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_nb_c::types"); +} +uint8_t sc_mcch_msg_type_nb_c::types_opts::to_number() const +{ + static const uint8_t options[] = {1}; + return map_enum_number(options, 1, value, "sc_mcch_msg_type_nb_c::types"); } -std::string sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_string() const +// SC-MCCH-Message-NB ::= SEQUENCE +SRSASN_CODE sc_mcch_msg_nb_s::pack(bit_ref& bref) const { - static const char* options[] = {"r1", - "r2", - "r4", - "r8", - "r16", - "r32", - "r64", - "r128", - "r256", - "r512", - "r1024", - "r2048", - "spare4", - "spare3", - "spare2", - "spare1"}; - return convert_enum_idx(options, 16, value, "sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_e_"); + HANDLE_CODE(msg.pack(bref)); + + bref.align_bytes_zero(); + + return SRSASN_SUCCESS; } -uint16_t sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_opts::to_number() const +SRSASN_CODE sc_mcch_msg_nb_s::unpack(cbit_ref& bref) { - static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048}; - return map_enum_number(options, 12, value, "sc_mtch_info_nb_r14_s::npdcch_num_repeats_sc_mtch_r14_e_"); + HANDLE_CODE(msg.unpack(bref)); + + bref.align_bytes(); + + return SRSASN_SUCCESS; +} +void sc_mcch_msg_nb_s::to_json(json_writer& j) const +{ + j.start_array(); + j.start_obj(); + j.start_obj("SC-MCCH-Message-NB"); + j.write_fieldname("message"); + msg.to_json(j); + j.end_obj(); + j.end_obj(); + j.end_array(); } -std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_string() const +// PhyLayerParameters-NB-v1430 ::= SEQUENCE +SRSASN_CODE phy_layer_params_nb_v1430_s::pack(bit_ref& bref) const { - static const char* options[] = {"v1dot5", "v2", "v4", "v8", "v16", "v32", "v48", "v64"}; - return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); + HANDLE_CODE(bref.pack(multi_carrier_nprach_r14_present, 1)); + HANDLE_CODE(bref.pack(two_harq_processes_r14_present, 1)); + + return SRSASN_SUCCESS; } -float sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number() const +SRSASN_CODE phy_layer_params_nb_v1430_s::unpack(cbit_ref& bref) { - static const float options[] = {1.5, 2.0, 4.0, 8.0, 16.0, 32.0, 48.0, 64.0}; - return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); + HANDLE_CODE(bref.unpack(multi_carrier_nprach_r14_present, 1)); + HANDLE_CODE(bref.unpack(two_harq_processes_r14_present, 1)); + + return SRSASN_SUCCESS; } -std::string sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_opts::to_number_string() const +void phy_layer_params_nb_v1430_s::to_json(json_writer& j) const { - static const char* options[] = {"1.5", "2", "4", "8", "16", "32", "48", "64"}; - return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_start_sf_sc_mtch_r14_e_"); + j.start_obj(); + if (multi_carrier_nprach_r14_present) { + j.write_str("multiCarrier-NPRACH-r14", "supported"); + } + if (two_harq_processes_r14_present) { + j.write_str("twoHARQ-Processes-r14", "supported"); + } + j.end_obj(); +} + +// PhyLayerParameters-NB-v1530 ::= SEQUENCE +SRSASN_CODE phy_layer_params_nb_v1530_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(mixed_operation_mode_r15_present, 1)); + HANDLE_CODE(bref.pack(sr_with_harq_ack_r15_present, 1)); + HANDLE_CODE(bref.pack(sr_without_harq_ack_r15_present, 1)); + HANDLE_CODE(bref.pack(nprach_format2_r15_present, 1)); + HANDLE_CODE(bref.pack(add_tx_sib1_r15_present, 1)); + HANDLE_CODE(bref.pack(npusch_minus3dot75k_hz_scs_tdd_r15_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE phy_layer_params_nb_v1530_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(mixed_operation_mode_r15_present, 1)); + HANDLE_CODE(bref.unpack(sr_with_harq_ack_r15_present, 1)); + HANDLE_CODE(bref.unpack(sr_without_harq_ack_r15_present, 1)); + HANDLE_CODE(bref.unpack(nprach_format2_r15_present, 1)); + HANDLE_CODE(bref.unpack(add_tx_sib1_r15_present, 1)); + HANDLE_CODE(bref.unpack(npusch_minus3dot75k_hz_scs_tdd_r15_present, 1)); + + return SRSASN_SUCCESS; +} +void phy_layer_params_nb_v1530_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (mixed_operation_mode_r15_present) { + j.write_str("mixedOperationMode-r15", "supported"); + } + if (sr_with_harq_ack_r15_present) { + j.write_str("sr-WithHARQ-ACK-r15", "supported"); + } + if (sr_without_harq_ack_r15_present) { + j.write_str("sr-WithoutHARQ-ACK-r15", "supported"); + } + if (nprach_format2_r15_present) { + j.write_str("nprach-Format2-r15", "supported"); + } + if (add_tx_sib1_r15_present) { + j.write_str("additionalTransmissionSIB1-r15", "supported"); + } + if (npusch_minus3dot75k_hz_scs_tdd_r15_present) { + j.write_str("npusch-3dot75kHz-SCS-TDD-r15", "supported"); + } + j.end_obj(); +} + +// TDD-UE-Capability-NB-r15 ::= SEQUENCE +SRSASN_CODE tdd_ue_cap_nb_r15_s::pack(bit_ref& bref) const +{ + bref.pack(ext, 1); + HANDLE_CODE(bref.pack(ue_category_nb_r15_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_rel13_r15_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_rel14_r15_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1530_present, 1)); + + if (phy_layer_params_rel13_r15_present) { + HANDLE_CODE(phy_layer_params_rel13_r15.pack(bref)); + } + if (phy_layer_params_rel14_r15_present) { + HANDLE_CODE(phy_layer_params_rel14_r15.pack(bref)); + } + if (phy_layer_params_v1530_present) { + HANDLE_CODE(phy_layer_params_v1530.pack(bref)); + } + + return SRSASN_SUCCESS; +} +SRSASN_CODE tdd_ue_cap_nb_r15_s::unpack(cbit_ref& bref) +{ + bref.unpack(ext, 1); + HANDLE_CODE(bref.unpack(ue_category_nb_r15_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_rel13_r15_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_rel14_r15_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_v1530_present, 1)); + + if (phy_layer_params_rel13_r15_present) { + HANDLE_CODE(phy_layer_params_rel13_r15.unpack(bref)); + } + if (phy_layer_params_rel14_r15_present) { + HANDLE_CODE(phy_layer_params_rel14_r15.unpack(bref)); + } + if (phy_layer_params_v1530_present) { + HANDLE_CODE(phy_layer_params_v1530.unpack(bref)); + } + + return SRSASN_SUCCESS; +} +void tdd_ue_cap_nb_r15_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (ue_category_nb_r15_present) { + j.write_str("ue-Category-NB-r15", "nb2"); + } + if (phy_layer_params_rel13_r15_present) { + j.write_fieldname("phyLayerParametersRel13-r15"); + phy_layer_params_rel13_r15.to_json(j); + } + if (phy_layer_params_rel14_r15_present) { + j.write_fieldname("phyLayerParametersRel14-r15"); + phy_layer_params_rel14_r15.to_json(j); + } + if (phy_layer_params_v1530_present) { + j.write_fieldname("phyLayerParameters-v1530"); + phy_layer_params_v1530.to_json(j); + } + j.end_obj(); +} + +// MAC-Parameters-NB-v1530 ::= SEQUENCE +SRSASN_CODE mac_params_nb_v1530_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(sr_sps_bsr_r15_present, 1)); + + return SRSASN_SUCCESS; +} +SRSASN_CODE mac_params_nb_v1530_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(sr_sps_bsr_r15_present, 1)); + + return SRSASN_SUCCESS; +} +void mac_params_nb_v1530_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (sr_sps_bsr_r15_present) { + j.write_str("sr-SPS-BSR-r15", "supported"); + } + j.end_obj(); } -std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_string() const +// RLC-Parameters-NB-r15 ::= SEQUENCE +SRSASN_CODE rlc_params_nb_r15_s::pack(bit_ref& bref) const { - static const char* options[] = { - "zero", "oneEighth", "oneQuarter", "threeEighth", "oneHalf", "fiveEighth", "threeQuarter", "sevenEighth"}; - return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); + HANDLE_CODE(bref.pack(rlc_um_r15_present, 1)); + + return SRSASN_SUCCESS; } -float sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number() const +SRSASN_CODE rlc_params_nb_r15_s::unpack(cbit_ref& bref) { - static const float options[] = {0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875}; - return map_enum_number(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); + HANDLE_CODE(bref.unpack(rlc_um_r15_present, 1)); + + return SRSASN_SUCCESS; } -std::string sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_opts::to_number_string() const +void rlc_params_nb_r15_s::to_json(json_writer& j) const { - static const char* options[] = {"0", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; - return convert_enum_idx(options, 8, value, "sc_mtch_info_nb_r14_s::npdcch_offset_sc_mtch_r14_e_"); + j.start_obj(); + if (rlc_um_r15_present) { + j.write_str("rlc-UM-r15", "supported"); + } + j.end_obj(); } -// SCPTMConfiguration-NB-r14 ::= SEQUENCE -SRSASN_CODE scptm_cfg_nb_r14_s::pack(bit_ref& bref) const +// UE-Capability-NB-v1530-IEs ::= SEQUENCE +SRSASN_CODE ue_cap_nb_v1530_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(bref.pack(scptm_neighbour_cell_list_r14_present, 1)); - HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(early_data_up_r15_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1530_present, 1)); + HANDLE_CODE(bref.pack(tdd_ue_cap_r15_present, 1)); HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - HANDLE_CODE(pack_dyn_seq_of(bref, sc_mtch_info_list_r14, 0, 64)); - if (scptm_neighbour_cell_list_r14_present) { - HANDLE_CODE(pack_dyn_seq_of(bref, scptm_neighbour_cell_list_r14, 1, 8)); + HANDLE_CODE(rlc_params_r15.pack(bref)); + HANDLE_CODE(mac_params_v1530.pack(bref)); + if (phy_layer_params_v1530_present) { + HANDLE_CODE(phy_layer_params_v1530.pack(bref)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.pack(bref)); + if (tdd_ue_cap_r15_present) { + HANDLE_CODE(tdd_ue_cap_r15.pack(bref)); } return SRSASN_SUCCESS; } -SRSASN_CODE scptm_cfg_nb_r14_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_cap_nb_v1530_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(bref.unpack(scptm_neighbour_cell_list_r14_present, 1)); - HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(early_data_up_r15_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_v1530_present, 1)); + HANDLE_CODE(bref.unpack(tdd_ue_cap_r15_present, 1)); HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - HANDLE_CODE(unpack_dyn_seq_of(sc_mtch_info_list_r14, bref, 0, 64)); - if (scptm_neighbour_cell_list_r14_present) { - HANDLE_CODE(unpack_dyn_seq_of(scptm_neighbour_cell_list_r14, bref, 1, 8)); + HANDLE_CODE(rlc_params_r15.unpack(bref)); + HANDLE_CODE(mac_params_v1530.unpack(bref)); + if (phy_layer_params_v1530_present) { + HANDLE_CODE(phy_layer_params_v1530.unpack(bref)); } - if (late_non_crit_ext_present) { - HANDLE_CODE(late_non_crit_ext.unpack(bref)); + if (tdd_ue_cap_r15_present) { + HANDLE_CODE(tdd_ue_cap_r15.unpack(bref)); } return SRSASN_SUCCESS; } -void scptm_cfg_nb_r14_s::to_json(json_writer& j) const +void ue_cap_nb_v1530_ies_s::to_json(json_writer& j) const { j.start_obj(); - j.start_array("sc-mtch-InfoList-r14"); - for (const auto& e1 : sc_mtch_info_list_r14) { - e1.to_json(j); + if (early_data_up_r15_present) { + j.write_str("earlyData-UP-r15", "supported"); } - j.end_array(); - if (scptm_neighbour_cell_list_r14_present) { - j.start_array("scptm-NeighbourCellList-r14"); - for (const auto& e1 : scptm_neighbour_cell_list_r14) { - e1.to_json(j); - } - j.end_array(); + j.write_fieldname("rlc-Parameters-r15"); + rlc_params_r15.to_json(j); + j.write_fieldname("mac-Parameters-v1530"); + mac_params_v1530.to_json(j); + if (phy_layer_params_v1530_present) { + j.write_fieldname("phyLayerParameters-v1530"); + phy_layer_params_v1530.to_json(j); } - if (late_non_crit_ext_present) { - j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + if (tdd_ue_cap_r15_present) { + j.write_fieldname("tdd-UE-Capability-r15"); + tdd_ue_cap_r15.to_json(j); } if (non_crit_ext_present) { j.write_fieldname("nonCriticalExtension"); @@ -19314,178 +17880,224 @@ void scptm_cfg_nb_r14_s::to_json(json_writer& j) const j.end_obj(); } -// SC-MCCH-MessageType-NB ::= CHOICE -void sc_mcch_msg_type_nb_c::destroy_() +// PhyLayerParameters-NB-v1440 ::= SEQUENCE +SRSASN_CODE phy_layer_params_nb_v1440_s::pack(bit_ref& bref) const { - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } + HANDLE_CODE(bref.pack(interference_randomisation_r14_present, 1)); + + return SRSASN_SUCCESS; } -void sc_mcch_msg_type_nb_c::set(types::options e) +SRSASN_CODE phy_layer_params_nb_v1440_s::unpack(cbit_ref& bref) { - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); + HANDLE_CODE(bref.unpack(interference_randomisation_r14_present, 1)); + + return SRSASN_SUCCESS; +} +void phy_layer_params_nb_v1440_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (interference_randomisation_r14_present) { + j.write_str("interferenceRandomisation-r14", "supported"); } + j.end_obj(); } -sc_mcch_msg_type_nb_c::sc_mcch_msg_type_nb_c(const sc_mcch_msg_type_nb_c& other) + +// UE-Capability-NB-v14x0-IEs ::= SEQUENCE +SRSASN_CODE ue_cap_nb_v14x0_ies_s::pack(bit_ref& bref) const { - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); + HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); } + + return SRSASN_SUCCESS; } -sc_mcch_msg_type_nb_c& sc_mcch_msg_type_nb_c::operator=(const sc_mcch_msg_type_nb_c& other) +SRSASN_CODE ue_cap_nb_v14x0_ies_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; + HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); + + if (late_non_crit_ext_present) { + HANDLE_CODE(late_non_crit_ext.unpack(bref)); } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); } - return *this; + return SRSASN_SUCCESS; } -void sc_mcch_msg_type_nb_c::to_json(json_writer& j) const +void ue_cap_nb_v14x0_ies_s::to_json(json_writer& j) const { j.start_obj(); - switch (type_) { - case types::c1: - j.write_fieldname("c1"); - c.get().to_json(j); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); + if (late_non_crit_ext_present) { + j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string()); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); } j.end_obj(); } -SRSASN_CODE sc_mcch_msg_type_nb_c::pack(bit_ref& bref) const + +// MAC-Parameters-NB-r14 ::= SEQUENCE +SRSASN_CODE mac_params_nb_r14_s::pack(bit_ref& bref) const { - type_.pack(bref); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().pack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); - return SRSASN_ERROR_ENCODE_FAIL; - } + HANDLE_CODE(bref.pack(data_inact_mon_r14_present, 1)); + HANDLE_CODE(bref.pack(rai_support_r14_present, 1)); + return SRSASN_SUCCESS; } -SRSASN_CODE sc_mcch_msg_type_nb_c::unpack(cbit_ref& bref) +SRSASN_CODE mac_params_nb_r14_s::unpack(cbit_ref& bref) { - types e; - e.unpack(bref); - set(e); - switch (type_) { - case types::c1: - HANDLE_CODE(c.get().unpack(bref)); - break; - case types::msg_class_ext: - break; - default: - log_invalid_choice_id(type_, "sc_mcch_msg_type_nb_c"); - return SRSASN_ERROR_DECODE_FAIL; + HANDLE_CODE(bref.unpack(data_inact_mon_r14_present, 1)); + HANDLE_CODE(bref.unpack(rai_support_r14_present, 1)); + + return SRSASN_SUCCESS; +} +void mac_params_nb_r14_s::to_json(json_writer& j) const +{ + j.start_obj(); + if (data_inact_mon_r14_present) { + j.write_str("dataInactMon-r14", "supported"); + } + if (rai_support_r14_present) { + j.write_str("rai-Support-r14", "supported"); } + j.end_obj(); +} + +// RF-Parameters-NB-v1430 ::= SEQUENCE +SRSASN_CODE rf_params_nb_v1430_s::pack(bit_ref& bref) const +{ + HANDLE_CODE(bref.pack(pwr_class_nb_minus14dbm_r14_present, 1)); + return SRSASN_SUCCESS; } +SRSASN_CODE rf_params_nb_v1430_s::unpack(cbit_ref& bref) +{ + HANDLE_CODE(bref.unpack(pwr_class_nb_minus14dbm_r14_present, 1)); -void sc_mcch_msg_type_nb_c::c1_c_::to_json(json_writer& j) const + return SRSASN_SUCCESS; +} +void rf_params_nb_v1430_s::to_json(json_writer& j) const { j.start_obj(); - j.write_fieldname("scptmConfiguration-r14"); - c.to_json(j); + if (pwr_class_nb_minus14dbm_r14_present) { + j.write_str("powerClassNB-14dBm-r14", "supported"); + } j.end_obj(); } -SRSASN_CODE sc_mcch_msg_type_nb_c::c1_c_::pack(bit_ref& bref) const + +// UE-Capability-NB-v1440-IEs ::= SEQUENCE +SRSASN_CODE ue_cap_nb_v1440_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(c.pack(bref)); + HANDLE_CODE(bref.pack(phy_layer_params_v1440_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); + + if (phy_layer_params_v1440_present) { + HANDLE_CODE(phy_layer_params_v1440.pack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } + return SRSASN_SUCCESS; } -SRSASN_CODE sc_mcch_msg_type_nb_c::c1_c_::unpack(cbit_ref& bref) +SRSASN_CODE ue_cap_nb_v1440_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(c.unpack(bref)); - return SRSASN_SUCCESS; -} + HANDLE_CODE(bref.unpack(phy_layer_params_v1440_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); -std::string sc_mcch_msg_type_nb_c::c1_c_::types_opts::to_string() const -{ - static const char* options[] = {"scptmConfiguration-r14"}; - return convert_enum_idx(options, 1, value, "sc_mcch_msg_type_nb_c::c1_c_::types"); -} + if (phy_layer_params_v1440_present) { + HANDLE_CODE(phy_layer_params_v1440.unpack(bref)); + } + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } -std::string sc_mcch_msg_type_nb_c::types_opts::to_string() const -{ - static const char* options[] = {"c1", "messageClassExtension"}; - return convert_enum_idx(options, 2, value, "sc_mcch_msg_type_nb_c::types"); + return SRSASN_SUCCESS; } -uint8_t sc_mcch_msg_type_nb_c::types_opts::to_number() const +void ue_cap_nb_v1440_ies_s::to_json(json_writer& j) const { - static const uint8_t options[] = {1}; - return map_enum_number(options, 1, value, "sc_mcch_msg_type_nb_c::types"); + j.start_obj(); + if (phy_layer_params_v1440_present) { + j.write_fieldname("phyLayerParameters-v1440"); + phy_layer_params_v1440.to_json(j); + } + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } + j.end_obj(); } -// SC-MCCH-Message-NB ::= SEQUENCE -SRSASN_CODE sc_mcch_msg_nb_s::pack(bit_ref& bref) const +// UE-Capability-NB-Ext-r14-IEs ::= SEQUENCE +SRSASN_CODE ue_cap_nb_ext_r14_ies_s::pack(bit_ref& bref) const { - HANDLE_CODE(msg.pack(bref)); + HANDLE_CODE(bref.pack(ue_category_nb_r14_present, 1)); + HANDLE_CODE(bref.pack(mac_params_r14_present, 1)); + HANDLE_CODE(bref.pack(phy_layer_params_v1430_present, 1)); + HANDLE_CODE(bref.pack(non_crit_ext_present, 1)); - bref.align_bytes_zero(); + if (mac_params_r14_present) { + HANDLE_CODE(mac_params_r14.pack(bref)); + } + if (phy_layer_params_v1430_present) { + HANDLE_CODE(phy_layer_params_v1430.pack(bref)); + } + HANDLE_CODE(rf_params_v1430.pack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.pack(bref)); + } return SRSASN_SUCCESS; } -SRSASN_CODE sc_mcch_msg_nb_s::unpack(cbit_ref& bref) +SRSASN_CODE ue_cap_nb_ext_r14_ies_s::unpack(cbit_ref& bref) { - HANDLE_CODE(msg.unpack(bref)); + HANDLE_CODE(bref.unpack(ue_category_nb_r14_present, 1)); + HANDLE_CODE(bref.unpack(mac_params_r14_present, 1)); + HANDLE_CODE(bref.unpack(phy_layer_params_v1430_present, 1)); + HANDLE_CODE(bref.unpack(non_crit_ext_present, 1)); - bref.align_bytes(); + if (mac_params_r14_present) { + HANDLE_CODE(mac_params_r14.unpack(bref)); + } + if (phy_layer_params_v1430_present) { + HANDLE_CODE(phy_layer_params_v1430.unpack(bref)); + } + HANDLE_CODE(rf_params_v1430.unpack(bref)); + if (non_crit_ext_present) { + HANDLE_CODE(non_crit_ext.unpack(bref)); + } return SRSASN_SUCCESS; } -void sc_mcch_msg_nb_s::to_json(json_writer& j) const +void ue_cap_nb_ext_r14_ies_s::to_json(json_writer& j) const { - j.start_array(); j.start_obj(); - j.start_obj("SC-MCCH-Message-NB"); - j.write_fieldname("message"); - msg.to_json(j); - j.end_obj(); + if (ue_category_nb_r14_present) { + j.write_str("ue-Category-NB-r14", "nb2"); + } + if (mac_params_r14_present) { + j.write_fieldname("mac-Parameters-r14"); + mac_params_r14.to_json(j); + } + if (phy_layer_params_v1430_present) { + j.write_fieldname("phyLayerParameters-v1430"); + phy_layer_params_v1430.to_json(j); + } + j.write_fieldname("rf-Parameters-v1430"); + rf_params_v1430.to_json(j); + if (non_crit_ext_present) { + j.write_fieldname("nonCriticalExtension"); + non_crit_ext.to_json(j); + } j.end_obj(); - j.end_array(); } // UE-RadioPagingInfo-NB-r13 ::= SEQUENCE @@ -19690,66 +18302,9 @@ void ue_cap_info_nb_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_info_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ue_cap_info_r13: - c.destroy(); - break; - default: - break; - } -} void ue_cap_info_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ue_cap_info_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_nb_s::crit_exts_c_"); - } -} -ue_cap_info_nb_s::crit_exts_c_::crit_exts_c_(const ue_cap_info_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_cap_info_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_nb_s::crit_exts_c_"); - } -} -ue_cap_info_nb_s::crit_exts_c_& ue_cap_info_nb_s::crit_exts_c_::operator=(const ue_cap_info_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ue_cap_info_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_nb_s::crit_exts_c_"); - } - - return *this; } void ue_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -19757,7 +18312,7 @@ void ue_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ue_cap_info_r13: j.write_fieldname("ueCapabilityInformation-r13"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -19771,7 +18326,7 @@ SRSASN_CODE ue_cap_info_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ue_cap_info_r13: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -19788,7 +18343,7 @@ SRSASN_CODE ue_cap_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ue_cap_info_r13: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -19863,67 +18418,9 @@ void ue_paging_coverage_info_nb_s::to_json(json_writer& j) const j.end_obj(); } -void ue_paging_coverage_info_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_paging_coverage_info_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_nb_s::crit_exts_c_"); - } -} -ue_paging_coverage_info_nb_s::crit_exts_c_::crit_exts_c_(const ue_paging_coverage_info_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_nb_s::crit_exts_c_"); - } -} -ue_paging_coverage_info_nb_s::crit_exts_c_& -ue_paging_coverage_info_nb_s::crit_exts_c_::operator=(const ue_paging_coverage_info_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_paging_coverage_info_nb_s::crit_exts_c_"); - } - - return *this; } void ue_paging_coverage_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -19931,7 +18428,7 @@ void ue_paging_coverage_info_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -19945,7 +18442,7 @@ SRSASN_CODE ue_paging_coverage_info_nb_s::crit_exts_c_::pack(bit_ref& bref) cons type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -19962,7 +18459,7 @@ SRSASN_CODE ue_paging_coverage_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -20160,84 +18657,26 @@ void ue_radio_access_cap_info_nb_ies_s::to_json(json_writer& j) const SRSASN_CODE ue_radio_access_cap_info_nb_s::pack(bit_ref& bref) const { HANDLE_CODE(crit_exts.pack(bref)); - - return SRSASN_SUCCESS; -} -SRSASN_CODE ue_radio_access_cap_info_nb_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void ue_radio_access_cap_info_nb_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void ue_radio_access_cap_info_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} -void ue_radio_access_cap_info_nb_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_nb_s::crit_exts_c_"); - } + + return SRSASN_SUCCESS; } -ue_radio_access_cap_info_nb_s::crit_exts_c_::crit_exts_c_(const ue_radio_access_cap_info_nb_s::crit_exts_c_& other) +SRSASN_CODE ue_radio_access_cap_info_nb_s::unpack(cbit_ref& bref) { - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_nb_s::crit_exts_c_"); - } + HANDLE_CODE(crit_exts.unpack(bref)); + + return SRSASN_SUCCESS; } -ue_radio_access_cap_info_nb_s::crit_exts_c_& -ue_radio_access_cap_info_nb_s::crit_exts_c_::operator=(const ue_radio_access_cap_info_nb_s::crit_exts_c_& other) +void ue_radio_access_cap_info_nb_s::to_json(json_writer& j) const { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_nb_s::crit_exts_c_"); - } + j.start_obj(); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} - return *this; +void ue_radio_access_cap_info_nb_s::crit_exts_c_::set(types::options e) +{ + type_ = e; } void ue_radio_access_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -20245,7 +18684,7 @@ void ue_radio_access_cap_info_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -20259,7 +18698,7 @@ SRSASN_CODE ue_radio_access_cap_info_nb_s::crit_exts_c_::pack(bit_ref& bref) con type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -20276,7 +18715,7 @@ SRSASN_CODE ue_radio_access_cap_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -20407,67 +18846,9 @@ void ue_radio_paging_info_nb_s::to_json(json_writer& j) const j.end_obj(); } -void ue_radio_paging_info_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_radio_paging_info_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_nb_s::crit_exts_c_"); - } -} -ue_radio_paging_info_nb_s::crit_exts_c_::crit_exts_c_(const ue_radio_paging_info_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_nb_s::crit_exts_c_"); - } -} -ue_radio_paging_info_nb_s::crit_exts_c_& -ue_radio_paging_info_nb_s::crit_exts_c_::operator=(const ue_radio_paging_info_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_nb_s::crit_exts_c_"); - } - - return *this; } void ue_radio_paging_info_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -20475,7 +18856,7 @@ void ue_radio_paging_info_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -20489,7 +18870,7 @@ SRSASN_CODE ue_radio_paging_info_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -20506,7 +18887,7 @@ SRSASN_CODE ue_radio_paging_info_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -20588,66 +18969,9 @@ std::string ue_radio_paging_info_nb_s::crit_exts_c_::c1_c_::types_opts::to_strin } // UL-CCCH-MessageType-NB ::= CHOICE -void ul_ccch_msg_type_nb_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_ccch_msg_type_nb_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_nb_c"); - } -} -ul_ccch_msg_type_nb_c::ul_ccch_msg_type_nb_c(const ul_ccch_msg_type_nb_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_nb_c"); - } -} -ul_ccch_msg_type_nb_c& ul_ccch_msg_type_nb_c::operator=(const ul_ccch_msg_type_nb_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_nb_c"); - } - - return *this; } void ul_ccch_msg_type_nb_c::to_json(json_writer& j) const { @@ -20655,7 +18979,7 @@ void ul_ccch_msg_type_nb_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -20669,7 +18993,7 @@ SRSASN_CODE ul_ccch_msg_type_nb_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -20686,7 +19010,7 @@ SRSASN_CODE ul_ccch_msg_type_nb_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -20970,67 +19294,9 @@ void ul_info_transfer_nb_s::to_json(json_writer& j) const j.end_obj(); } -void ul_info_transfer_nb_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ul_info_transfer_r13: - c.destroy(); - break; - default: - break; - } -} void ul_info_transfer_nb_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ul_info_transfer_r13: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_nb_s::crit_exts_c_"); - } -} -ul_info_transfer_nb_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_nb_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ul_info_transfer_r13: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_nb_s::crit_exts_c_"); - } -} -ul_info_transfer_nb_s::crit_exts_c_& -ul_info_transfer_nb_s::crit_exts_c_::operator=(const ul_info_transfer_nb_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ul_info_transfer_r13: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_nb_s::crit_exts_c_"); - } - - return *this; } void ul_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const { @@ -21038,7 +19304,7 @@ void ul_info_transfer_nb_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ul_info_transfer_r13: j.write_fieldname("ulInformationTransfer-r13"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -21052,7 +19318,7 @@ SRSASN_CODE ul_info_transfer_nb_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ul_info_transfer_r13: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -21069,7 +19335,7 @@ SRSASN_CODE ul_info_transfer_nb_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ul_info_transfer_r13: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -21087,66 +19353,9 @@ std::string ul_info_transfer_nb_s::crit_exts_c_::types_opts::to_string() const } // UL-DCCH-MessageType-NB ::= CHOICE -void ul_dcch_msg_type_nb_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_dcch_msg_type_nb_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_nb_c"); - } -} -ul_dcch_msg_type_nb_c::ul_dcch_msg_type_nb_c(const ul_dcch_msg_type_nb_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_nb_c"); - } -} -ul_dcch_msg_type_nb_c& ul_dcch_msg_type_nb_c::operator=(const ul_dcch_msg_type_nb_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_nb_c"); - } - - return *this; } void ul_dcch_msg_type_nb_c::to_json(json_writer& j) const { @@ -21154,7 +19363,7 @@ void ul_dcch_msg_type_nb_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -21168,7 +19377,7 @@ SRSASN_CODE ul_dcch_msg_type_nb_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -21185,7 +19394,7 @@ SRSASN_CODE ul_dcch_msg_type_nb_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; diff --git a/lib/src/asn1/rrc_nr.cc b/lib/src/asn1/rrc_nr.cc index 95b9d3660..f8df642bd 100644 --- a/lib/src/asn1/rrc_nr.cc +++ b/lib/src/asn1/rrc_nr.cc @@ -120,66 +120,9 @@ std::string mib_s::intra_freq_resel_opts::to_string() const } // BCCH-BCH-MessageType ::= CHOICE -void bcch_bch_msg_type_c::destroy_() -{ - switch (type_) { - case types::mib: - c.destroy(); - break; - default: - break; - } -} void bcch_bch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::mib: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_bch_msg_type_c"); - } -} -bcch_bch_msg_type_c::bcch_bch_msg_type_c(const bcch_bch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::mib: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_bch_msg_type_c"); - } -} -bcch_bch_msg_type_c& bcch_bch_msg_type_c::operator=(const bcch_bch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::mib: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_bch_msg_type_c"); - } - - return *this; } void bcch_bch_msg_type_c::to_json(json_writer& j) const { @@ -187,7 +130,7 @@ void bcch_bch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::mib: j.write_fieldname("mib"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -201,7 +144,7 @@ SRSASN_CODE bcch_bch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::mib: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -218,7 +161,7 @@ SRSASN_CODE bcch_bch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::mib: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -7751,66 +7694,9 @@ void sys_info_s::to_json(json_writer& j) const j.end_obj(); } -void sys_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::sys_info: - c.destroy(); - break; - default: - break; - } -} void sys_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::sys_info: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); - } -} -sys_info_s::crit_exts_c_::crit_exts_c_(const sys_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::sys_info: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); - } -} -sys_info_s::crit_exts_c_& sys_info_s::crit_exts_c_::operator=(const sys_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::sys_info: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "sys_info_s::crit_exts_c_"); - } - - return *this; } void sys_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -7818,7 +7704,7 @@ void sys_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::sys_info: j.write_fieldname("systemInformation"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -7832,7 +7718,7 @@ SRSASN_CODE sys_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::sys_info: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -7849,7 +7735,7 @@ SRSASN_CODE sys_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::sys_info: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -7867,66 +7753,9 @@ std::string sys_info_s::crit_exts_c_::types_opts::to_string() const } // BCCH-DL-SCH-MessageType ::= CHOICE -void bcch_dl_sch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void bcch_dl_sch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); - } -} -bcch_dl_sch_msg_type_c::bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); - } -} -bcch_dl_sch_msg_type_c& bcch_dl_sch_msg_type_c::operator=(const bcch_dl_sch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "bcch_dl_sch_msg_type_c"); - } - - return *this; } void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const { @@ -7934,7 +7763,7 @@ void bcch_dl_sch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -7948,7 +7777,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -7965,7 +7794,7 @@ SRSASN_CODE bcch_dl_sch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -9222,66 +9051,9 @@ void rrc_reject_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_reject_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_reject: - c.destroy(); - break; - default: - break; - } -} void rrc_reject_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_reject: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reject_s::crit_exts_c_"); - } -} -rrc_reject_s::crit_exts_c_::crit_exts_c_(const rrc_reject_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_reject: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reject_s::crit_exts_c_"); - } -} -rrc_reject_s::crit_exts_c_& rrc_reject_s::crit_exts_c_::operator=(const rrc_reject_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_reject: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reject_s::crit_exts_c_"); - } - - return *this; } void rrc_reject_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9289,7 +9061,7 @@ void rrc_reject_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_reject: j.write_fieldname("rrcReject"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9303,7 +9075,7 @@ SRSASN_CODE rrc_reject_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_reject: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9320,7 +9092,7 @@ SRSASN_CODE rrc_reject_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_reject: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9361,66 +9133,9 @@ void rrc_setup_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_setup_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_setup: - c.destroy(); - break; - default: - break; - } -} void rrc_setup_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_setup: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_s::crit_exts_c_"); - } -} -rrc_setup_s::crit_exts_c_::crit_exts_c_(const rrc_setup_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_setup: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_s::crit_exts_c_"); - } -} -rrc_setup_s::crit_exts_c_& rrc_setup_s::crit_exts_c_::operator=(const rrc_setup_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_setup: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_s::crit_exts_c_"); - } - - return *this; } void rrc_setup_s::crit_exts_c_::to_json(json_writer& j) const { @@ -9428,7 +9143,7 @@ void rrc_setup_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_setup: j.write_fieldname("rrcSetup"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -9442,7 +9157,7 @@ SRSASN_CODE rrc_setup_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_setup: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -9459,7 +9174,7 @@ SRSASN_CODE rrc_setup_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_setup: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -9477,66 +9192,9 @@ std::string rrc_setup_s::crit_exts_c_::types_opts::to_string() const } // DL-CCCH-MessageType ::= CHOICE -void dl_ccch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_ccch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); - } -} -dl_ccch_msg_type_c::dl_ccch_msg_type_c(const dl_ccch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); - } -} -dl_ccch_msg_type_c& dl_ccch_msg_type_c::operator=(const dl_ccch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_ccch_msg_type_c"); - } - - return *this; } void dl_ccch_msg_type_c::to_json(json_writer& j) const { @@ -9544,7 +9202,7 @@ void dl_ccch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -9558,7 +9216,7 @@ SRSASN_CODE dl_ccch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -9575,7 +9233,7 @@ SRSASN_CODE dl_ccch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -15753,66 +15411,9 @@ void counter_check_s::to_json(json_writer& j) const j.end_obj(); } -void counter_check_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::counter_check: - c.destroy(); - break; - default: - break; - } -} void counter_check_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::counter_check: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } -} -counter_check_s::crit_exts_c_::crit_exts_c_(const counter_check_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::counter_check: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } -} -counter_check_s::crit_exts_c_& counter_check_s::crit_exts_c_::operator=(const counter_check_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::counter_check: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_s::crit_exts_c_"); - } - - return *this; } void counter_check_s::crit_exts_c_::to_json(json_writer& j) const { @@ -15820,7 +15421,7 @@ void counter_check_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::counter_check: j.write_fieldname("counterCheck"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -15834,7 +15435,7 @@ SRSASN_CODE counter_check_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::counter_check: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -15851,7 +15452,7 @@ SRSASN_CODE counter_check_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::counter_check: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -15892,67 +15493,9 @@ void dl_info_transfer_s::to_json(json_writer& j) const j.end_obj(); } -void dl_info_transfer_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::dl_info_transfer: - c.destroy(); - break; - default: - break; - } -} void dl_info_transfer_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::dl_info_transfer: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } -} -dl_info_transfer_s::crit_exts_c_::crit_exts_c_(const dl_info_transfer_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::dl_info_transfer: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } -} -dl_info_transfer_s::crit_exts_c_& -dl_info_transfer_s::crit_exts_c_::operator=(const dl_info_transfer_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::dl_info_transfer: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_info_transfer_s::crit_exts_c_"); - } - - return *this; } void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { @@ -15960,7 +15503,7 @@ void dl_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::dl_info_transfer: j.write_fieldname("dlInformationTransfer"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -15974,7 +15517,7 @@ SRSASN_CODE dl_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::dl_info_transfer: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -15991,7 +15534,7 @@ SRSASN_CODE dl_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::dl_info_transfer: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16032,67 +15575,9 @@ void mob_from_nr_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void mob_from_nr_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::mob_from_nr_cmd: - c.destroy(); - break; - default: - break; - } -} void mob_from_nr_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::mob_from_nr_cmd: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_nr_cmd_s::crit_exts_c_"); - } -} -mob_from_nr_cmd_s::crit_exts_c_::crit_exts_c_(const mob_from_nr_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::mob_from_nr_cmd: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_nr_cmd_s::crit_exts_c_"); - } -} -mob_from_nr_cmd_s::crit_exts_c_& -mob_from_nr_cmd_s::crit_exts_c_::operator=(const mob_from_nr_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::mob_from_nr_cmd: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "mob_from_nr_cmd_s::crit_exts_c_"); - } - - return *this; } void mob_from_nr_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16100,7 +15585,7 @@ void mob_from_nr_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::mob_from_nr_cmd: j.write_fieldname("mobilityFromNRCommand"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16114,7 +15599,7 @@ SRSASN_CODE mob_from_nr_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::mob_from_nr_cmd: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16131,7 +15616,7 @@ SRSASN_CODE mob_from_nr_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::mob_from_nr_cmd: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16172,66 +15657,9 @@ void rrc_recfg_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_recfg_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_recfg: - c.destroy(); - break; - default: - break; - } -} void rrc_recfg_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_recfg: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_s::crit_exts_c_"); - } -} -rrc_recfg_s::crit_exts_c_::crit_exts_c_(const rrc_recfg_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_recfg: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_s::crit_exts_c_"); - } -} -rrc_recfg_s::crit_exts_c_& rrc_recfg_s::crit_exts_c_::operator=(const rrc_recfg_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_recfg: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_s::crit_exts_c_"); - } - - return *this; } void rrc_recfg_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16239,7 +15667,7 @@ void rrc_recfg_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_recfg: j.write_fieldname("rrcReconfiguration"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16253,7 +15681,7 @@ SRSASN_CODE rrc_recfg_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_recfg: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16270,7 +15698,7 @@ SRSASN_CODE rrc_recfg_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_recfg: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16311,66 +15739,9 @@ void rrc_reest_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_reest_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_reest: - c.destroy(); - break; - default: - break; - } -} void rrc_reest_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_reest: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_s::crit_exts_c_"); - } -} -rrc_reest_s::crit_exts_c_::crit_exts_c_(const rrc_reest_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_reest: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_s::crit_exts_c_"); - } -} -rrc_reest_s::crit_exts_c_& rrc_reest_s::crit_exts_c_::operator=(const rrc_reest_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_reest: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_s::crit_exts_c_"); - } - - return *this; } void rrc_reest_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16378,7 +15749,7 @@ void rrc_reest_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_reest: j.write_fieldname("rrcReestablishment"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16392,7 +15763,7 @@ SRSASN_CODE rrc_reest_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_reest: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16409,7 +15780,7 @@ SRSASN_CODE rrc_reest_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_reest: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16450,66 +15821,9 @@ void rrc_release_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_release_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_release: - c.destroy(); - break; - default: - break; - } -} void rrc_release_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_release: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_release_s::crit_exts_c_"); - } -} -rrc_release_s::crit_exts_c_::crit_exts_c_(const rrc_release_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_release: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_release_s::crit_exts_c_"); - } -} -rrc_release_s::crit_exts_c_& rrc_release_s::crit_exts_c_::operator=(const rrc_release_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_release: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_release_s::crit_exts_c_"); - } - - return *this; } void rrc_release_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16517,7 +15831,7 @@ void rrc_release_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_release: j.write_fieldname("rrcRelease"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16531,7 +15845,7 @@ SRSASN_CODE rrc_release_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_release: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16548,7 +15862,7 @@ SRSASN_CODE rrc_release_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_release: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16589,66 +15903,9 @@ void rrc_resume_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_resume_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_resume: - c.destroy(); - break; - default: - break; - } -} void rrc_resume_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_resume: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_s::crit_exts_c_"); - } -} -rrc_resume_s::crit_exts_c_::crit_exts_c_(const rrc_resume_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_resume: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_s::crit_exts_c_"); - } -} -rrc_resume_s::crit_exts_c_& rrc_resume_s::crit_exts_c_::operator=(const rrc_resume_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_resume: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_s::crit_exts_c_"); - } - - return *this; } void rrc_resume_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16656,7 +15913,7 @@ void rrc_resume_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_resume: j.write_fieldname("rrcResume"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16670,7 +15927,7 @@ SRSASN_CODE rrc_resume_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_resume: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16687,7 +15944,7 @@ SRSASN_CODE rrc_resume_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_resume: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16728,67 +15985,9 @@ void security_mode_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::security_mode_cmd: - c.destroy(); - break; - default: - break; - } -} void security_mode_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::security_mode_cmd: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } -} -security_mode_cmd_s::crit_exts_c_::crit_exts_c_(const security_mode_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::security_mode_cmd: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } -} -security_mode_cmd_s::crit_exts_c_& -security_mode_cmd_s::crit_exts_c_::operator=(const security_mode_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::security_mode_cmd: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_cmd_s::crit_exts_c_"); - } - - return *this; } void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16796,7 +15995,7 @@ void security_mode_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::security_mode_cmd: j.write_fieldname("securityModeCommand"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16810,7 +16009,7 @@ SRSASN_CODE security_mode_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::security_mode_cmd: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16827,7 +16026,7 @@ SRSASN_CODE security_mode_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::security_mode_cmd: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16868,66 +16067,9 @@ void ue_cap_enquiry_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_enquiry_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ue_cap_enquiry: - c.destroy(); - break; - default: - break; - } -} void ue_cap_enquiry_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ue_cap_enquiry: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } -} -ue_cap_enquiry_s::crit_exts_c_::crit_exts_c_(const ue_cap_enquiry_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_cap_enquiry: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } -} -ue_cap_enquiry_s::crit_exts_c_& ue_cap_enquiry_s::crit_exts_c_::operator=(const ue_cap_enquiry_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ue_cap_enquiry: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_enquiry_s::crit_exts_c_"); - } - - return *this; } void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const { @@ -16935,7 +16077,7 @@ void ue_cap_enquiry_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ue_cap_enquiry: j.write_fieldname("ueCapabilityEnquiry"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -16949,7 +16091,7 @@ SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ue_cap_enquiry: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -16966,7 +16108,7 @@ SRSASN_CODE ue_cap_enquiry_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ue_cap_enquiry: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -16984,66 +16126,9 @@ std::string ue_cap_enquiry_s::crit_exts_c_::types_opts::to_string() const } // DL-DCCH-MessageType ::= CHOICE -void dl_dcch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void dl_dcch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - } -} -dl_dcch_msg_type_c::dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - } -} -dl_dcch_msg_type_c& dl_dcch_msg_type_c::operator=(const dl_dcch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "dl_dcch_msg_type_c"); - } - - return *this; } void dl_dcch_msg_type_c::to_json(json_writer& j) const { @@ -17051,7 +16136,7 @@ void dl_dcch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -17065,7 +16150,7 @@ SRSASN_CODE dl_dcch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -17082,7 +16167,7 @@ SRSASN_CODE dl_dcch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -17723,66 +16808,9 @@ void paging_s::to_json(json_writer& j) const } // PCCH-MessageType ::= CHOICE -void pcch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void pcch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } -} -pcch_msg_type_c::pcch_msg_type_c(const pcch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } -} -pcch_msg_type_c& pcch_msg_type_c::operator=(const pcch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "pcch_msg_type_c"); - } - - return *this; } void pcch_msg_type_c::to_json(json_writer& j) const { @@ -17790,7 +16818,7 @@ void pcch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -17804,7 +16832,7 @@ SRSASN_CODE pcch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -17821,7 +16849,7 @@ SRSASN_CODE pcch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -18326,67 +17354,9 @@ void rrc_sys_info_request_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_sys_info_request_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_sys_info_request: - c.destroy(); - break; - default: - break; - } -} void rrc_sys_info_request_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_sys_info_request: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_sys_info_request_s::crit_exts_c_"); - } -} -rrc_sys_info_request_s::crit_exts_c_::crit_exts_c_(const rrc_sys_info_request_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_sys_info_request: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_sys_info_request_s::crit_exts_c_"); - } -} -rrc_sys_info_request_s::crit_exts_c_& -rrc_sys_info_request_s::crit_exts_c_::operator=(const rrc_sys_info_request_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_sys_info_request: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_sys_info_request_s::crit_exts_c_"); - } - - return *this; } void rrc_sys_info_request_s::crit_exts_c_::to_json(json_writer& j) const { @@ -18394,7 +17364,7 @@ void rrc_sys_info_request_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_sys_info_request: j.write_fieldname("rrcSystemInfoRequest"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -18408,7 +17378,7 @@ SRSASN_CODE rrc_sys_info_request_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_sys_info_request: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -18425,7 +17395,7 @@ SRSASN_CODE rrc_sys_info_request_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_sys_info_request: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -18443,66 +17413,9 @@ std::string rrc_sys_info_request_s::crit_exts_c_::types_opts::to_string() const } // UL-CCCH-MessageType ::= CHOICE -void ul_ccch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_ccch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); - } -} -ul_ccch_msg_type_c::ul_ccch_msg_type_c(const ul_ccch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); - } -} -ul_ccch_msg_type_c& ul_ccch_msg_type_c::operator=(const ul_ccch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch_msg_type_c"); - } - - return *this; } void ul_ccch_msg_type_c::to_json(json_writer& j) const { @@ -18510,7 +17423,7 @@ void ul_ccch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -18524,7 +17437,7 @@ SRSASN_CODE ul_ccch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -18541,7 +17454,7 @@ SRSASN_CODE ul_ccch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -18813,66 +17726,9 @@ void rrc_resume_request1_s::to_json(json_writer& j) const } // UL-CCCH1-MessageType ::= CHOICE -void ul_ccch1_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_ccch1_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch1_msg_type_c"); - } -} -ul_ccch1_msg_type_c::ul_ccch1_msg_type_c(const ul_ccch1_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch1_msg_type_c"); - } -} -ul_ccch1_msg_type_c& ul_ccch1_msg_type_c::operator=(const ul_ccch1_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_ccch1_msg_type_c"); - } - - return *this; } void ul_ccch1_msg_type_c::to_json(json_writer& j) const { @@ -18880,7 +17736,7 @@ void ul_ccch1_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -18894,7 +17750,7 @@ SRSASN_CODE ul_ccch1_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -18911,7 +17767,7 @@ SRSASN_CODE ul_ccch1_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -22425,67 +21281,9 @@ void counter_check_resp_s::to_json(json_writer& j) const j.end_obj(); } -void counter_check_resp_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::counter_check_resp: - c.destroy(); - break; - default: - break; - } -} void counter_check_resp_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::counter_check_resp: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } -} -counter_check_resp_s::crit_exts_c_::crit_exts_c_(const counter_check_resp_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::counter_check_resp: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } -} -counter_check_resp_s::crit_exts_c_& -counter_check_resp_s::crit_exts_c_::operator=(const counter_check_resp_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::counter_check_resp: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "counter_check_resp_s::crit_exts_c_"); - } - - return *this; } void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const { @@ -22493,7 +21291,7 @@ void counter_check_resp_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::counter_check_resp: j.write_fieldname("counterCheckResponse"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -22507,7 +21305,7 @@ SRSASN_CODE counter_check_resp_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::counter_check_resp: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -22524,7 +21322,7 @@ SRSASN_CODE counter_check_resp_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::counter_check_resp: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -22562,66 +21360,9 @@ void fail_info_s::to_json(json_writer& j) const j.end_obj(); } -void fail_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::fail_info: - c.destroy(); - break; - default: - break; - } -} void fail_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::fail_info: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "fail_info_s::crit_exts_c_"); - } -} -fail_info_s::crit_exts_c_::crit_exts_c_(const fail_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::fail_info: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "fail_info_s::crit_exts_c_"); - } -} -fail_info_s::crit_exts_c_& fail_info_s::crit_exts_c_::operator=(const fail_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::fail_info: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "fail_info_s::crit_exts_c_"); - } - - return *this; } void fail_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -22629,7 +21370,7 @@ void fail_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::fail_info: j.write_fieldname("failureInformation"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -22643,7 +21384,7 @@ SRSASN_CODE fail_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::fail_info: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -22660,7 +21401,7 @@ SRSASN_CODE fail_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::fail_info: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -22698,67 +21439,9 @@ void location_meas_ind_s::to_json(json_writer& j) const j.end_obj(); } -void location_meas_ind_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::location_meas_ind: - c.destroy(); - break; - default: - break; - } -} void location_meas_ind_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::location_meas_ind: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "location_meas_ind_s::crit_exts_c_"); - } -} -location_meas_ind_s::crit_exts_c_::crit_exts_c_(const location_meas_ind_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::location_meas_ind: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "location_meas_ind_s::crit_exts_c_"); - } -} -location_meas_ind_s::crit_exts_c_& -location_meas_ind_s::crit_exts_c_::operator=(const location_meas_ind_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::location_meas_ind: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "location_meas_ind_s::crit_exts_c_"); - } - - return *this; } void location_meas_ind_s::crit_exts_c_::to_json(json_writer& j) const { @@ -22766,7 +21449,7 @@ void location_meas_ind_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::location_meas_ind: j.write_fieldname("locationMeasurementIndication"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -22780,7 +21463,7 @@ SRSASN_CODE location_meas_ind_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::location_meas_ind: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -22797,7 +21480,7 @@ SRSASN_CODE location_meas_ind_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::location_meas_ind: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -22835,66 +21518,9 @@ void meas_report_s::to_json(json_writer& j) const j.end_obj(); } -void meas_report_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::meas_report: - c.destroy(); - break; - default: - break; - } -} void meas_report_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::meas_report: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } -} -meas_report_s::crit_exts_c_::crit_exts_c_(const meas_report_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::meas_report: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } -} -meas_report_s::crit_exts_c_& meas_report_s::crit_exts_c_::operator=(const meas_report_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::meas_report: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_report_s::crit_exts_c_"); - } - - return *this; } void meas_report_s::crit_exts_c_::to_json(json_writer& j) const { @@ -22902,7 +21528,7 @@ void meas_report_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::meas_report: j.write_fieldname("measurementReport"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -22916,7 +21542,7 @@ SRSASN_CODE meas_report_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::meas_report: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -22933,7 +21559,7 @@ SRSASN_CODE meas_report_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::meas_report: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -22958,83 +21584,25 @@ SRSASN_CODE rrc_recfg_complete_s::pack(bit_ref& bref) const return SRSASN_SUCCESS; } -SRSASN_CODE rrc_recfg_complete_s::unpack(cbit_ref& bref) -{ - HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); - HANDLE_CODE(crit_exts.unpack(bref)); - - return SRSASN_SUCCESS; -} -void rrc_recfg_complete_s::to_json(json_writer& j) const -{ - j.start_obj(); - j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); - j.write_fieldname("criticalExtensions"); - crit_exts.to_json(j); - j.end_obj(); -} - -void rrc_recfg_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_recfg_complete: - c.destroy(); - break; - default: - break; - } -} -void rrc_recfg_complete_s::crit_exts_c_::set(types::options e) -{ - destroy_(); - type_ = e; - switch (type_) { - case types::rrc_recfg_complete: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_complete_s::crit_exts_c_"); - } -} -rrc_recfg_complete_s::crit_exts_c_::crit_exts_c_(const rrc_recfg_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_recfg_complete: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_complete_s::crit_exts_c_"); - } -} -rrc_recfg_complete_s::crit_exts_c_& -rrc_recfg_complete_s::crit_exts_c_::operator=(const rrc_recfg_complete_s::crit_exts_c_& other) +SRSASN_CODE rrc_recfg_complete_s::unpack(cbit_ref& bref) { - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_recfg_complete: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_recfg_complete_s::crit_exts_c_"); - } + HANDLE_CODE(unpack_integer(rrc_transaction_id, bref, (uint8_t)0u, (uint8_t)3u)); + HANDLE_CODE(crit_exts.unpack(bref)); - return *this; + return SRSASN_SUCCESS; +} +void rrc_recfg_complete_s::to_json(json_writer& j) const +{ + j.start_obj(); + j.write_int("rrc-TransactionIdentifier", rrc_transaction_id); + j.write_fieldname("criticalExtensions"); + crit_exts.to_json(j); + j.end_obj(); +} + +void rrc_recfg_complete_s::crit_exts_c_::set(types::options e) +{ + type_ = e; } void rrc_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23042,7 +21610,7 @@ void rrc_recfg_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_recfg_complete: j.write_fieldname("rrcReconfigurationComplete"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23056,7 +21624,7 @@ SRSASN_CODE rrc_recfg_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_recfg_complete: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23073,7 +21641,7 @@ SRSASN_CODE rrc_recfg_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_recfg_complete: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23114,67 +21682,9 @@ void rrc_reest_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_reest_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_reest_complete: - c.destroy(); - break; - default: - break; - } -} void rrc_reest_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_reest_complete: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_complete_s::crit_exts_c_"); - } -} -rrc_reest_complete_s::crit_exts_c_::crit_exts_c_(const rrc_reest_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_reest_complete: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_complete_s::crit_exts_c_"); - } -} -rrc_reest_complete_s::crit_exts_c_& -rrc_reest_complete_s::crit_exts_c_::operator=(const rrc_reest_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_reest_complete: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_reest_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23182,7 +21692,7 @@ void rrc_reest_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_reest_complete: j.write_fieldname("rrcReestablishmentComplete"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23196,7 +21706,7 @@ SRSASN_CODE rrc_reest_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_reest_complete: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23213,7 +21723,7 @@ SRSASN_CODE rrc_reest_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_reest_complete: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23254,67 +21764,9 @@ void rrc_resume_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_resume_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_resume_complete: - c.destroy(); - break; - default: - break; - } -} void rrc_resume_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_resume_complete: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_complete_s::crit_exts_c_"); - } -} -rrc_resume_complete_s::crit_exts_c_::crit_exts_c_(const rrc_resume_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_resume_complete: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_complete_s::crit_exts_c_"); - } -} -rrc_resume_complete_s::crit_exts_c_& -rrc_resume_complete_s::crit_exts_c_::operator=(const rrc_resume_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_resume_complete: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_resume_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_resume_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23322,7 +21774,7 @@ void rrc_resume_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_resume_complete: j.write_fieldname("rrcResumeComplete"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23336,7 +21788,7 @@ SRSASN_CODE rrc_resume_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_resume_complete: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23353,7 +21805,7 @@ SRSASN_CODE rrc_resume_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_resume_complete: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23394,67 +21846,9 @@ void rrc_setup_complete_s::to_json(json_writer& j) const j.end_obj(); } -void rrc_setup_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::rrc_setup_complete: - c.destroy(); - break; - default: - break; - } -} void rrc_setup_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::rrc_setup_complete: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_complete_s::crit_exts_c_"); - } -} -rrc_setup_complete_s::crit_exts_c_::crit_exts_c_(const rrc_setup_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::rrc_setup_complete: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_complete_s::crit_exts_c_"); - } -} -rrc_setup_complete_s::crit_exts_c_& -rrc_setup_complete_s::crit_exts_c_::operator=(const rrc_setup_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::rrc_setup_complete: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "rrc_setup_complete_s::crit_exts_c_"); - } - - return *this; } void rrc_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23462,7 +21856,7 @@ void rrc_setup_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::rrc_setup_complete: j.write_fieldname("rrcSetupComplete"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23476,7 +21870,7 @@ SRSASN_CODE rrc_setup_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::rrc_setup_complete: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23493,7 +21887,7 @@ SRSASN_CODE rrc_setup_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::rrc_setup_complete: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23531,66 +21925,9 @@ void scg_fail_info_s::to_json(json_writer& j) const j.end_obj(); } -void scg_fail_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::scg_fail_info: - c.destroy(); - break; - default: - break; - } -} void scg_fail_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::scg_fail_info: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_s::crit_exts_c_"); - } -} -scg_fail_info_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::scg_fail_info: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_s::crit_exts_c_"); - } -} -scg_fail_info_s::crit_exts_c_& scg_fail_info_s::crit_exts_c_::operator=(const scg_fail_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::scg_fail_info: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_s::crit_exts_c_"); - } - - return *this; } void scg_fail_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23598,7 +21935,7 @@ void scg_fail_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::scg_fail_info: j.write_fieldname("scgFailureInformation"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23612,7 +21949,7 @@ SRSASN_CODE scg_fail_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::scg_fail_info: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23629,7 +21966,7 @@ SRSASN_CODE scg_fail_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::scg_fail_info: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23667,67 +22004,9 @@ void scg_fail_info_eutra_s::to_json(json_writer& j) const j.end_obj(); } -void scg_fail_info_eutra_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::scg_fail_info_eutra: - c.destroy(); - break; - default: - break; - } -} void scg_fail_info_eutra_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::scg_fail_info_eutra: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_eutra_s::crit_exts_c_"); - } -} -scg_fail_info_eutra_s::crit_exts_c_::crit_exts_c_(const scg_fail_info_eutra_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::scg_fail_info_eutra: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_eutra_s::crit_exts_c_"); - } -} -scg_fail_info_eutra_s::crit_exts_c_& -scg_fail_info_eutra_s::crit_exts_c_::operator=(const scg_fail_info_eutra_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::scg_fail_info_eutra: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "scg_fail_info_eutra_s::crit_exts_c_"); - } - - return *this; } void scg_fail_info_eutra_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23735,7 +22014,7 @@ void scg_fail_info_eutra_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::scg_fail_info_eutra: j.write_fieldname("scgFailureInformationEUTRA"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23749,7 +22028,7 @@ SRSASN_CODE scg_fail_info_eutra_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::scg_fail_info_eutra: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23766,7 +22045,7 @@ SRSASN_CODE scg_fail_info_eutra_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::scg_fail_info_eutra: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23807,67 +22086,9 @@ void security_mode_complete_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_complete_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::security_mode_complete: - c.destroy(); - break; - default: - break; - } -} void security_mode_complete_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::security_mode_complete: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } -} -security_mode_complete_s::crit_exts_c_::crit_exts_c_(const security_mode_complete_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::security_mode_complete: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } -} -security_mode_complete_s::crit_exts_c_& -security_mode_complete_s::crit_exts_c_::operator=(const security_mode_complete_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::security_mode_complete: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_complete_s::crit_exts_c_"); - } - - return *this; } void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const { @@ -23875,7 +22096,7 @@ void security_mode_complete_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::security_mode_complete: j.write_fieldname("securityModeComplete"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -23889,7 +22110,7 @@ SRSASN_CODE security_mode_complete_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::security_mode_complete: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -23906,7 +22127,7 @@ SRSASN_CODE security_mode_complete_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::security_mode_complete: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -23947,67 +22168,9 @@ void security_mode_fail_s::to_json(json_writer& j) const j.end_obj(); } -void security_mode_fail_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::security_mode_fail: - c.destroy(); - break; - default: - break; - } -} void security_mode_fail_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::security_mode_fail: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } -} -security_mode_fail_s::crit_exts_c_::crit_exts_c_(const security_mode_fail_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::security_mode_fail: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } -} -security_mode_fail_s::crit_exts_c_& -security_mode_fail_s::crit_exts_c_::operator=(const security_mode_fail_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::security_mode_fail: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "security_mode_fail_s::crit_exts_c_"); - } - - return *this; } void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const { @@ -24015,7 +22178,7 @@ void security_mode_fail_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::security_mode_fail: j.write_fieldname("securityModeFailure"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -24029,7 +22192,7 @@ SRSASN_CODE security_mode_fail_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::security_mode_fail: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -24046,7 +22209,7 @@ SRSASN_CODE security_mode_fail_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::security_mode_fail: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -24084,66 +22247,9 @@ void ueassist_info_s::to_json(json_writer& j) const j.end_obj(); } -void ueassist_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ue_assist_info: - c.destroy(); - break; - default: - break; - } -} void ueassist_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ue_assist_info: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_s::crit_exts_c_"); - } -} -ueassist_info_s::crit_exts_c_::crit_exts_c_(const ueassist_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_assist_info: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_s::crit_exts_c_"); - } -} -ueassist_info_s::crit_exts_c_& ueassist_info_s::crit_exts_c_::operator=(const ueassist_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ue_assist_info: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ueassist_info_s::crit_exts_c_"); - } - - return *this; } void ueassist_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -24151,7 +22257,7 @@ void ueassist_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ue_assist_info: j.write_fieldname("ueAssistanceInformation"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -24165,7 +22271,7 @@ SRSASN_CODE ueassist_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ue_assist_info: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -24182,7 +22288,7 @@ SRSASN_CODE ueassist_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ue_assist_info: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -24223,66 +22329,9 @@ void ue_cap_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_cap_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ue_cap_info: - c.destroy(); - break; - default: - break; - } -} void ue_cap_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ue_cap_info: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } -} -ue_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_cap_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ue_cap_info: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } -} -ue_cap_info_s::crit_exts_c_& ue_cap_info_s::crit_exts_c_::operator=(const ue_cap_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ue_cap_info: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_cap_info_s::crit_exts_c_"); - } - - return *this; } void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -24290,7 +22339,7 @@ void ue_cap_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ue_cap_info: j.write_fieldname("ueCapabilityInformation"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -24304,7 +22353,7 @@ SRSASN_CODE ue_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ue_cap_info: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -24321,7 +22370,7 @@ SRSASN_CODE ue_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ue_cap_info: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -24359,67 +22408,9 @@ void ul_info_transfer_s::to_json(json_writer& j) const j.end_obj(); } -void ul_info_transfer_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::ul_info_transfer: - c.destroy(); - break; - default: - break; - } -} void ul_info_transfer_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::ul_info_transfer: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } -} -ul_info_transfer_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::ul_info_transfer: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } -} -ul_info_transfer_s::crit_exts_c_& -ul_info_transfer_s::crit_exts_c_::operator=(const ul_info_transfer_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::ul_info_transfer: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_s::crit_exts_c_"); - } - - return *this; } void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const { @@ -24427,7 +22418,7 @@ void ul_info_transfer_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::ul_info_transfer: j.write_fieldname("ulInformationTransfer"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -24441,7 +22432,7 @@ SRSASN_CODE ul_info_transfer_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::ul_info_transfer: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -24458,7 +22449,7 @@ SRSASN_CODE ul_info_transfer_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::ul_info_transfer: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -24496,67 +22487,9 @@ void ul_info_transfer_mrdc_s::to_json(json_writer& j) const j.end_obj(); } -void ul_info_transfer_mrdc_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_info_transfer_mrdc_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_s::crit_exts_c_"); - } -} -ul_info_transfer_mrdc_s::crit_exts_c_::crit_exts_c_(const ul_info_transfer_mrdc_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_s::crit_exts_c_"); - } -} -ul_info_transfer_mrdc_s::crit_exts_c_& -ul_info_transfer_mrdc_s::crit_exts_c_::operator=(const ul_info_transfer_mrdc_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_info_transfer_mrdc_s::crit_exts_c_"); - } - - return *this; } void ul_info_transfer_mrdc_s::crit_exts_c_::to_json(json_writer& j) const { @@ -24564,7 +22497,7 @@ void ul_info_transfer_mrdc_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -24578,7 +22511,7 @@ SRSASN_CODE ul_info_transfer_mrdc_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -24595,7 +22528,7 @@ SRSASN_CODE ul_info_transfer_mrdc_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -24688,66 +22621,9 @@ uint8_t ul_info_transfer_mrdc_s::crit_exts_c_::types_opts::to_number() const } // UL-DCCH-MessageType ::= CHOICE -void ul_dcch_msg_type_c::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ul_dcch_msg_type_c::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); - } -} -ul_dcch_msg_type_c::ul_dcch_msg_type_c(const ul_dcch_msg_type_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); - } -} -ul_dcch_msg_type_c& ul_dcch_msg_type_c::operator=(const ul_dcch_msg_type_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::msg_class_ext: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ul_dcch_msg_type_c"); - } - - return *this; } void ul_dcch_msg_type_c::to_json(json_writer& j) const { @@ -24755,7 +22631,7 @@ void ul_dcch_msg_type_c::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::msg_class_ext: break; @@ -24769,7 +22645,7 @@ SRSASN_CODE ul_dcch_msg_type_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::msg_class_ext: break; @@ -24786,7 +22662,7 @@ SRSASN_CODE ul_dcch_msg_type_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::msg_class_ext: break; @@ -56648,66 +54524,9 @@ void cg_cfg_s::to_json(json_writer& j) const j.end_obj(); } -void cg_cfg_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void cg_cfg_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_s::crit_exts_c_"); - } -} -cg_cfg_s::crit_exts_c_::crit_exts_c_(const cg_cfg_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_s::crit_exts_c_"); - } -} -cg_cfg_s::crit_exts_c_& cg_cfg_s::crit_exts_c_::operator=(const cg_cfg_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_s::crit_exts_c_"); - } - - return *this; } void cg_cfg_s::crit_exts_c_::to_json(json_writer& j) const { @@ -56715,7 +54534,7 @@ void cg_cfg_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -56729,7 +54548,7 @@ SRSASN_CODE cg_cfg_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -56746,7 +54565,7 @@ SRSASN_CODE cg_cfg_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -57597,66 +55416,9 @@ void cg_cfg_info_s::to_json(json_writer& j) const j.end_obj(); } -void cg_cfg_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void cg_cfg_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_info_s::crit_exts_c_"); - } -} -cg_cfg_info_s::crit_exts_c_::crit_exts_c_(const cg_cfg_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_info_s::crit_exts_c_"); - } -} -cg_cfg_info_s::crit_exts_c_& cg_cfg_info_s::crit_exts_c_::operator=(const cg_cfg_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "cg_cfg_info_s::crit_exts_c_"); - } - - return *this; } void cg_cfg_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -57664,7 +55426,7 @@ void cg_cfg_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -57678,7 +55440,7 @@ SRSASN_CODE cg_cfg_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -57695,7 +55457,7 @@ SRSASN_CODE cg_cfg_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -57936,66 +55698,9 @@ void ho_cmd_s::to_json(json_writer& j) const j.end_obj(); } -void ho_cmd_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ho_cmd_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } -} -ho_cmd_s::crit_exts_c_::crit_exts_c_(const ho_cmd_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } -} -ho_cmd_s::crit_exts_c_& ho_cmd_s::crit_exts_c_::operator=(const ho_cmd_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_cmd_s::crit_exts_c_"); - } - - return *this; } void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const { @@ -58003,7 +55708,7 @@ void ho_cmd_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -58017,7 +55722,7 @@ SRSASN_CODE ho_cmd_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -58034,7 +55739,7 @@ SRSASN_CODE ho_cmd_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -58314,66 +56019,9 @@ void ho_prep_info_s::to_json(json_writer& j) const j.end_obj(); } -void ho_prep_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ho_prep_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } -} -ho_prep_info_s::crit_exts_c_::crit_exts_c_(const ho_prep_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } -} -ho_prep_info_s::crit_exts_c_& ho_prep_info_s::crit_exts_c_::operator=(const ho_prep_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ho_prep_info_s::crit_exts_c_"); - } - - return *this; } void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -58381,7 +56029,7 @@ void ho_prep_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -58395,7 +56043,7 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -58412,7 +56060,7 @@ SRSASN_CODE ho_prep_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -58704,67 +56352,9 @@ void meas_timing_cfg_s::to_json(json_writer& j) const j.end_obj(); } -void meas_timing_cfg_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void meas_timing_cfg_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_timing_cfg_s::crit_exts_c_"); - } -} -meas_timing_cfg_s::crit_exts_c_::crit_exts_c_(const meas_timing_cfg_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_timing_cfg_s::crit_exts_c_"); - } -} -meas_timing_cfg_s::crit_exts_c_& -meas_timing_cfg_s::crit_exts_c_::operator=(const meas_timing_cfg_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "meas_timing_cfg_s::crit_exts_c_"); - } - - return *this; } void meas_timing_cfg_s::crit_exts_c_::to_json(json_writer& j) const { @@ -58772,7 +56362,7 @@ void meas_timing_cfg_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -58786,7 +56376,7 @@ SRSASN_CODE meas_timing_cfg_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -58803,7 +56393,7 @@ SRSASN_CODE meas_timing_cfg_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -58945,67 +56535,9 @@ void ue_radio_access_cap_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_radio_access_cap_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_radio_access_cap_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); - } -} -ue_radio_access_cap_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_access_cap_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); - } -} -ue_radio_access_cap_info_s::crit_exts_c_& -ue_radio_access_cap_info_s::crit_exts_c_::operator=(const ue_radio_access_cap_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_access_cap_info_s::crit_exts_c_"); - } - - return *this; } void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -59013,7 +56545,7 @@ void ue_radio_access_cap_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -59027,7 +56559,7 @@ SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -59044,7 +56576,7 @@ SRSASN_CODE ue_radio_access_cap_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; @@ -59223,67 +56755,9 @@ void ue_radio_paging_info_s::to_json(json_writer& j) const j.end_obj(); } -void ue_radio_paging_info_s::crit_exts_c_::destroy_() -{ - switch (type_) { - case types::c1: - c.destroy(); - break; - default: - break; - } -} void ue_radio_paging_info_s::crit_exts_c_::set(types::options e) { - destroy_(); type_ = e; - switch (type_) { - case types::c1: - c.init(); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } -} -ue_radio_paging_info_s::crit_exts_c_::crit_exts_c_(const ue_radio_paging_info_s::crit_exts_c_& other) -{ - type_ = other.type(); - switch (type_) { - case types::c1: - c.init(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } -} -ue_radio_paging_info_s::crit_exts_c_& -ue_radio_paging_info_s::crit_exts_c_::operator=(const ue_radio_paging_info_s::crit_exts_c_& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::c1: - c.set(other.c.get()); - break; - case types::crit_exts_future: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "ue_radio_paging_info_s::crit_exts_c_"); - } - - return *this; } void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const { @@ -59291,7 +56765,7 @@ void ue_radio_paging_info_s::crit_exts_c_::to_json(json_writer& j) const switch (type_) { case types::c1: j.write_fieldname("c1"); - c.get().to_json(j); + c.to_json(j); break; case types::crit_exts_future: break; @@ -59305,7 +56779,7 @@ SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::c1: - HANDLE_CODE(c.get().pack(bref)); + HANDLE_CODE(c.pack(bref)); break; case types::crit_exts_future: break; @@ -59322,7 +56796,7 @@ SRSASN_CODE ue_radio_paging_info_s::crit_exts_c_::unpack(cbit_ref& bref) set(e); switch (type_) { case types::c1: - HANDLE_CODE(c.get().unpack(bref)); + HANDLE_CODE(c.unpack(bref)); break; case types::crit_exts_future: break; diff --git a/lib/src/asn1/s1ap.cc b/lib/src/asn1/s1ap.cc index f11d42ca4..9cfa6f92a 100644 --- a/lib/src/asn1/s1ap.cc +++ b/lib/src/asn1/s1ap.cc @@ -35,53 +35,16 @@ std::string presence_opts::to_string() const } // PrivateIE-ID ::= CHOICE -void private_ie_id_c::destroy_() {} void private_ie_id_c::set(types::options e) { - destroy_(); type_ = e; } -private_ie_id_c::private_ie_id_c(const private_ie_id_c& other) -{ - type_ = other.type(); - switch (type_) { - case types::local: - c.init(other.c.get()); - break; - case types::global: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "private_ie_id_c"); - } -} -private_ie_id_c& private_ie_id_c::operator=(const private_ie_id_c& other) -{ - if (this == &other) { - return *this; - } - set(other.type()); - switch (type_) { - case types::local: - c.set(other.c.get()); - break; - case types::global: - break; - case types::nulltype: - break; - default: - log_invalid_choice_id(type_, "private_ie_id_c"); - } - - return *this; -} void private_ie_id_c::to_json(json_writer& j) const { j.start_obj(); switch (type_) { case types::local: - j.write_int("local", c.get()); + j.write_int("local", c); break; case types::global: break; @@ -95,7 +58,7 @@ SRSASN_CODE private_ie_id_c::pack(bit_ref& bref) const type_.pack(bref); switch (type_) { case types::local: - HANDLE_CODE(pack_integer(bref, c.get(), (uint32_t)0u, (uint32_t)65535u, false, true)); + HANDLE_CODE(pack_integer(bref, c, (uint32_t)0u, (uint32_t)65535u, false, true)); break; case types::global: break; @@ -112,7 +75,7 @@ SRSASN_CODE private_ie_id_c::unpack(cbit_ref& bref) set(e); switch (type_) { case types::local: - HANDLE_CODE(unpack_integer(c.get(), bref, (uint32_t)0u, (uint32_t)65535u, false, true)); + HANDLE_CODE(unpack_integer(c, bref, (uint32_t)0u, (uint32_t)65535u, false, true)); break; case types::global: break;