/** * Copyright 2013-2023 Software Radio Systems Limited * * This file is part of srsRAN. * * srsRAN is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * srsRAN is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * A copy of the GNU Affero General Public License can be found in * the LICENSE file in the top-level directory of this distribution * and at http://www.gnu.org/licenses/. * */ /******************************************************************************* * * 3GPP TS ASN1 RRC v17.4.0 (2023-03) * ******************************************************************************/ #ifndef SRSASN1_RRC_BCCH_MSG_H #define SRSASN1_RRC_BCCH_MSG_H #include "meascfg.h" #include "phy_ded.h" #include "si.h" namespace asn1 { namespace rrc { /******************************************************************************* * Struct Definitions ******************************************************************************/ // BCCH-BCH-MessageType ::= MasterInformationBlock using bcch_bch_msg_type_s = mib_s; // BCCH-BCH-Message ::= SEQUENCE struct bcch_bch_msg_s { bcch_bch_msg_type_s msg; // 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; bool cell_resel_prio_present = false; bandclass_cdma2000_e band_class; uint8_t cell_resel_prio = 0; uint8_t thresh_x_high = 0; uint8_t thresh_x_low = 0; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE struct neigh_cells_per_bandclass_cdma2000_r11_s { using pci_list_r11_l_ = dyn_array; // member variables uint16_t arfcn = 0; pci_list_r11_l_ pci_list_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..511) 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; // BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF BandClassInfoCDMA2000 using band_class_list_cdma2000_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; }; // NS-PmaxValueNR-r15 ::= SEQUENCE struct ns_pmax_value_nr_r15_s { bool add_pmax_nr_r15_present = false; int8_t add_pmax_nr_r15 = -30; uint8_t add_spec_emission_nr_r15 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NeighCellCDMA2000-r11 ::= SEQUENCE struct neigh_cell_cdma2000_r11_s { using neigh_freq_info_list_r11_l_ = dyn_array; // member variables bandclass_cdma2000_e band_class; neigh_freq_info_list_r11_l_ neigh_freq_info_list_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NeighCellsPerBandclassCDMA2000 ::= SEQUENCE struct neigh_cells_per_bandclass_cdma2000_s { uint16_t arfcn = 0; pci_list_cdma2000_l pci_list; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE struct neigh_cells_per_bandclass_cdma2000_v920_s { pci_list_cdma2000_v920_l pci_list_v920; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // PhysCellIdRangeNR-r16 ::= SEQUENCE struct pci_range_nr_r16_s { struct range_opts { enum options { n4, n8, n12, n16, n24, n32, n48, n64, n84, n96, n128, n168, n252, n504, n1008, spare1, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated range_e_; // member variables bool range_present = false; uint16_t start = 0; range_e_ range; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // RedistributionNeighCell-r13 ::= SEQUENCE struct redist_neigh_cell_r13_s { uint16_t pci_r13 = 0; uint8_t redist_factor_cell_r13 = 1; // 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; uint8_t ac_barr10_r9 = 0; uint8_t ac_barr11_r9 = 0; uint8_t ac_barr12_r9 = 0; uint8_t ac_barr13_r9 = 0; uint8_t ac_barr14_r9 = 0; uint8_t ac_barr15_r9 = 0; uint8_t ac_barr_msg_r9 = 0; uint8_t ac_barr_reg_r9 = 0; uint8_t ac_barr_emg_r9 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // BeamMeasConfigIdleNR-r16 ::= SEQUENCE struct beam_meas_cfg_idle_nr_r16_s { struct report_quant_rs_idx_nr_r16_opts { enum options { rsrp, rsrq, both, nulltype } value; const char* to_string() const; }; typedef enumerated report_quant_rs_idx_nr_r16_e_; // member variables report_quant_rs_idx_nr_r16_e_ report_quant_rs_idx_nr_r16; uint8_t max_report_rs_idx_r16 = 0; bool report_rs_idx_results_nr_r16 = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CSFB-RegistrationParam1XRTT ::= SEQUENCE struct csfb_regist_param1_xrtt_s { fixed_bitstring<15> sid; fixed_bitstring<16> nid; bool multiple_sid = false; bool multiple_nid = false; bool home_reg = false; bool foreign_sid_reg = false; bool foreign_nid_reg = false; bool param_reg = false; bool pwr_up_reg = false; fixed_bitstring<7> regist_period; fixed_bitstring<12> regist_zone; fixed_bitstring<3> total_zone; fixed_bitstring<3> zone_timer; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE struct csfb_regist_param1_xrtt_v920_s { // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellListNR-r16 ::= SEQUENCE (SIZE (1..8)) OF PhysCellIdRangeNR-r16 using cell_list_nr_r16_l = dyn_array; // CellReselectionParametersCDMA2000-r11 ::= SEQUENCE struct cell_resel_params_cdma2000_r11_s { using neigh_cell_list_r11_l_ = dyn_array; // member variables bool t_resel_cdma2000_sf_present = false; band_class_list_cdma2000_l band_class_list; neigh_cell_list_r11_l_ neigh_cell_list_r11; uint8_t t_resel_cdma2000 = 0; speed_state_scale_factors_s t_resel_cdma2000_sf; // 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; q_offset_range_e q_offset_cell; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqNeighCellInfo-v1610 ::= SEQUENCE struct inter_freq_neigh_cell_info_v1610_s { rss_meas_pwr_bias_r16_e rss_meas_pwr_bias_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // 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; // NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000 using neigh_cells_per_bandclass_list_cdma2000_l = dyn_array; // NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920 using neigh_cells_per_bandclass_list_cdma2000_v920_l = dyn_array; // PLMN-IdentityInfo2-r12 ::= CHOICE struct plmn_id_info2_r12_c { struct types_opts { enum options { plmn_idx_r12, plmn_id_r12, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods plmn_id_info2_r12_c() = default; plmn_id_info2_r12_c(const plmn_id_info2_r12_c& other); plmn_id_info2_r12_c& operator=(const plmn_id_info2_r12_c& other); ~plmn_id_info2_r12_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters uint8_t& plmn_idx_r12() { assert_choice_type(types::plmn_idx_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } plmn_id_s& plmn_id_r12() { assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } const uint8_t& plmn_idx_r12() const { assert_choice_type(types::plmn_idx_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } const plmn_id_s& plmn_id_r12() const { assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12"); return c.get(); } uint8_t& set_plmn_idx_r12(); plmn_id_s& set_plmn_id_r12(); private: types type_; choice_buffer_t c; void destroy_(); }; // RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..16)) OF RedistributionNeighCell-r13 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; // SystemTimeInfoCDMA2000 ::= SEQUENCE struct sys_time_info_cdma2000_s { struct cdma_sys_time_c_ { struct types_opts { enum options { sync_sys_time, async_sys_time, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods cdma_sys_time_c_() = default; cdma_sys_time_c_(const cdma_sys_time_c_& other); cdma_sys_time_c_& operator=(const cdma_sys_time_c_& other); ~cdma_sys_time_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters fixed_bitstring<39>& sync_sys_time() { assert_choice_type(types::sync_sys_time, type_, "cdma-SystemTime"); return c.get >(); } fixed_bitstring<49>& async_sys_time() { assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime"); return c.get >(); } const fixed_bitstring<39>& sync_sys_time() const { assert_choice_type(types::sync_sys_time, type_, "cdma-SystemTime"); return c.get >(); } const fixed_bitstring<49>& async_sys_time() const { assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime"); return c.get >(); } fixed_bitstring<39>& set_sync_sys_time(); fixed_bitstring<49>& set_async_sys_time(); private: types type_; choice_buffer_t > c; void destroy_(); }; // member variables bool cdma_eutra_synchronisation = false; cdma_sys_time_c_ cdma_sys_time; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // UAC-BarringPerCat-r15 ::= SEQUENCE struct uac_barr_per_cat_r15_s { uint8_t access_category_r15 = 1; uint8_t uac_barr_info_set_idx_r15 = 1; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // AllowedCellListNR-r16 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..1007) using allowed_cell_list_nr_r16_l = bounded_array; // InterFreqExcludedCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange using inter_freq_excluded_cell_list_l = dyn_array; // InterFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo using inter_freq_neigh_cell_list_l = dyn_array; // InterFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo-v1610 using inter_freq_neigh_cell_list_v1610_l = dyn_array; // InterFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange 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; // MBSFN-AreaInfo-r16 ::= SEQUENCE struct mbsfn_area_info_r16_s { struct mcch_cfg_r16_s_ { struct mcch_repeat_period_r16_opts { enum options { rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_repeat_period_r16_e_; struct mcch_mod_period_r16_opts { enum options { rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, spare5, spare4, spare3, spare2, spare1, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_mod_period_r16_e_; struct sig_mcs_r16_opts { enum options { n2, n7, n13, n19, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sig_mcs_r16_e_; // member variables mcch_repeat_period_r16_e_ mcch_repeat_period_r16; mcch_mod_period_r16_e_ mcch_mod_period_r16; uint8_t mcch_offset_r16 = 0; fixed_bitstring<10> sf_alloc_info_r16; sig_mcs_r16_e_ sig_mcs_r16; }; struct subcarrier_spacing_mbms_r16_opts { enum options { khz7dot5, khz2dot5, khz1dot25, khz0dot37, khz15_v1710, spare3, spare2, spare1, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated subcarrier_spacing_mbms_r16_e_; struct time_separation_r16_opts { enum options { sl2, sl4, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated time_separation_r16_e_; // member variables bool ext = false; bool time_separation_r16_present = false; uint16_t mbsfn_area_id_r16 = 0; uint8_t notif_ind_r16 = 0; mcch_cfg_r16_s_ mcch_cfg_r16; subcarrier_spacing_mbms_r16_e_ subcarrier_spacing_mbms_r16; time_separation_r16_e_ time_separation_r16; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MTC-SSB2-LP-NR-r16 ::= SEQUENCE struct mtc_ssb2_lp_nr_r16_s { using pci_list_r16_l_ = dyn_array; struct periodicity_r16_opts { enum options { sf10, sf20, sf40, sf80, sf160, spare3, spare2, spare1, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated periodicity_r16_e_; // member variables bool pci_list_r16_present = false; pci_list_r16_l_ pci_list_r16; periodicity_r16_e_ periodicity_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MeasIdleCarrierNR-r16 ::= SEQUENCE struct meas_idle_carrier_nr_r16_s { struct subcarrier_spacing_ssb_r16_opts { enum options { khz15, khz30, khz120, khz240, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r16_e_; struct report_quantities_nr_r16_opts { enum options { rsrp, rsrq, both, nulltype } value; const char* to_string() const; }; typedef enumerated report_quantities_nr_r16_e_; struct quality_thres_nr_r16_s_ { bool idle_rsrp_thres_nr_r16_present = false; bool idle_rsrq_thres_nr_r16_present = false; uint8_t idle_rsrp_thres_nr_r16 = 0; uint8_t idle_rsrq_thres_nr_r16 = 0; }; struct ssb_meas_cfg_r16_s_ { bool max_rs_idx_cell_qual_r16_present = false; bool thresh_rs_idx_r16_present = false; bool meas_timing_cfg_r16_present = false; bool ssb_to_measure_r16_present = false; bool ss_rssi_meas_r16_present = false; uint8_t max_rs_idx_cell_qual_r16 = 1; thres_list_nr_r15_s thresh_rs_idx_r16; mtc_ssb_nr_r15_s meas_timing_cfg_r16; ssb_to_measure_r15_c ssb_to_measure_r16; bool derive_ssb_idx_from_cell_r16 = false; ss_rssi_meas_r15_s ss_rssi_meas_r16; }; struct subcarrier_spacing_ssb_r17_opts { enum options { khz480, spare1, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r17_e_; // member variables bool ext = false; bool freq_band_list_present = false; bool meas_cell_list_nr_r16_present = false; bool quality_thres_nr_r16_present = false; bool ssb_meas_cfg_r16_present = false; bool beam_meas_cfg_idle_r16_present = false; uint32_t carrier_freq_nr_r16 = 0; subcarrier_spacing_ssb_r16_e_ subcarrier_spacing_ssb_r16; multi_freq_band_list_nr_r15_l freq_band_list; cell_list_nr_r16_l meas_cell_list_nr_r16; report_quantities_nr_r16_e_ report_quantities_nr_r16; quality_thres_nr_r16_s_ quality_thres_nr_r16; ssb_meas_cfg_r16_s_ ssb_meas_cfg_r16; beam_meas_cfg_idle_nr_r16_s beam_meas_cfg_idle_r16; // ... // group 0 bool subcarrier_spacing_ssb_r17_present = false; subcarrier_spacing_ssb_r17_e_ subcarrier_spacing_ssb_r17; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); 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; // MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1..31)) OF NS-PmaxListNR-r15 using multi_band_ns_pmax_list_nr_minus1_v1550_l = dyn_array; // MultiBandNsPmaxListNR-v1550 ::= SEQUENCE (SIZE (1..32)) OF NS-PmaxListNR-r15 using multi_band_ns_pmax_list_nr_v1550_l = dyn_array; // NR-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..8)) OF PhysCellIdRangeNR-r16 using nr_freq_neigh_hsdn_cell_list_r17_l = dyn_array; // NeighCellCDMA2000 ::= SEQUENCE struct neigh_cell_cdma2000_s { bandclass_cdma2000_e band_class; neigh_cells_per_bandclass_list_cdma2000_l neigh_cells_per_freq_list; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NeighCellCDMA2000-v920 ::= SEQUENCE struct neigh_cell_cdma2000_v920_s { neigh_cells_per_bandclass_list_cdma2000_v920_l neigh_cells_per_freq_list_v920; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo2-r12 using plmn_id_list4_r12_l = dyn_array; // ParametersCDMA2000-r11 ::= SEQUENCE struct params_cdma2000_r11_s { struct sys_time_info_r11_c_ { struct types_opts { enum options { explicit_value, default_value, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods sys_time_info_r11_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 sys_time_info_cdma2000_s& explicit_value() { assert_choice_type(types::explicit_value, type_, "systemTimeInfo-r11"); return c; } const sys_time_info_cdma2000_s& explicit_value() const { assert_choice_type(types::explicit_value, type_, "systemTimeInfo-r11"); return c; } sys_time_info_cdma2000_s& set_explicit_value(); void set_default_value(); private: types type_; sys_time_info_cdma2000_s c; }; struct params_hrpd_r11_s_ { bool cell_resel_params_hrpd_r11_present = false; pre_regist_info_hrpd_s pre_regist_info_hrpd_r11; cell_resel_params_cdma2000_r11_s cell_resel_params_hrpd_r11; }; struct params1_xrtt_r11_s_ { bool csfb_regist_param1_xrtt_r11_present = false; bool csfb_regist_param1_xrtt_ext_r11_present = false; bool long_code_state1_xrtt_r11_present = false; bool cell_resel_params1_xrtt_r11_present = false; bool ac_barr_cfg1_xrtt_r11_present = false; bool csfb_support_for_dual_rx_ues_r11_present = false; bool csfb_dual_rx_tx_support_r11_present = false; csfb_regist_param1_xrtt_s csfb_regist_param1_xrtt_r11; csfb_regist_param1_xrtt_v920_s csfb_regist_param1_xrtt_ext_r11; fixed_bitstring<42> long_code_state1_xrtt_r11; cell_resel_params_cdma2000_r11_s cell_resel_params1_xrtt_r11; ac_barr_cfg1_xrtt_r9_s ac_barr_cfg1_xrtt_r11; bool csfb_support_for_dual_rx_ues_r11 = false; }; // member variables bool ext = false; bool sys_time_info_r11_present = false; bool params_hrpd_r11_present = false; bool params1_xrtt_r11_present = false; sys_time_info_r11_c_ sys_time_info_r11; uint8_t search_win_size_r11 = 0; params_hrpd_r11_s_ params_hrpd_r11; params1_xrtt_r11_s_ params1_xrtt_r11; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // RedistributionInterFreqInfo-r13 ::= SEQUENCE struct redist_inter_freq_info_r13_s { bool redist_factor_freq_r13_present = false; bool redist_neigh_cell_list_r13_present = false; uint8_t redist_factor_freq_r13 = 1; redist_neigh_cell_list_r13_l redist_neigh_cell_list_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE struct sl_disc_cfg_other_inter_freq_r13_s { bool tx_pwr_info_r13_present = false; bool ref_carrier_common_r13_present = false; bool disc_sync_cfg_r13_present = false; bool disc_cell_sel_info_r13_present = false; sl_disc_tx_pwr_info_list_r12_l tx_pwr_info_r13; sl_sync_cfg_list_nfreq_r13_l disc_sync_cfg_r13; cell_sel_info_nfreq_r13_s disc_cell_sel_info_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // TLE-EphemerisParameters-r17 ::= SEQUENCE struct tle_ephemeris_params_r17_s { uint32_t inclination_r17 = 0; uint32_t argument_perigee_r17 = 0; uint32_t right_ascension_r17 = 0; uint32_t mean_anomaly_r17 = 0; uint32_t eccentricity_r17 = 0; uint64_t mean_motion_r17 = 0; int32_t bstar_decimal_r17 = -99999; int8_t bstar_exponent_r17 = -9; int32_t epoch_star_r17 = -1048575; // 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; // CarrierFreqNBIOT-r16 ::= SEQUENCE struct carrier_freq_nbiot_r16_s { struct carrier_freq_offset_r16_opts { enum options { v_minus10, v_minus9, v_minus8dot5, v_minus8, v_minus7, v_minus6, v_minus5, v_minus4dot5, v_minus4, v_minus3, v_minus2, v_minus1, v_minus0dot5, v0, v1, v2, v3, v3dot5, v4, v5, v6, v7, v7dot5, v8, v9, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated carrier_freq_offset_r16_e_; // member variables uint32_t carrier_freq_r16 = 0; carrier_freq_offset_r16_e_ carrier_freq_offset_r16; // 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 { enum options { khz15, khz30, khz120, khz240, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r15_e_; struct thresh_x_q_r15_s_ { uint8_t thresh_x_high_q_r15 = 0; uint8_t thresh_x_low_q_r15 = 0; }; // member variables bool ext = false; bool multi_band_info_list_r15_present = false; bool multi_band_info_list_sul_r15_present = false; bool meas_timing_cfg_r15_present = false; bool ss_rssi_meas_r15_present = false; bool cell_resel_prio_r15_present = false; bool cell_resel_sub_prio_r15_present = false; bool thresh_x_q_r15_present = false; bool q_rx_lev_min_sul_r15_present = false; bool ns_pmax_list_nr_r15_present = false; bool q_qual_min_r15_present = false; bool max_rs_idx_cell_qual_r15_present = false; bool thresh_rs_idx_r15_present = false; uint32_t carrier_freq_r15 = 0; multi_freq_band_list_nr_r15_l multi_band_info_list_r15; multi_freq_band_list_nr_r15_l multi_band_info_list_sul_r15; mtc_ssb_nr_r15_s meas_timing_cfg_r15; subcarrier_spacing_ssb_r15_e_ subcarrier_spacing_ssb_r15; ss_rssi_meas_r15_s ss_rssi_meas_r15; uint8_t cell_resel_prio_r15 = 0; cell_resel_sub_prio_r13_e cell_resel_sub_prio_r15; uint8_t thresh_x_high_r15 = 0; uint8_t thresh_x_low_r15 = 0; thresh_x_q_r15_s_ thresh_x_q_r15; int8_t q_rx_lev_min_r15 = -70; int8_t q_rx_lev_min_sul_r15 = -70; int8_t p_max_nr_r15 = -30; ns_pmax_list_nr_r15_l ns_pmax_list_nr_r15; int8_t q_qual_min_r15 = -43; bool derive_ssb_idx_from_cell_r15 = false; uint8_t max_rs_idx_cell_qual_r15 = 1; thres_list_nr_r15_s thresh_rs_idx_r15; // ... // group 0 copy_ptr multi_band_ns_pmax_list_nr_v1550; copy_ptr multi_band_ns_pmax_list_nr_sul_v1550; copy_ptr ssb_to_measure_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqNR-v1610 ::= SEQUENCE struct carrier_freq_nr_v1610_s { bool smtc2_lp_r16_present = false; bool ssb_position_qcl_common_nr_r16_present = false; bool allowed_cell_list_nr_r16_present = false; bool high_speed_carrier_nr_r16_present = false; mtc_ssb2_lp_nr_r16_s smtc2_lp_r16; ssb_position_qcl_relation_nr_r16_e ssb_position_qcl_common_nr_r16; allowed_cell_list_nr_r16_l allowed_cell_list_nr_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqNR-v1700 ::= SEQUENCE struct carrier_freq_nr_v1700_s { bool nr_freq_neigh_hsdn_cell_list_r17_present = false; nr_freq_neigh_hsdn_cell_list_r17_l nr_freq_neigh_hsdn_cell_list_r17; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqNR-v1720 ::= SEQUENCE struct carrier_freq_nr_v1720_s { struct subcarrier_spacing_ssb_r17_opts { enum options { khz480, spare1, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated subcarrier_spacing_ssb_r17_e_; // member variables bool subcarrier_spacing_ssb_r17_present = false; bool ssb_position_qcl_common_nr_r17_present = false; subcarrier_spacing_ssb_r17_e_ subcarrier_spacing_ssb_r17; ssb_position_qcl_relation_nr_r17_e ssb_position_qcl_common_nr_r17; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqUTRA-FDD ::= SEQUENCE struct carrier_freq_utra_fdd_s { struct thresh_x_q_r9_s_ { uint8_t thresh_x_high_q_r9 = 0; uint8_t thresh_x_low_q_r9 = 0; }; // member variables bool ext = false; bool cell_resel_prio_present = false; uint16_t carrier_freq = 0; uint8_t cell_resel_prio = 0; uint8_t thresh_x_high = 0; uint8_t thresh_x_low = 0; int8_t q_rx_lev_min = -60; int8_t p_max_utra = -50; int8_t q_qual_min = -24; // ... // group 0 copy_ptr thresh_x_q_r9; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE struct carrier_freq_utra_fdd_ext_r12_s { struct thresh_x_q_r12_s_ { uint8_t thresh_x_high_q_r12 = 0; uint8_t thresh_x_low_q_r12 = 0; }; using multi_band_info_list_r12_l_ = bounded_array; // member variables bool ext = false; bool cell_resel_prio_r12_present = false; bool thresh_x_q_r12_present = false; bool multi_band_info_list_r12_present = false; bool reduced_meas_performance_r12_present = false; uint16_t carrier_freq_r12 = 0; uint8_t cell_resel_prio_r12 = 0; uint8_t thresh_x_high_r12 = 0; uint8_t thresh_x_low_r12 = 0; int8_t q_rx_lev_min_r12 = -60; int8_t p_max_utra_r12 = -50; int8_t q_qual_min_r12 = -24; thresh_x_q_r12_s_ thresh_x_q_r12; multi_band_info_list_r12_l_ multi_band_info_list_r12; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqUTRA-TDD ::= SEQUENCE struct carrier_freq_utra_tdd_s { bool ext = false; bool cell_resel_prio_present = false; uint16_t carrier_freq = 0; uint8_t cell_resel_prio = 0; uint8_t thresh_x_high = 0; uint8_t thresh_x_low = 0; int8_t q_rx_lev_min = -60; int8_t p_max_utra = -50; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqUTRA-TDD-r12 ::= SEQUENCE struct carrier_freq_utra_tdd_r12_s { bool ext = false; bool cell_resel_prio_r12_present = false; bool reduced_meas_performance_r12_present = false; uint16_t carrier_freq_r12 = 0; uint8_t cell_resel_prio_r12 = 0; uint8_t thresh_x_high_r12 = 0; uint8_t thresh_x_low_r12 = 0; int8_t q_rx_lev_min_r12 = -60; int8_t p_max_utra_r12 = -50; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CarrierFreqsInfoGERAN ::= SEQUENCE struct carrier_freqs_info_geran_s { struct common_info_s_ { bool cell_resel_prio_present = false; bool p_max_geran_present = false; uint8_t cell_resel_prio = 0; fixed_bitstring<8> ncc_permitted; uint8_t q_rx_lev_min = 0; uint8_t p_max_geran = 0; uint8_t thresh_x_high = 0; uint8_t thresh_x_low = 0; }; // member variables bool ext = false; carrier_freqs_geran_s carrier_freqs; common_info_s_ common_info; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // EAB-Config-r11 ::= SEQUENCE struct eab_cfg_r11_s { struct eab_category_r11_opts { enum options { a, b, c, nulltype } value; const char* to_string() const; }; typedef enumerated eab_category_r11_e_; // member variables eab_category_r11_e_ eab_category_r11; fixed_bitstring<10> eab_barr_bitmap_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // EphemerisOrbitalParameters-r17 ::= SEQUENCE struct ephemeris_orbital_params_r17_s { uint64_t semi_major_axis_r17 = 0; uint32_t eccentricity_r17 = 0; uint32_t periapsis_r17 = 0; uint32_t longitude_r17 = 0; int32_t inclination_r17 = -67108864; uint32_t anomaly_r17 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // EphemerisStateVectors-r17 ::= SEQUENCE struct ephemeris_state_vectors_r17_s { int32_t position_x_r17 = -33554432; int32_t position_y_r17 = -33554432; int32_t position_z_r17 = -33554432; int32_t velocity_vx_r17 = -131072; int32_t velocity_vy_r17 = -131072; int32_t velocity_vz_r17 = -131072; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqInfo ::= SEQUENCE struct inter_freq_carrier_freq_info_s { struct thresh_x_q_r9_s_ { uint8_t thresh_x_high_q_r9 = 0; uint8_t thresh_x_low_q_r9 = 0; }; // member variables bool ext = false; bool p_max_present = false; bool t_resel_eutra_sf_present = false; bool cell_resel_prio_present = false; bool q_offset_freq_present = false; bool inter_freq_neigh_cell_list_present = false; bool inter_freq_excluded_cell_list_present = false; uint32_t dl_carrier_freq = 0; int8_t q_rx_lev_min = -70; int8_t p_max = -30; uint8_t t_resel_eutra = 0; speed_state_scale_factors_s t_resel_eutra_sf; uint8_t thresh_x_high = 0; uint8_t thresh_x_low = 0; allowed_meas_bw_e allowed_meas_bw; bool presence_ant_port1 = false; uint8_t cell_resel_prio = 0; fixed_bitstring<2> neigh_cell_cfg; q_offset_range_e q_offset_freq; inter_freq_neigh_cell_list_l inter_freq_neigh_cell_list; inter_freq_excluded_cell_list_l inter_freq_excluded_cell_list; // ... // group 0 bool q_qual_min_r9_present = false; int8_t q_qual_min_r9 = -34; copy_ptr thresh_x_q_r9; // group 1 bool q_qual_min_wb_r11_present = false; int8_t q_qual_min_wb_r11 = -34; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqInfo-r12 ::= SEQUENCE struct inter_freq_carrier_freq_info_r12_s { struct thresh_x_q_r12_s_ { uint8_t thresh_x_high_q_r12 = 0; uint8_t thresh_x_low_q_r12 = 0; }; // member variables bool ext = false; bool p_max_r12_present = false; bool t_resel_eutra_sf_r12_present = false; bool cell_resel_prio_r12_present = false; bool q_offset_freq_r12_present = false; bool inter_freq_neigh_cell_list_r12_present = false; bool inter_freq_excluded_cell_list_r12_present = false; bool q_qual_min_r12_present = false; bool thresh_x_q_r12_present = false; bool q_qual_min_wb_r12_present = false; bool multi_band_info_list_r12_present = false; bool reduced_meas_performance_r12_present = false; bool q_qual_min_rsrq_on_all_symbols_r12_present = false; uint32_t dl_carrier_freq_r12 = 0; int8_t q_rx_lev_min_r12 = -70; int8_t p_max_r12 = -30; uint8_t t_resel_eutra_r12 = 0; speed_state_scale_factors_s t_resel_eutra_sf_r12; uint8_t thresh_x_high_r12 = 0; uint8_t thresh_x_low_r12 = 0; allowed_meas_bw_e allowed_meas_bw_r12; bool presence_ant_port1_r12 = false; uint8_t cell_resel_prio_r12 = 0; fixed_bitstring<2> neigh_cell_cfg_r12; q_offset_range_e q_offset_freq_r12; inter_freq_neigh_cell_list_l inter_freq_neigh_cell_list_r12; inter_freq_excluded_cell_list_l inter_freq_excluded_cell_list_r12; int8_t q_qual_min_r12 = -34; thresh_x_q_r12_s_ thresh_x_q_r12; int8_t q_qual_min_wb_r12 = -34; multi_band_info_list_r11_l multi_band_info_list_r12; int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); 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; bool q_qual_min_rsrq_on_all_symbols_r12_present = false; int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE struct inter_freq_carrier_freq_info_v1310_s { bool cell_resel_sub_prio_r13_present = false; bool redist_inter_freq_info_r13_present = false; bool cell_sel_info_ce_r13_present = false; bool t_resel_eutra_ce_r13_present = false; cell_resel_sub_prio_r13_e cell_resel_sub_prio_r13; redist_inter_freq_info_r13_s redist_inter_freq_info_r13; cell_sel_info_ce_r13_s cell_sel_info_ce_r13; uint8_t t_resel_eutra_ce_r13 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE struct inter_freq_carrier_freq_info_v1350_s { bool cell_sel_info_ce1_r13_present = false; cell_sel_info_ce1_r13_s cell_sel_info_ce1_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // 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; }; // 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; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqInfo-v1610 ::= SEQUENCE struct inter_freq_carrier_freq_info_v1610_s { bool alt_cell_resel_prio_r16_present = false; bool alt_cell_resel_sub_prio_r16_present = false; bool rss_cfg_carrier_info_r16_present = false; bool inter_freq_neigh_cell_list_v1610_present = false; uint8_t alt_cell_resel_prio_r16 = 0; cell_resel_sub_prio_r13_e alt_cell_resel_sub_prio_r16; rss_cfg_carrier_info_r16_s rss_cfg_carrier_info_r16; inter_freq_neigh_cell_list_v1610_l inter_freq_neigh_cell_list_v1610; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // IntraFreqNeighCellInfo ::= SEQUENCE struct intra_freq_neigh_cell_info_s { bool ext = false; uint16_t pci = 0; q_offset_range_e q_offset_cell; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // IntraFreqNeighCellInfo-v1610 ::= SEQUENCE struct intra_freq_neigh_cell_info_v1610_s { rss_meas_pwr_bias_r16_e rss_meas_pwr_bias_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBMS-CarrierType-r14 ::= SEQUENCE struct mbms_carrier_type_r14_s { struct carrier_type_r14_opts { enum options { mbms, fembms_mixed, fembms_ded, nulltype } value; const char* to_string() const; }; typedef enumerated carrier_type_r14_e_; // member variables bool frame_offset_r14_present = false; carrier_type_r14_e_ carrier_type_r14; uint8_t frame_offset_r14 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBMS-SAI-InterFreq-r11 ::= SEQUENCE struct mbms_sai_inter_freq_r11_s { uint32_t dl_carrier_freq_r11 = 0; mbms_sai_list_r11_l mbms_sai_list_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBMS-SAI-InterFreq-v1140 ::= SEQUENCE struct mbms_sai_inter_freq_v1140_s { bool multi_band_info_list_r11_present = false; multi_band_info_list_r11_l multi_band_info_list_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBSFN-AreaInfo-r17 ::= SEQUENCE struct mbsfn_area_info_r17_s { struct pmch_bw_r17_opts { enum options { n40, n35, n30, spare1, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pmch_bw_r17_e_; // member variables bool ext = false; mbsfn_area_info_r16_s mbsfn_area_info_r17; pmch_bw_r17_e_ pmch_bw_r17; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBSFN-AreaInfo-r9 ::= SEQUENCE struct mbsfn_area_info_r9_s { struct non_mbsfn_region_len_opts { enum options { s1, s2, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated non_mbsfn_region_len_e_; struct mcch_cfg_r9_s_ { struct mcch_repeat_period_r9_opts { enum options { rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_repeat_period_r9_e_; struct mcch_mod_period_r9_opts { enum options { rf512, rf1024, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_mod_period_r9_e_; struct sig_mcs_r9_opts { enum options { n2, n7, n13, n19, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sig_mcs_r9_e_; // member variables mcch_repeat_period_r9_e_ mcch_repeat_period_r9; uint8_t mcch_offset_r9 = 0; mcch_mod_period_r9_e_ mcch_mod_period_r9; fixed_bitstring<6> sf_alloc_info_r9; sig_mcs_r9_e_ sig_mcs_r9; }; struct mcch_cfg_r14_s_ { struct mcch_repeat_period_v1430_opts { enum options { rf1, rf2, rf4, rf8, rf16, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated mcch_repeat_period_v1430_e_; struct mcch_mod_period_v1430_opts { enum options { rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, spare7, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mcch_mod_period_v1430_e_; // member variables bool mcch_repeat_period_v1430_present = false; bool mcch_mod_period_v1430_present = false; mcch_repeat_period_v1430_e_ mcch_repeat_period_v1430; mcch_mod_period_v1430_e_ mcch_mod_period_v1430; }; struct subcarrier_spacing_mbms_r14_opts { enum options { khz7dot5, khz1dot25, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated subcarrier_spacing_mbms_r14_e_; // member variables bool ext = false; uint16_t mbsfn_area_id_r9 = 0; non_mbsfn_region_len_e_ non_mbsfn_region_len; uint8_t notif_ind_r9 = 0; mcch_cfg_r9_s_ mcch_cfg_r9; // ... // group 0 bool subcarrier_spacing_mbms_r14_present = false; copy_ptr mcch_cfg_r14; subcarrier_spacing_mbms_r14_e_ subcarrier_spacing_mbms_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NR-CarrierList-r16 ::= SEQUENCE (SIZE (1..8)) OF MeasIdleCarrierNR-r16 using nr_carrier_list_r16_l = dyn_array; // NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000 using neigh_cell_list_cdma2000_l = dyn_array; // NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920 using neigh_cell_list_cdma2000_v920_l = dyn_array; // PLMN-Info-r16 ::= SEQUENCE struct plmn_info_r16_s { bool nr_band_list_r16_present = false; fixed_bitstring<10> nr_band_list_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // ReselectionInfoRelay-r13 ::= SEQUENCE struct resel_info_relay_r13_s { struct min_hyst_r13_opts { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated min_hyst_r13_e_; // member variables bool min_hyst_r13_present = false; int8_t q_rx_lev_min_r13 = -70; filt_coef_e filt_coef_r13; min_hyst_r13_e_ min_hyst_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SIB8-PerPLMN-r11 ::= SEQUENCE struct sib8_per_plmn_r11_s { struct params_cdma2000_r11_c_ { struct types_opts { enum options { explicit_value, default_value, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods params_cdma2000_r11_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 params_cdma2000_r11_s& explicit_value() { assert_choice_type(types::explicit_value, type_, "parametersCDMA2000-r11"); return c; } const params_cdma2000_r11_s& explicit_value() const { assert_choice_type(types::explicit_value, type_, "parametersCDMA2000-r11"); return c; } params_cdma2000_r11_s& set_explicit_value(); void set_default_value(); private: types type_; params_cdma2000_r11_s c; }; // member variables uint8_t plmn_id_r11 = 1; params_cdma2000_r11_c_ params_cdma2000_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-CarrierFreqInfo-r12 ::= SEQUENCE struct sl_carrier_freq_info_r12_s { bool plmn_id_list_r12_present = false; uint32_t carrier_freq_r12 = 0; plmn_id_list4_r12_l plmn_id_list_r12; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-CarrierFreqInfo-v1310 ::= SEQUENCE struct sl_carrier_freq_info_v1310_s { bool ext = false; bool disc_res_non_ps_r13_present = false; bool disc_res_ps_r13_present = false; bool disc_cfg_other_r13_present = false; sl_res_inter_freq_r13_s disc_res_non_ps_r13; sl_res_inter_freq_r13_s disc_res_ps_r13; sl_disc_cfg_other_inter_freq_r13_s disc_cfg_other_r13; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE struct sl_pppp_tx_cfg_idx_r15_s { using tx_cfg_idx_list_r15_l_ = bounded_array; using mcs_pssch_range_list_r15_l_ = dyn_array; // member variables uint8_t prio_thres_r15 = 1; uint8_t default_tx_cfg_idx_r15 = 0; uint8_t cbr_cfg_idx_r15 = 0; tx_cfg_idx_list_r15_l_ tx_cfg_idx_list_r15; mcs_pssch_range_list_r15_l_ mcs_pssch_range_list_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SatelliteInfo-r17 ::= SEQUENCE struct satellite_info_r17_s { struct service_info_r17_s_ { bool tle_ephemeris_params_r17_present = false; bool t_service_start_r17_present = false; tle_ephemeris_params_r17_s tle_ephemeris_params_r17; uint32_t t_service_start_r17 = 0; }; struct footprint_info_r17_s_ { struct ref_point_r17_s_ { int32_t longitude_r17 = -131072; int32_t latitude_r17 = -131072; }; struct elevation_angles_r17_s_ { bool elevation_angle_left_r17_present = false; int8_t elevation_angle_right_r17 = -14; int8_t elevation_angle_left_r17 = -14; }; // member variables bool ref_point_r17_present = false; bool elevation_angles_r17_present = false; bool radius_r17_present = false; ref_point_r17_s_ ref_point_r17; elevation_angles_r17_s_ elevation_angles_r17; uint16_t radius_r17 = 1; }; // member variables uint16_t satellite_id_r17 = 0; service_info_r17_s_ service_info_r17; footprint_info_r17_s_ footprint_info_r17; // 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 { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated uac_barr_factor_r15_e_; struct uac_barr_time_r15_opts { enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated uac_barr_time_r15_e_; // member variables uac_barr_factor_r15_e_ uac_barr_factor_r15; uac_barr_time_r15_e_ uac_barr_time_r15; fixed_bitstring<7> uac_barr_for_access_id_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // UAC-BarringInfoSet-v1700 ::= SEQUENCE struct uac_barr_info_set_v1700_s { struct uac_barr_factor_for_ai3_r17_opts { enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated uac_barr_factor_for_ai3_r17_e_; // member variables bool uac_barr_factor_for_ai3_r17_present = false; uac_barr_factor_for_ai3_r17_e_ uac_barr_factor_for_ai3_r17; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // UAC-BarringPerPLMN-r15 ::= SEQUENCE struct uac_barr_per_plmn_r15_s { struct uac_ac_barr_list_type_r15_c_ { using uac_implicit_ac_barr_list_r15_l_ = std::array; struct types_opts { enum options { uac_implicit_ac_barr_list_r15, uac_explicit_ac_barr_list_r15, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods uac_ac_barr_list_type_r15_c_() = default; uac_ac_barr_list_type_r15_c_(const uac_ac_barr_list_type_r15_c_& other); uac_ac_barr_list_type_r15_c_& operator=(const uac_ac_barr_list_type_r15_c_& other); ~uac_ac_barr_list_type_r15_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15() { assert_choice_type(types::uac_implicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15() { assert_choice_type(types::uac_explicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } const uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15() const { assert_choice_type(types::uac_implicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } const uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15() const { assert_choice_type(types::uac_explicit_ac_barr_list_r15, type_, "uac-AC-BarringListType-r15"); return c.get(); } uac_implicit_ac_barr_list_r15_l_& set_uac_implicit_ac_barr_list_r15(); uac_barr_per_cat_list_r15_l& set_uac_explicit_ac_barr_list_r15(); private: types type_; choice_buffer_t c; void destroy_(); }; // member variables bool uac_ac_barr_list_type_r15_present = false; uint8_t plmn_id_idx_r15 = 1; uac_ac_barr_list_type_r15_c_ uac_ac_barr_list_type_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // ApplicableDisasterInfo-r17 ::= CHOICE struct applicable_disaster_info_r17_c { using ded_plmns_r17_l_ = dyn_array; struct types_opts { enum options { no_disaster_roaming_r17, disaster_related_ind_r17, common_plmns_r17, ded_plmns_r17, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods applicable_disaster_info_r17_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 ded_plmns_r17_l_& ded_plmns_r17() { assert_choice_type(types::ded_plmns_r17, type_, "ApplicableDisasterInfo-r17"); return c; } const ded_plmns_r17_l_& ded_plmns_r17() const { assert_choice_type(types::ded_plmns_r17, type_, "ApplicableDisasterInfo-r17"); return c; } void set_no_disaster_roaming_r17(); void set_disaster_related_ind_r17(); void set_common_plmns_r17(); ded_plmns_r17_l_& set_ded_plmns_r17(); private: types type_; ded_plmns_r17_l_ c; }; // BandListENDC-r16 ::= SEQUENCE (SIZE (1..10)) OF INTEGER (1..1024) using band_list_endc_r16_l = bounded_array; // CarrierFreqInfoUTRA-v1250 ::= SEQUENCE struct carrier_freq_info_utra_v1250_s { bool reduced_meas_performance_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; }; // CarrierFreqListNBIOT-r16 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNBIOT-r16 using carrier_freq_list_nbiot_r16_l = dyn_array; // CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-r15 using carrier_freq_list_nr_r15_l = dyn_array; // CarrierFreqListNR-v1610 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1610 using carrier_freq_list_nr_v1610_l = dyn_array; // CarrierFreqListNR-v1700 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1700 using carrier_freq_list_nr_v1700_l = dyn_array; // CarrierFreqListNR-v1720 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1720 using carrier_freq_list_nr_v1720_l = dyn_array; // CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD using carrier_freq_list_utra_fdd_l = dyn_array; // CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD-Ext-r12 using carrier_freq_list_utra_fdd_ext_r12_l = dyn_array; // CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD using carrier_freq_list_utra_tdd_l = dyn_array; // CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD-r12 using carrier_freq_list_utra_tdd_ext_r12_l = dyn_array; // CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqsInfoGERAN using carrier_freqs_info_list_geran_l = dyn_array; // CellReselectionInfoCommon-v1460 ::= SEQUENCE struct cell_resel_info_common_v1460_s { struct s_search_delta_p_r14_opts { enum options { db6, db9, db12, db15, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated s_search_delta_p_r14_e_; // member variables s_search_delta_p_r14_e_ s_search_delta_p_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellReselectionInfoHSDN-r15 ::= SEQUENCE struct cell_resel_info_hsdn_r15_s { uint8_t cell_equivalent_size_r15 = 2; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellReselectionParametersCDMA2000 ::= SEQUENCE struct cell_resel_params_cdma2000_s { bool t_resel_cdma2000_sf_present = false; band_class_list_cdma2000_l band_class_list; neigh_cell_list_cdma2000_l neigh_cell_list; uint8_t t_resel_cdma2000 = 0; speed_state_scale_factors_s t_resel_cdma2000_sf; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellReselectionParametersCDMA2000-v920 ::= SEQUENCE struct cell_resel_params_cdma2000_v920_s { neigh_cell_list_cdma2000_v920_l neigh_cell_list_v920; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellReselectionServingFreqInfo-v1310 ::= SEQUENCE struct cell_resel_serving_freq_info_v1310_s { cell_resel_sub_prio_r13_e cell_resel_sub_prio_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // CellReselectionServingFreqInfo-v1610 ::= SEQUENCE struct cell_resel_serving_freq_info_v1610_s { bool alt_cell_resel_prio_r16_present = false; bool alt_cell_resel_sub_prio_r16_present = false; uint8_t alt_cell_resel_prio_r16 = 0; cell_resel_sub_prio_r13_e alt_cell_resel_sub_prio_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // EAB-ConfigPLMN-r11 ::= SEQUENCE struct eab_cfg_plmn_r11_s { bool eab_cfg_r11_present = false; eab_cfg_r11_s eab_cfg_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo using inter_freq_carrier_freq_list_l = dyn_array; // InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1250 using inter_freq_carrier_freq_list_v1250_l = dyn_array; // InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310 using inter_freq_carrier_freq_list_v1310_l = dyn_array; // InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350 using inter_freq_carrier_freq_list_v1350_l = dyn_array; // InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530 using inter_freq_carrier_freq_list_v1530_l = dyn_array; // InterFreqCarrierFreqList-v1610 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1610 using inter_freq_carrier_freq_list_v1610_l = dyn_array; // InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-r12 using inter_freq_carrier_freq_list_ext_r12_l = dyn_array; // InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v10j0 using inter_freq_carrier_freq_list_ext_v1280_l = dyn_array; // InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310 using inter_freq_carrier_freq_list_ext_v1310_l = dyn_array; // InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350 using inter_freq_carrier_freq_list_ext_v1350_l = dyn_array; // InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360 using inter_freq_carrier_freq_list_ext_v1360_l = dyn_array; // InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530 using inter_freq_carrier_freq_list_ext_v1530_l = dyn_array; // InterFreqCarrierFreqListExt-v1610 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1610 using inter_freq_carrier_freq_list_ext_v1610_l = dyn_array; // IntraFreqExcludedCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange using intra_freq_excluded_cell_list_l = dyn_array; // IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF IntraFreqNeighCellInfo using intra_freq_neigh_cell_list_l = dyn_array; // IntraFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..16)) OF IntraFreqNeighCellInfo-v1610 using intra_freq_neigh_cell_list_v1610_l = dyn_array; // IntraFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange using intra_freq_neigh_hsdn_cell_list_r15_l = dyn_array; // MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..8)) OF MBMS-CarrierType-r14 using mbms_inter_freq_carrier_type_list_r14_l = dyn_array; // MBMS-NotificationConfig-r9 ::= SEQUENCE struct mbms_notif_cfg_r9_s { struct notif_repeat_coeff_r9_opts { enum options { n2, n4, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated notif_repeat_coeff_r9_e_; // member variables notif_repeat_coeff_r9_e_ notif_repeat_coeff_r9; uint8_t notif_offset_r9 = 0; uint8_t notif_sf_idx_r9 = 1; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBMS-NotificationConfig-v1430 ::= SEQUENCE struct mbms_notif_cfg_v1430_s { uint8_t notif_sf_idx_v1430 = 7; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..8)) OF MBMS-SAI-InterFreq-r11 using mbms_sai_inter_freq_list_r11_l = dyn_array; // MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..8)) OF MBMS-SAI-InterFreq-v1140 using mbms_sai_inter_freq_list_v1140_l = dyn_array; // MBSFN-AreaInfoList-r16 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r16 using mbsfn_area_info_list_r16_l = dyn_array; // MBSFN-AreaInfoList-r17 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r17 using mbsfn_area_info_list_r17_l = dyn_array; // MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r9 using mbsfn_area_info_list_r9_l = dyn_array; // MeasIdleConfigSIB-NR-r16 ::= SEQUENCE struct meas_idle_cfg_sib_nr_r16_s { bool ext = false; nr_carrier_list_r16_l meas_idle_carrier_list_nr_r16; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // MeasIdleConfigSIB-r15 ::= SEQUENCE struct meas_idle_cfg_sib_r15_s { bool ext = false; eutra_carrier_list_r15_l meas_idle_carrier_list_eutra_r15; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // PLMN-InfoList-r16 ::= SEQUENCE (SIZE (0..6)) OF PLMN-Info-r16 using plmn_info_list_r16_l = dyn_array; // RedistributionServingInfo-r13 ::= SEQUENCE struct redist_serving_info_r13_s { struct t360_r13_opts { enum options { min4, min8, min16, min32, infinity, spare3, spare2, spare1, nulltype } value; typedef int8_t number_type; const char* to_string() const; int8_t to_number() const; }; typedef enumerated t360_r13_e_; // member variables bool redist_factor_cell_r13_present = false; bool redistr_on_paging_only_r13_present = false; uint8_t redist_factor_serving_r13 = 0; t360_r13_e_ t360_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE struct sc_mcch_sched_info_r14_s { struct on_dur_timer_scptm_r14_opts { enum options { psf10, psf20, psf100, psf300, psf500, psf1000, psf1200, psf1600, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated on_dur_timer_scptm_r14_e_; struct drx_inactivity_timer_scptm_r14_opts { enum options { psf0, psf1, psf2, psf4, psf8, psf16, psf32, psf64, psf128, psf256, ps512, psf1024, psf2048, psf4096, psf8192, psf16384, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated drx_inactivity_timer_scptm_r14_e_; struct sched_period_start_offset_scptm_r14_c_ { struct types_opts { enum options { sf10, sf20, sf32, sf40, sf64, sf80, sf128, sf160, sf256, sf320, sf512, sf640, sf1024, sf2048, sf4096, sf8192, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated types; // choice methods sched_period_start_offset_scptm_r14_c_() = default; sched_period_start_offset_scptm_r14_c_(const sched_period_start_offset_scptm_r14_c_& other); sched_period_start_offset_scptm_r14_c_& operator=(const sched_period_start_offset_scptm_r14_c_& other); ~sched_period_start_offset_scptm_r14_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters uint8_t& sf10() { assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf20() { assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf32() { assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf40() { assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf64() { assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf80() { assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf128() { assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& sf160() { assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf256() { assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf320() { assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf512() { assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf640() { assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf1024() { assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf2048() { assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf4096() { assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint16_t& sf8192() { assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf10() const { assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf20() const { assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf32() const { assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf40() const { assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf64() const { assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf80() const { assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf128() const { assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint8_t& sf160() const { assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf256() const { assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf320() const { assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf512() const { assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf640() const { assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf1024() const { assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf2048() const { assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf4096() const { assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } const uint16_t& sf8192() const { assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14"); return c.get(); } uint8_t& set_sf10(); uint8_t& set_sf20(); uint8_t& set_sf32(); uint8_t& set_sf40(); uint8_t& set_sf64(); uint8_t& set_sf80(); uint8_t& set_sf128(); uint8_t& set_sf160(); uint16_t& set_sf256(); uint16_t& set_sf320(); uint16_t& set_sf512(); uint16_t& set_sf640(); uint16_t& set_sf1024(); uint16_t& set_sf2048(); uint16_t& set_sf4096(); uint16_t& set_sf8192(); private: types type_; pod_choice_buffer_t c; void destroy_(); }; // member variables bool ext = false; on_dur_timer_scptm_r14_e_ on_dur_timer_scptm_r14; drx_inactivity_timer_scptm_r14_e_ drx_inactivity_timer_scptm_r14; sched_period_start_offset_scptm_r14_c_ sched_period_start_offset_scptm_r14; // ... // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..6)) OF SIB8-PerPLMN-r11 using sib8_per_plmn_list_r11_l = dyn_array; // SL-CBR-PPPP-TxConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r15 using sl_cbr_pppp_tx_cfg_list_r15_l = dyn_array; // SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-r12 using sl_carrier_freq_info_list_r12_l = dyn_array; // SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-v1310 using sl_carrier_freq_info_list_v1310_l = dyn_array; // SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-CommResourcePool-r12 using sl_comm_rx_pool_list_r12_l = dyn_array; // SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12 using sl_comm_tx_pool_list_r12_l = dyn_array; // SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12 using sl_comm_tx_pool_list_ext_r13_l = dyn_array; // SL-DiscConfigRelayUE-r13 ::= SEQUENCE struct sl_disc_cfg_relay_ue_r13_s { struct hyst_max_r13_opts { enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_max_r13_e_; struct hyst_min_r13_opts { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_min_r13_e_; // member variables bool thresh_high_r13_present = false; bool thresh_low_r13_present = false; bool hyst_max_r13_present = false; bool hyst_min_r13_present = false; uint8_t thresh_high_r13 = 0; uint8_t thresh_low_r13 = 0; hyst_max_r13_e_ hyst_max_r13; hyst_min_r13_e_ hyst_min_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-DiscConfigRemoteUE-r13 ::= SEQUENCE struct sl_disc_cfg_remote_ue_r13_s { struct hyst_max_r13_opts { enum options { db0, db3, db6, db9, db12, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated hyst_max_r13_e_; // member variables bool thresh_high_r13_present = false; bool hyst_max_r13_present = false; uint8_t thresh_high_r13 = 0; hyst_max_r13_e_ hyst_max_r13; resel_info_relay_r13_s resel_info_ic_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SL-NR-AnchorCarrierFreqList-r16 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..3279165) using sl_nr_anchor_carrier_freq_list_r16_l = bounded_array; // SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12 using sl_sync_cfg_list_r12_l = dyn_array; // SatelliteInfoList-r17 ::= SEQUENCE (SIZE (1..4)) OF SatelliteInfo-r17 using satellite_info_list_r17_l = dyn_array; // ServingSatelliteInfo-r17 ::= SEQUENCE struct serving_satellite_info_r17_s { struct ephemeris_info_r17_c_ { struct types_opts { enum options { state_vectors, orbital_params, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods ephemeris_info_r17_c_() = default; ephemeris_info_r17_c_(const ephemeris_info_r17_c_& other); ephemeris_info_r17_c_& operator=(const ephemeris_info_r17_c_& other); ~ephemeris_info_r17_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters ephemeris_state_vectors_r17_s& state_vectors() { assert_choice_type(types::state_vectors, type_, "ephemerisInfo-r17"); return c.get(); } ephemeris_orbital_params_r17_s& orbital_params() { assert_choice_type(types::orbital_params, type_, "ephemerisInfo-r17"); return c.get(); } const ephemeris_state_vectors_r17_s& state_vectors() const { assert_choice_type(types::state_vectors, type_, "ephemerisInfo-r17"); return c.get(); } const ephemeris_orbital_params_r17_s& orbital_params() const { assert_choice_type(types::orbital_params, type_, "ephemerisInfo-r17"); return c.get(); } ephemeris_state_vectors_r17_s& set_state_vectors(); ephemeris_orbital_params_r17_s& set_orbital_params(); private: types type_; choice_buffer_t c; void destroy_(); }; struct nta_common_params_minus17_s_ { bool nta_common_r17_present = false; bool nta_common_drift_r17_present = false; bool nta_common_drift_variation_r17_present = false; uint32_t nta_common_r17 = 0; int32_t nta_common_drift_r17 = -261935; uint16_t nta_common_drift_variation_r17 = 0; }; struct ul_sync_validity_dur_r17_opts { enum options { s5, s10, s15, s20, s25, s30, s35, s40, s45, s50, s55, s60, s120, s180, s240, s900, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated ul_sync_validity_dur_r17_e_; struct epoch_time_r17_s_ { uint16_t start_sfn_r17 = 0; uint8_t start_sub_frame_r17 = 0; }; // member variables bool ext = false; bool epoch_time_r17_present = false; bool k_mac_r17_present = false; ephemeris_info_r17_c_ ephemeris_info_r17; nta_common_params_minus17_s_ nta_common_params_minus17; ul_sync_validity_dur_r17_e_ ul_sync_validity_dur_r17; epoch_time_r17_s_ epoch_time_r17; uint16_t k_offset_r17 = 0; uint16_t k_mac_r17 = 1; // ... // 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; const char* to_string() const; }; typedef enumerated uac_ac1_select_assist_info_r15_e; // UAC-AC1-SelectAssistInfo-r16 ::= ENUMERATED struct uac_ac1_select_assist_info_r16_opts { enum options { a, b, c, not_cfgured, nulltype } value; const char* to_string() const; }; typedef enumerated uac_ac1_select_assist_info_r16_e; // UAC-BarringInfoSetList-r15 ::= SEQUENCE (SIZE (1..8)) OF UAC-BarringInfoSet-r15 using uac_barr_info_set_list_r15_l = dyn_array; // UAC-BarringInfoSetList-v1700 ::= SEQUENCE (SIZE (1..8)) OF UAC-BarringInfoSet-v1700 using uac_barr_info_set_list_v1700_l = dyn_array; // UAC-BarringPerPLMN-List-r15 ::= SEQUENCE (SIZE (1..6)) OF UAC-BarringPerPLMN-r15 using uac_barr_per_plmn_list_r15_l = dyn_array; // SystemInformation-v8a0-IEs ::= SEQUENCE struct sys_info_v8a0_ies_s { bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; dyn_octstring late_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; }; // SystemInformationBlockPos-r15 ::= SEQUENCE struct sib_pos_r15_s { bool ext = false; bool late_non_crit_ext_present = false; dyn_octstring assist_data_sib_elem_r15; dyn_octstring late_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; bool dummy_present = false; fixed_bitstring<16> msg_id; fixed_bitstring<16> serial_num; fixed_octstring<2> warning_type; fixed_octstring<50> dummy; // ... bool late_non_crit_ext_present = false; dyn_octstring late_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; }; // SystemInformationBlockType11 ::= SEQUENCE struct sib_type11_s { struct warning_msg_segment_type_opts { enum options { not_last_segment, last_segment, nulltype } value; const char* to_string() const; }; typedef enumerated warning_msg_segment_type_e_; // member variables bool ext = false; bool data_coding_scheme_present = false; fixed_bitstring<16> msg_id; fixed_bitstring<16> serial_num; warning_msg_segment_type_e_ warning_msg_segment_type; uint8_t warning_msg_segment_num = 0; dyn_octstring warning_msg_segment; fixed_octstring<1> data_coding_scheme; // ... bool late_non_crit_ext_present = false; dyn_octstring late_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; }; // SystemInformationBlockType12-r9 ::= SEQUENCE struct sib_type12_r9_s { struct warning_msg_segment_type_r9_opts { enum options { not_last_segment, last_segment, nulltype } value; const char* to_string() const; }; typedef enumerated warning_msg_segment_type_r9_e_; // member variables bool ext = false; bool data_coding_scheme_r9_present = false; bool late_non_crit_ext_present = false; fixed_bitstring<16> msg_id_r9; fixed_bitstring<16> serial_num_r9; warning_msg_segment_type_r9_e_ warning_msg_segment_type_r9; uint8_t warning_msg_segment_num_r9 = 0; dyn_octstring warning_msg_segment_r9; fixed_octstring<1> data_coding_scheme_r9; dyn_octstring late_non_crit_ext; // ... // group 0 bool warning_area_coordinates_segment_r15_present = false; dyn_octstring warning_area_coordinates_segment_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType13-r9 ::= SEQUENCE struct sib_type13_r9_s { bool ext = false; bool late_non_crit_ext_present = false; mbsfn_area_info_list_r9_l mbsfn_area_info_list_r9; mbms_notif_cfg_r9_s notif_cfg_r9; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr notif_cfg_v1430; // group 1 copy_ptr mbsfn_area_info_list_r16; // group 2 copy_ptr mbsfn_area_info_list_r17; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType14-r11 ::= SEQUENCE struct sib_type14_r11_s { struct eab_param_r11_c_ { using eab_per_plmn_list_r11_l_ = dyn_array; struct types_opts { enum options { eab_common_r11, eab_per_plmn_list_r11, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods eab_param_r11_c_() = default; eab_param_r11_c_(const eab_param_r11_c_& other); eab_param_r11_c_& operator=(const eab_param_r11_c_& other); ~eab_param_r11_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters eab_cfg_r11_s& eab_common_r11() { assert_choice_type(types::eab_common_r11, type_, "eab-Param-r11"); return c.get(); } eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11() { assert_choice_type(types::eab_per_plmn_list_r11, type_, "eab-Param-r11"); return c.get(); } const eab_cfg_r11_s& eab_common_r11() const { assert_choice_type(types::eab_common_r11, type_, "eab-Param-r11"); return c.get(); } const eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11() const { assert_choice_type(types::eab_per_plmn_list_r11, type_, "eab-Param-r11"); return c.get(); } eab_cfg_r11_s& set_eab_common_r11(); eab_per_plmn_list_r11_l_& set_eab_per_plmn_list_r11(); private: types type_; choice_buffer_t c; void destroy_(); }; struct eab_per_rsrp_r15_opts { enum options { thresh0, thresh1, thresh2, thresh3, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated eab_per_rsrp_r15_e_; // member variables bool ext = false; bool eab_param_r11_present = false; bool late_non_crit_ext_present = false; eab_param_r11_c_ eab_param_r11; dyn_octstring late_non_crit_ext; // ... // group 0 bool eab_per_rsrp_r15_present = false; eab_per_rsrp_r15_e_ eab_per_rsrp_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType15-r11 ::= SEQUENCE struct sib_type15_r11_s { bool ext = false; bool mbms_sai_intra_freq_r11_present = false; bool mbms_sai_inter_freq_list_r11_present = false; bool late_non_crit_ext_present = false; mbms_sai_list_r11_l mbms_sai_intra_freq_r11; mbms_sai_inter_freq_list_r11_l mbms_sai_inter_freq_list_r11; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr mbms_sai_inter_freq_list_v1140; // group 1 copy_ptr mbms_intra_freq_carrier_type_r14; copy_ptr mbms_inter_freq_carrier_type_list_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType16-r11 ::= SEQUENCE struct sib_type16_r11_s { struct time_info_r11_s_ { bool day_light_saving_time_r11_present = false; bool leap_seconds_r11_present = false; bool local_time_offset_r11_present = false; uint64_t time_info_utc_r11 = 0; fixed_bitstring<2> day_light_saving_time_r11; int16_t leap_seconds_r11 = -127; int8_t local_time_offset_r11 = -63; }; // member variables bool ext = false; bool time_info_r11_present = false; bool late_non_crit_ext_present = false; time_info_r11_s_ time_info_r11; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr time_ref_info_r15; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType17-r12 ::= SEQUENCE struct sib_type17_r12_s { using wlan_offload_info_per_plmn_list_r12_l_ = dyn_array; // member variables bool ext = false; bool wlan_offload_info_per_plmn_list_r12_present = false; bool late_non_crit_ext_present = false; wlan_offload_info_per_plmn_list_r12_l_ wlan_offload_info_per_plmn_list_r12; dyn_octstring late_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; }; // SystemInformationBlockType18-r12 ::= SEQUENCE struct sib_type18_r12_s { struct comm_cfg_r12_s_ { bool comm_tx_pool_normal_common_r12_present = false; bool comm_tx_pool_exceptional_r12_present = false; bool comm_sync_cfg_r12_present = false; sl_comm_rx_pool_list_r12_l comm_rx_pool_r12; sl_comm_tx_pool_list_r12_l comm_tx_pool_normal_common_r12; sl_comm_tx_pool_list_r12_l comm_tx_pool_exceptional_r12; sl_sync_cfg_list_r12_l comm_sync_cfg_r12; }; // member variables bool ext = false; bool comm_cfg_r12_present = false; bool late_non_crit_ext_present = false; comm_cfg_r12_s_ comm_cfg_r12; dyn_octstring late_non_crit_ext; // ... // group 0 bool comm_tx_res_uc_req_allowed_r13_present = false; bool comm_tx_allow_relay_common_r13_present = false; copy_ptr comm_tx_pool_normal_common_ext_r13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType19-r12 ::= SEQUENCE struct sib_type19_r12_s { struct disc_cfg_r12_s_ { bool disc_tx_pool_common_r12_present = false; bool disc_tx_pwr_info_r12_present = false; bool disc_sync_cfg_r12_present = false; sl_disc_rx_pool_list_r12_l disc_rx_pool_r12; sl_disc_tx_pool_list_r12_l disc_tx_pool_common_r12; sl_disc_tx_pwr_info_list_r12_l disc_tx_pwr_info_r12; sl_sync_cfg_list_r12_l disc_sync_cfg_r12; }; struct disc_cfg_v1310_s_ { bool disc_inter_freq_list_v1310_present = false; bool gap_requests_allowed_common_present = false; sl_carrier_freq_info_list_v1310_l disc_inter_freq_list_v1310; }; struct disc_cfg_relay_r13_s_ { sl_disc_cfg_relay_ue_r13_s relay_ue_cfg_r13; sl_disc_cfg_remote_ue_r13_s remote_ue_cfg_r13; }; struct disc_cfg_ps_minus13_s_ { bool disc_tx_pool_ps_common_r13_present = false; sl_disc_rx_pool_list_r12_l disc_rx_pool_ps_r13; sl_disc_tx_pool_list_r12_l disc_tx_pool_ps_common_r13; }; // member variables bool ext = false; bool disc_cfg_r12_present = false; bool disc_inter_freq_list_r12_present = false; bool late_non_crit_ext_present = false; disc_cfg_r12_s_ disc_cfg_r12; sl_carrier_freq_info_list_r12_l disc_inter_freq_list_r12; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr disc_cfg_v1310; copy_ptr disc_cfg_relay_r13; copy_ptr disc_cfg_ps_minus13; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType20-r13 ::= SEQUENCE struct sib_type20_r13_s { struct sc_mcch_repeat_period_r13_opts { enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sc_mcch_repeat_period_r13_e_; struct sc_mcch_mod_period_r13_opts { enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, r2048, rf4096, rf8192, rf16384, rf32768, rf65536, nulltype } value; typedef uint32_t number_type; const char* to_string() const; uint32_t to_number() const; }; typedef enumerated sc_mcch_mod_period_r13_e_; struct br_bcch_cfg_r14_s_ { struct mpdcch_num_repeat_sc_mcch_r14_opts { enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated mpdcch_num_repeat_sc_mcch_r14_e_; struct mpdcch_start_sf_sc_mcch_r14_c_ { struct fdd_r14_opts { enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value; typedef float number_type; const char* to_string() const; float to_number() const; const char* to_number_string() const; }; typedef enumerated fdd_r14_e_; struct tdd_r14_opts { enum options { v1, v2, v4, v5, v8, v10, v20, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated tdd_r14_e_; struct types_opts { enum options { fdd_r14, tdd_r14, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods mpdcch_start_sf_sc_mcch_r14_c_() = default; mpdcch_start_sf_sc_mcch_r14_c_(const mpdcch_start_sf_sc_mcch_r14_c_& other); mpdcch_start_sf_sc_mcch_r14_c_& operator=(const mpdcch_start_sf_sc_mcch_r14_c_& other); ~mpdcch_start_sf_sc_mcch_r14_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters fdd_r14_e_& fdd_r14() { assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } tdd_r14_e_& tdd_r14() { assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } const fdd_r14_e_& fdd_r14() const { assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } const tdd_r14_e_& tdd_r14() const { assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14"); return c.get(); } fdd_r14_e_& set_fdd_r14(); tdd_r14_e_& set_tdd_r14(); private: types type_; pod_choice_buffer_t c; void destroy_(); }; struct mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts { enum options { off, ce_mode_a, ce_mode_b, nulltype } value; const char* to_string() const; }; typedef enumerated mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_; struct sc_mcch_repeat_period_br_r14_opts { enum options { rf32, rf128, rf512, rf1024, rf2048, rf4096, rf8192, rf16384, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated sc_mcch_repeat_period_br_r14_e_; struct sc_mcch_mod_period_br_r14_opts { enum options { rf32, rf128, rf256, rf512, rf1024, rf2048, rf4096, rf8192, rf16384, rf32768, rf65536, rf131072, rf262144, rf524288, rf1048576, nulltype } value; typedef uint32_t number_type; const char* to_string() const; uint32_t to_number() const; }; typedef enumerated sc_mcch_mod_period_br_r14_e_; // member variables uint8_t mpdcch_nb_sc_mcch_r14 = 1; mpdcch_num_repeat_sc_mcch_r14_e_ mpdcch_num_repeat_sc_mcch_r14; mpdcch_start_sf_sc_mcch_r14_c_ mpdcch_start_sf_sc_mcch_r14; mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_ mpdcch_pdsch_hop_cfg_sc_mcch_r14; uint32_t sc_mcch_carrier_freq_r14 = 0; uint8_t sc_mcch_offset_br_r14 = 0; sc_mcch_repeat_period_br_r14_e_ sc_mcch_repeat_period_br_r14; sc_mcch_mod_period_br_r14_e_ sc_mcch_mod_period_br_r14; }; struct pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts { enum options { r16, r32, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_; struct pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts { enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_; // member variables bool ext = false; bool sc_mcch_dur_r13_present = false; bool late_non_crit_ext_present = false; sc_mcch_repeat_period_r13_e_ sc_mcch_repeat_period_r13; uint8_t sc_mcch_offset_r13 = 0; uint8_t sc_mcch_first_sf_r13 = 0; uint8_t sc_mcch_dur_r13 = 2; sc_mcch_mod_period_r13_e_ sc_mcch_mod_period_r13; dyn_octstring late_non_crit_ext; // ... // group 0 bool pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present = false; bool pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present = false; copy_ptr br_bcch_cfg_r14; copy_ptr sc_mcch_sched_info_r14; pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_ pdsch_max_num_repeat_cemode_a_sc_mtch_r14; pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_ pdsch_max_num_repeat_cemode_b_sc_mtch_r14; // group 1 bool sc_mcch_repeat_period_v1470_present = false; bool sc_mcch_mod_period_v1470_present = false; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType21-r14 ::= SEQUENCE struct sib_type21_r14_s { bool ext = false; bool sl_v2x_cfg_common_r14_present = false; bool late_non_crit_ext_present = false; sl_v2x_cfg_common_r14_s sl_v2x_cfg_common_r14; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr anchor_carrier_freq_list_nr_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType24-r15 ::= SEQUENCE struct sib_type24_r15_s { bool ext = false; bool carrier_freq_list_nr_r15_present = false; bool t_resel_nr_sf_r15_present = false; bool late_non_crit_ext_present = false; carrier_freq_list_nr_r15_l carrier_freq_list_nr_r15; uint8_t t_resel_nr_r15 = 0; speed_state_scale_factors_s t_resel_nr_sf_r15; dyn_octstring late_non_crit_ext; // ... // group 0 copy_ptr carrier_freq_list_nr_v1610; // group 1 copy_ptr carrier_freq_list_nr_v1700; // group 2 copy_ptr carrier_freq_list_nr_v1720; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType25-r15 ::= SEQUENCE struct sib_type25_r15_s { struct uac_ac1_select_assist_info_r15_c_ { using individual_plmn_list_r15_l_ = bounded_array; struct types_opts { enum options { plmn_common_r15, individual_plmn_list_r15, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods uac_ac1_select_assist_info_r15_c_() = default; uac_ac1_select_assist_info_r15_c_(const uac_ac1_select_assist_info_r15_c_& other); uac_ac1_select_assist_info_r15_c_& operator=(const uac_ac1_select_assist_info_r15_c_& other); ~uac_ac1_select_assist_info_r15_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters uac_ac1_select_assist_info_r15_e& plmn_common_r15() { assert_choice_type(types::plmn_common_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } individual_plmn_list_r15_l_& individual_plmn_list_r15() { assert_choice_type(types::individual_plmn_list_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } const uac_ac1_select_assist_info_r15_e& plmn_common_r15() const { assert_choice_type(types::plmn_common_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } const individual_plmn_list_r15_l_& individual_plmn_list_r15() const { assert_choice_type(types::individual_plmn_list_r15, type_, "uac-AC1-SelectAssistInfo-r15"); return c.get(); } uac_ac1_select_assist_info_r15_e& set_plmn_common_r15(); individual_plmn_list_r15_l_& set_individual_plmn_list_r15(); private: types type_; choice_buffer_t c; void destroy_(); }; struct ab_per_rsrp_r16_opts { enum options { thresh0, thresh1, thresh2, thresh3, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated ab_per_rsrp_r16_e_; using uac_ac1_select_assist_info_r16_l_ = bounded_array; // member variables bool ext = false; bool uac_barr_for_common_r15_present = false; bool uac_barr_per_plmn_list_r15_present = false; bool uac_ac1_select_assist_info_r15_present = false; bool late_non_crit_ext_present = false; uac_barr_per_cat_list_r15_l uac_barr_for_common_r15; uac_barr_per_plmn_list_r15_l uac_barr_per_plmn_list_r15; uac_barr_info_set_list_r15_l uac_barr_info_set_list_r15; uac_ac1_select_assist_info_r15_c_ uac_ac1_select_assist_info_r15; dyn_octstring late_non_crit_ext; // ... // group 0 bool ab_per_rsrp_r16_present = false; ab_per_rsrp_r16_e_ ab_per_rsrp_r16; // group 1 copy_ptr uac_ac1_select_assist_info_r16; // group 2 copy_ptr uac_barr_info_set_list_v1700; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType26-r15 ::= SEQUENCE struct sib_type26_r15_s { bool ext = false; bool v2x_inter_freq_info_list_r15_present = false; bool cbr_pssch_tx_cfg_list_r15_present = false; bool v2x_packet_dupl_cfg_r15_present = false; bool sync_freq_list_r15_present = false; bool slss_tx_multi_freq_r15_present = false; bool v2x_freq_sel_cfg_list_r15_present = false; bool thresh_s_rssi_cbr_r15_present = false; sl_inter_freq_info_list_v2x_r14_l v2x_inter_freq_info_list_r15; sl_cbr_pppp_tx_cfg_list_r15_l cbr_pssch_tx_cfg_list_r15; sl_v2x_packet_dupl_cfg_r15_s v2x_packet_dupl_cfg_r15; sl_v2x_sync_freq_list_r15_l sync_freq_list_r15; sl_v2x_freq_sel_cfg_list_r15_l v2x_freq_sel_cfg_list_r15; uint8_t thresh_s_rssi_cbr_r15 = 0; // ... bool late_non_crit_ext_present = false; dyn_octstring late_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; }; // SystemInformationBlockType26a-r16 ::= SEQUENCE struct sib_type26a_r16_s { bool ext = false; bool late_non_crit_ext_present = false; plmn_info_list_r16_l plmn_info_list_r16; band_list_endc_r16_l band_list_endc_r16; dyn_octstring late_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; }; // SystemInformationBlockType27-r16 ::= SEQUENCE struct sib_type27_r16_s { bool ext = false; bool carrier_freq_list_nbiot_r16_present = false; bool late_non_crit_ext_present = false; carrier_freq_list_nbiot_r16_l carrier_freq_list_nbiot_r16; dyn_octstring late_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; }; // SystemInformationBlockType28-r16 ::= SEQUENCE struct sib_type28_r16_s { struct segment_type_r16_opts { enum options { not_last_segment, last_segment, nulltype } value; const char* to_string() const; }; typedef enumerated segment_type_r16_e_; // member variables bool ext = false; bool late_non_crit_ext_present = false; uint8_t segment_num_r16 = 0; segment_type_r16_e_ segment_type_r16; dyn_octstring segment_container_r16; dyn_octstring late_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; }; // SystemInformationBlockType29-r16 ::= SEQUENCE struct sib_type29_r16_s { bool ext = false; bool res_reserv_cfg_common_dl_r16_present = false; bool res_reserv_cfg_common_ul_r16_present = false; bool late_non_crit_ext_present = false; res_reserv_cfg_dl_r16_s res_reserv_cfg_common_dl_r16; res_reserv_cfg_ul_r16_s res_reserv_cfg_common_ul_r16; dyn_octstring late_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 ::= SEQUENCE struct sib_type3_s { struct cell_resel_info_common_s_ { struct q_hyst_opts { enum options { db0, db1, db2, db3, db4, db5, db6, db8, db10, db12, db14, db16, db18, db20, db22, db24, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated q_hyst_e_; struct speed_state_resel_pars_s_ { struct q_hyst_sf_s_ { struct sf_medium_opts { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_medium_e_; struct sf_high_opts { enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value; typedef int8_t number_type; const char* to_string() const; int8_t to_number() const; }; typedef enumerated sf_high_e_; // member variables sf_medium_e_ sf_medium; sf_high_e_ sf_high; }; // member variables mob_state_params_s mob_state_params; q_hyst_sf_s_ q_hyst_sf; }; // member variables bool speed_state_resel_pars_present = false; q_hyst_e_ q_hyst; speed_state_resel_pars_s_ speed_state_resel_pars; }; struct cell_resel_serving_freq_info_s_ { bool s_non_intra_search_present = false; uint8_t s_non_intra_search = 0; uint8_t thresh_serving_low = 0; uint8_t cell_resel_prio = 0; }; struct intra_freq_cell_resel_info_s_ { bool p_max_present = false; bool s_intra_search_present = false; bool allowed_meas_bw_present = false; bool t_resel_eutra_sf_present = false; int8_t q_rx_lev_min = -70; int8_t p_max = -30; uint8_t s_intra_search = 0; allowed_meas_bw_e allowed_meas_bw; bool presence_ant_port1 = false; fixed_bitstring<2> neigh_cell_cfg; uint8_t t_resel_eutra = 0; speed_state_scale_factors_s t_resel_eutra_sf; }; struct s_intra_search_v920_s_ { uint8_t s_intra_search_p_r9 = 0; uint8_t s_intra_search_q_r9 = 0; }; struct s_non_intra_search_v920_s_ { uint8_t s_non_intra_search_p_r9 = 0; uint8_t s_non_intra_search_q_r9 = 0; }; // member variables bool ext = false; cell_resel_info_common_s_ cell_resel_info_common; cell_resel_serving_freq_info_s_ cell_resel_serving_freq_info; intra_freq_cell_resel_info_s_ intra_freq_cell_resel_info; // ... bool late_non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // group 0 bool q_qual_min_r9_present = false; bool thresh_serving_low_q_r9_present = false; copy_ptr s_intra_search_v920; copy_ptr s_non_intra_search_v920; int8_t q_qual_min_r9 = -34; uint8_t thresh_serving_low_q_r9 = 0; // group 1 bool q_qual_min_wb_r11_present = false; int8_t q_qual_min_wb_r11 = -34; // group 2 bool q_qual_min_rsrq_on_all_symbols_r12_present = false; int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34; // group 3 bool t_resel_eutra_ce_r13_present = false; copy_ptr cell_resel_serving_freq_info_v1310; copy_ptr redist_serving_info_r13; copy_ptr cell_sel_info_ce_r13; uint8_t t_resel_eutra_ce_r13 = 0; // group 4 copy_ptr cell_sel_info_ce1_r13; // group 5 copy_ptr cell_sel_info_ce1_v1360; // group 6 copy_ptr cell_resel_info_common_v1460; // group 7 bool crs_intf_mitig_neigh_cells_ce_r15_present = false; copy_ptr cell_resel_info_hsdn_r15; copy_ptr cell_sel_info_ce_v1530; // group 8 copy_ptr cell_resel_serving_freq_info_v1610; // group 9 bool t_service_r17_present = false; uint32_t t_service_r17 = 0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType30-r17 ::= SEQUENCE struct sib_type30_r17_s { using common_plmns_with_disaster_condition_r17_l_ = dyn_array; using applicable_disaster_info_list_r17_l_ = dyn_array; // member variables bool ext = false; bool common_plmns_with_disaster_condition_r17_present = false; bool applicable_disaster_info_list_r17_present = false; bool late_non_crit_ext_present = false; common_plmns_with_disaster_condition_r17_l_ common_plmns_with_disaster_condition_r17; applicable_disaster_info_list_r17_l_ applicable_disaster_info_list_r17; dyn_octstring late_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; }; // SystemInformationBlockType31-r17 ::= SEQUENCE struct sib_type31_r17_s { bool ext = false; bool late_non_crit_ext_present = false; serving_satellite_info_r17_s serving_satellite_info_r17; dyn_octstring late_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; }; // SystemInformationBlockType32-r17 ::= SEQUENCE struct sib_type32_r17_s { bool ext = false; bool satellite_info_list_r17_present = false; bool late_non_crit_ext_present = false; satellite_info_list_r17_l satellite_info_list_r17; dyn_octstring late_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; }; // SystemInformationBlockType4 ::= SEQUENCE struct sib_type4_s { bool ext = false; bool intra_freq_neigh_cell_list_present = false; bool intra_freq_excluded_cell_list_present = false; bool csg_pci_range_present = false; intra_freq_neigh_cell_list_l intra_freq_neigh_cell_list; intra_freq_excluded_cell_list_l intra_freq_excluded_cell_list; pci_range_s csg_pci_range; // ... bool late_non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // group 0 copy_ptr intra_freq_neigh_hsdn_cell_list_r15; // group 1 copy_ptr rss_cfg_carrier_info_r16; copy_ptr intra_freq_neigh_cell_list_v1610; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType5 ::= SEQUENCE struct sib_type5_s { bool ext = false; inter_freq_carrier_freq_list_l inter_freq_carrier_freq_list; // ... bool late_non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // group 0 copy_ptr inter_freq_carrier_freq_list_v1250; copy_ptr inter_freq_carrier_freq_list_ext_r12; // group 1 copy_ptr inter_freq_carrier_freq_list_ext_v1280; // group 2 copy_ptr inter_freq_carrier_freq_list_v1310; copy_ptr inter_freq_carrier_freq_list_ext_v1310; // group 3 copy_ptr inter_freq_carrier_freq_list_v1350; copy_ptr inter_freq_carrier_freq_list_ext_v1350; // group 4 copy_ptr inter_freq_carrier_freq_list_ext_v1360; // group 5 bool scptm_freq_offset_r14_present = false; uint8_t scptm_freq_offset_r14 = 1; // group 6 copy_ptr inter_freq_carrier_freq_list_v1530; copy_ptr inter_freq_carrier_freq_list_ext_v1530; copy_ptr meas_idle_cfg_sib_r15; // group 7 copy_ptr inter_freq_carrier_freq_list_v1610; copy_ptr inter_freq_carrier_freq_list_ext_v1610; copy_ptr meas_idle_cfg_sib_nr_r16; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType6 ::= SEQUENCE struct sib_type6_s { using carrier_freq_list_utra_fdd_v1250_l_ = dyn_array; using carrier_freq_list_utra_tdd_v1250_l_ = dyn_array; // member variables bool ext = false; bool carrier_freq_list_utra_fdd_present = false; bool carrier_freq_list_utra_tdd_present = false; bool t_resel_utra_sf_present = false; carrier_freq_list_utra_fdd_l carrier_freq_list_utra_fdd; carrier_freq_list_utra_tdd_l carrier_freq_list_utra_tdd; uint8_t t_resel_utra = 0; speed_state_scale_factors_s t_resel_utra_sf; // ... bool late_non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // group 0 copy_ptr carrier_freq_list_utra_fdd_v1250; copy_ptr carrier_freq_list_utra_tdd_v1250; copy_ptr carrier_freq_list_utra_fdd_ext_r12; copy_ptr carrier_freq_list_utra_tdd_ext_r12; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType7 ::= SEQUENCE struct sib_type7_s { bool ext = false; bool t_resel_geran_sf_present = false; bool carrier_freqs_info_list_present = false; uint8_t t_resel_geran = 0; speed_state_scale_factors_s t_resel_geran_sf; carrier_freqs_info_list_geran_l carrier_freqs_info_list; // ... bool late_non_crit_ext_present = false; dyn_octstring late_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; }; // SystemInformationBlockType8 ::= SEQUENCE struct sib_type8_s { struct params_hrpd_s_ { bool cell_resel_params_hrpd_present = false; pre_regist_info_hrpd_s pre_regist_info_hrpd; cell_resel_params_cdma2000_s cell_resel_params_hrpd; }; struct params1_xrtt_s_ { bool csfb_regist_param1_xrtt_present = false; bool long_code_state1_xrtt_present = false; bool cell_resel_params1_xrtt_present = false; csfb_regist_param1_xrtt_s csfb_regist_param1_xrtt; fixed_bitstring<42> long_code_state1_xrtt; cell_resel_params_cdma2000_s cell_resel_params1_xrtt; }; // member variables bool ext = false; bool sys_time_info_present = false; bool search_win_size_present = false; bool params_hrpd_present = false; bool params1_xrtt_present = false; sys_time_info_cdma2000_s sys_time_info; uint8_t search_win_size = 0; params_hrpd_s_ params_hrpd; params1_xrtt_s_ params1_xrtt; // ... bool late_non_crit_ext_present = false; dyn_octstring late_non_crit_ext; // group 0 bool csfb_support_for_dual_rx_ues_r9_present = false; bool csfb_support_for_dual_rx_ues_r9 = false; copy_ptr cell_resel_params_hrpd_v920; copy_ptr cell_resel_params1_xrtt_v920; copy_ptr csfb_regist_param1_xrtt_v920; copy_ptr ac_barr_cfg1_xrtt_r9; // group 1 bool csfb_dual_rx_tx_support_r10_present = false; // group 2 copy_ptr sib8_per_plmn_list_r11; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformationBlockType9 ::= SEQUENCE struct sib_type9_s { bool ext = false; bool hnb_name_present = false; bounded_octstring<1, 48> hnb_name; // ... bool late_non_crit_ext_present = false; dyn_octstring late_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; }; // PosSystemInformation-r15-IEs ::= SEQUENCE struct pos_sys_info_r15_ies_s { struct pos_sib_type_and_info_r15_item_c_ { struct types_opts { enum options { pos_sib1_minus1_r15, pos_sib1_minus2_r15, pos_sib1_minus3_r15, pos_sib1_minus4_r15, pos_sib1_minus5_r15, pos_sib1_minus6_r15, pos_sib1_minus7_r15, pos_sib2_minus1_r15, pos_sib2_minus2_r15, pos_sib2_minus3_r15, pos_sib2_minus4_r15, pos_sib2_minus5_r15, pos_sib2_minus6_r15, pos_sib2_minus7_r15, pos_sib2_minus8_r15, pos_sib2_minus9_r15, pos_sib2_minus10_r15, pos_sib2_minus11_r15, pos_sib2_minus12_r15, pos_sib2_minus13_r15, pos_sib2_minus14_r15, pos_sib2_minus15_r15, pos_sib2_minus16_r15, pos_sib2_minus17_r15, pos_sib2_minus18_r15, pos_sib2_minus19_r15, pos_sib3_minus1_r15, // ... pos_sib1_minus8_v1610, pos_sib2_minus20_v1610, pos_sib2_minus21_v1610, pos_sib2_minus22_v1610, pos_sib2_minus23_v1610, pos_sib2_minus24_v1610, pos_sib2_minus25_v1610, pos_sib4_minus1_v1610, pos_sib5_minus1_v1610, pos_sib1_minus9_v1700, pos_sib1_minus10_v1700, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods pos_sib_type_and_info_r15_item_c_() = default; pos_sib_type_and_info_r15_item_c_(const pos_sib_type_and_info_r15_item_c_& other); pos_sib_type_and_info_r15_item_c_& operator=(const pos_sib_type_and_info_r15_item_c_& other); ~pos_sib_type_and_info_r15_item_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters sib_pos_r15_s& pos_sib1_minus1_r15() { assert_choice_type(types::pos_sib1_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus2_r15() { assert_choice_type(types::pos_sib1_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus3_r15() { assert_choice_type(types::pos_sib1_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus4_r15() { assert_choice_type(types::pos_sib1_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus5_r15() { assert_choice_type(types::pos_sib1_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus6_r15() { assert_choice_type(types::pos_sib1_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus7_r15() { assert_choice_type(types::pos_sib1_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus1_r15() { assert_choice_type(types::pos_sib2_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus2_r15() { assert_choice_type(types::pos_sib2_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus3_r15() { assert_choice_type(types::pos_sib2_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus4_r15() { assert_choice_type(types::pos_sib2_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus5_r15() { assert_choice_type(types::pos_sib2_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus6_r15() { assert_choice_type(types::pos_sib2_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus7_r15() { assert_choice_type(types::pos_sib2_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus8_r15() { assert_choice_type(types::pos_sib2_minus8_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus9_r15() { assert_choice_type(types::pos_sib2_minus9_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus10_r15() { assert_choice_type(types::pos_sib2_minus10_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus11_r15() { assert_choice_type(types::pos_sib2_minus11_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus12_r15() { assert_choice_type(types::pos_sib2_minus12_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus13_r15() { assert_choice_type(types::pos_sib2_minus13_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus14_r15() { assert_choice_type(types::pos_sib2_minus14_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus15_r15() { assert_choice_type(types::pos_sib2_minus15_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus16_r15() { assert_choice_type(types::pos_sib2_minus16_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus17_r15() { assert_choice_type(types::pos_sib2_minus17_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus18_r15() { assert_choice_type(types::pos_sib2_minus18_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus19_r15() { assert_choice_type(types::pos_sib2_minus19_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib3_minus1_r15() { assert_choice_type(types::pos_sib3_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus8_v1610() { assert_choice_type(types::pos_sib1_minus8_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus20_v1610() { assert_choice_type(types::pos_sib2_minus20_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus21_v1610() { assert_choice_type(types::pos_sib2_minus21_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus22_v1610() { assert_choice_type(types::pos_sib2_minus22_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus23_v1610() { assert_choice_type(types::pos_sib2_minus23_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus24_v1610() { assert_choice_type(types::pos_sib2_minus24_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib2_minus25_v1610() { assert_choice_type(types::pos_sib2_minus25_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib4_minus1_v1610() { assert_choice_type(types::pos_sib4_minus1_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib5_minus1_v1610() { assert_choice_type(types::pos_sib5_minus1_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus9_v1700() { assert_choice_type(types::pos_sib1_minus9_v1700, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& pos_sib1_minus10_v1700() { assert_choice_type(types::pos_sib1_minus10_v1700, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus1_r15() const { assert_choice_type(types::pos_sib1_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus2_r15() const { assert_choice_type(types::pos_sib1_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus3_r15() const { assert_choice_type(types::pos_sib1_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus4_r15() const { assert_choice_type(types::pos_sib1_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus5_r15() const { assert_choice_type(types::pos_sib1_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus6_r15() const { assert_choice_type(types::pos_sib1_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus7_r15() const { assert_choice_type(types::pos_sib1_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus1_r15() const { assert_choice_type(types::pos_sib2_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus2_r15() const { assert_choice_type(types::pos_sib2_minus2_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus3_r15() const { assert_choice_type(types::pos_sib2_minus3_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus4_r15() const { assert_choice_type(types::pos_sib2_minus4_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus5_r15() const { assert_choice_type(types::pos_sib2_minus5_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus6_r15() const { assert_choice_type(types::pos_sib2_minus6_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus7_r15() const { assert_choice_type(types::pos_sib2_minus7_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus8_r15() const { assert_choice_type(types::pos_sib2_minus8_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus9_r15() const { assert_choice_type(types::pos_sib2_minus9_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus10_r15() const { assert_choice_type(types::pos_sib2_minus10_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus11_r15() const { assert_choice_type(types::pos_sib2_minus11_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus12_r15() const { assert_choice_type(types::pos_sib2_minus12_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus13_r15() const { assert_choice_type(types::pos_sib2_minus13_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus14_r15() const { assert_choice_type(types::pos_sib2_minus14_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus15_r15() const { assert_choice_type(types::pos_sib2_minus15_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus16_r15() const { assert_choice_type(types::pos_sib2_minus16_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus17_r15() const { assert_choice_type(types::pos_sib2_minus17_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus18_r15() const { assert_choice_type(types::pos_sib2_minus18_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus19_r15() const { assert_choice_type(types::pos_sib2_minus19_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib3_minus1_r15() const { assert_choice_type(types::pos_sib3_minus1_r15, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus8_v1610() const { assert_choice_type(types::pos_sib1_minus8_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus20_v1610() const { assert_choice_type(types::pos_sib2_minus20_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus21_v1610() const { assert_choice_type(types::pos_sib2_minus21_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus22_v1610() const { assert_choice_type(types::pos_sib2_minus22_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus23_v1610() const { assert_choice_type(types::pos_sib2_minus23_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus24_v1610() const { assert_choice_type(types::pos_sib2_minus24_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib2_minus25_v1610() const { assert_choice_type(types::pos_sib2_minus25_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib4_minus1_v1610() const { assert_choice_type(types::pos_sib4_minus1_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib5_minus1_v1610() const { assert_choice_type(types::pos_sib5_minus1_v1610, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus9_v1700() const { assert_choice_type(types::pos_sib1_minus9_v1700, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } const sib_pos_r15_s& pos_sib1_minus10_v1700() const { assert_choice_type(types::pos_sib1_minus10_v1700, type_, "posSIB-TypeAndInfo-r15-item"); return c.get(); } sib_pos_r15_s& set_pos_sib1_minus1_r15(); sib_pos_r15_s& set_pos_sib1_minus2_r15(); sib_pos_r15_s& set_pos_sib1_minus3_r15(); sib_pos_r15_s& set_pos_sib1_minus4_r15(); sib_pos_r15_s& set_pos_sib1_minus5_r15(); sib_pos_r15_s& set_pos_sib1_minus6_r15(); sib_pos_r15_s& set_pos_sib1_minus7_r15(); sib_pos_r15_s& set_pos_sib2_minus1_r15(); sib_pos_r15_s& set_pos_sib2_minus2_r15(); sib_pos_r15_s& set_pos_sib2_minus3_r15(); sib_pos_r15_s& set_pos_sib2_minus4_r15(); sib_pos_r15_s& set_pos_sib2_minus5_r15(); sib_pos_r15_s& set_pos_sib2_minus6_r15(); sib_pos_r15_s& set_pos_sib2_minus7_r15(); sib_pos_r15_s& set_pos_sib2_minus8_r15(); sib_pos_r15_s& set_pos_sib2_minus9_r15(); sib_pos_r15_s& set_pos_sib2_minus10_r15(); sib_pos_r15_s& set_pos_sib2_minus11_r15(); sib_pos_r15_s& set_pos_sib2_minus12_r15(); sib_pos_r15_s& set_pos_sib2_minus13_r15(); sib_pos_r15_s& set_pos_sib2_minus14_r15(); sib_pos_r15_s& set_pos_sib2_minus15_r15(); sib_pos_r15_s& set_pos_sib2_minus16_r15(); sib_pos_r15_s& set_pos_sib2_minus17_r15(); sib_pos_r15_s& set_pos_sib2_minus18_r15(); sib_pos_r15_s& set_pos_sib2_minus19_r15(); sib_pos_r15_s& set_pos_sib3_minus1_r15(); sib_pos_r15_s& set_pos_sib1_minus8_v1610(); sib_pos_r15_s& set_pos_sib2_minus20_v1610(); sib_pos_r15_s& set_pos_sib2_minus21_v1610(); sib_pos_r15_s& set_pos_sib2_minus22_v1610(); sib_pos_r15_s& set_pos_sib2_minus23_v1610(); sib_pos_r15_s& set_pos_sib2_minus24_v1610(); sib_pos_r15_s& set_pos_sib2_minus25_v1610(); sib_pos_r15_s& set_pos_sib4_minus1_v1610(); sib_pos_r15_s& set_pos_sib5_minus1_v1610(); sib_pos_r15_s& set_pos_sib1_minus9_v1700(); sib_pos_r15_s& set_pos_sib1_minus10_v1700(); private: types type_; choice_buffer_t c; void destroy_(); }; using pos_sib_type_and_info_r15_l_ = dyn_array; // member variables bool late_non_crit_ext_present = false; bool non_crit_ext_present = false; pos_sib_type_and_info_r15_l_ pos_sib_type_and_info_r15; dyn_octstring late_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; }; struct sib_info_item_c { struct types_opts { enum options { sib2, sib3, sib4, sib5, sib6, sib7, sib8, sib9, sib10, sib11, // ... sib12_v920, sib13_v920, sib14_v1130, sib15_v1130, sib16_v1130, sib17_v1250, sib18_v1250, sib19_v1250, sib20_v1310, sib21_v1430, sib24_v1530, sib25_v1530, sib26_v1530, sib26a_v1610, sib27_v1610, sib28_v1610, sib29_v1610, sib30_v1700, sib31_v1700, sib32_v1700, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods sib_info_item_c() = default; sib_info_item_c(const sib_info_item_c& other); sib_info_item_c& operator=(const sib_info_item_c& other); ~sib_info_item_c() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters sib_type2_s& sib2() { assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type3_s& sib3() { assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type4_s& sib4() { assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type5_s& sib5() { assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type6_s& sib6() { assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type7_s& sib7() { assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type8_s& sib8() { assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type9_s& sib9() { assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type10_s& sib10() { assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type11_s& sib11() { assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type12_r9_s& sib12_v920() { assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type13_r9_s& sib13_v920() { assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type14_r11_s& sib14_v1130() { assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type15_r11_s& sib15_v1130() { assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type16_r11_s& sib16_v1130() { assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type17_r12_s& sib17_v1250() { assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type18_r12_s& sib18_v1250() { assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type19_r12_s& sib19_v1250() { assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type20_r13_s& sib20_v1310() { assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type21_r14_s& sib21_v1430() { assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type24_r15_s& sib24_v1530() { assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type25_r15_s& sib25_v1530() { assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type26_r15_s& sib26_v1530() { assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type26a_r16_s& sib26a_v1610() { assert_choice_type(types::sib26a_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type27_r16_s& sib27_v1610() { assert_choice_type(types::sib27_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type28_r16_s& sib28_v1610() { assert_choice_type(types::sib28_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type29_r16_s& sib29_v1610() { assert_choice_type(types::sib29_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type30_r17_s& sib30_v1700() { assert_choice_type(types::sib30_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type31_r17_s& sib31_v1700() { assert_choice_type(types::sib31_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type32_r17_s& sib32_v1700() { assert_choice_type(types::sib32_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type2_s& sib2() const { assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type3_s& sib3() const { assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type4_s& sib4() const { assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type5_s& sib5() const { assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type6_s& sib6() const { assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type7_s& sib7() const { assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type8_s& sib8() const { assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type9_s& sib9() const { assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type10_s& sib10() const { assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type11_s& sib11() const { assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type12_r9_s& sib12_v920() const { assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type13_r9_s& sib13_v920() const { assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type14_r11_s& sib14_v1130() const { assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type15_r11_s& sib15_v1130() const { assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type16_r11_s& sib16_v1130() const { assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type17_r12_s& sib17_v1250() const { assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type18_r12_s& sib18_v1250() const { assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type19_r12_s& sib19_v1250() const { assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type20_r13_s& sib20_v1310() const { assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type21_r14_s& sib21_v1430() const { assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type24_r15_s& sib24_v1530() const { assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type25_r15_s& sib25_v1530() const { assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type26_r15_s& sib26_v1530() const { assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type26a_r16_s& sib26a_v1610() const { assert_choice_type(types::sib26a_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type27_r16_s& sib27_v1610() const { assert_choice_type(types::sib27_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type28_r16_s& sib28_v1610() const { assert_choice_type(types::sib28_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type29_r16_s& sib29_v1610() const { assert_choice_type(types::sib29_v1610, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type30_r17_s& sib30_v1700() const { assert_choice_type(types::sib30_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type31_r17_s& sib31_v1700() const { assert_choice_type(types::sib31_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } const sib_type32_r17_s& sib32_v1700() const { assert_choice_type(types::sib32_v1700, type_, "sib-TypeAndInfo-item"); return c.get(); } sib_type2_s& set_sib2(); sib_type3_s& set_sib3(); sib_type4_s& set_sib4(); sib_type5_s& set_sib5(); sib_type6_s& set_sib6(); sib_type7_s& set_sib7(); sib_type8_s& set_sib8(); sib_type9_s& set_sib9(); sib_type10_s& set_sib10(); sib_type11_s& set_sib11(); sib_type12_r9_s& set_sib12_v920(); sib_type13_r9_s& set_sib13_v920(); sib_type14_r11_s& set_sib14_v1130(); sib_type15_r11_s& set_sib15_v1130(); sib_type16_r11_s& set_sib16_v1130(); sib_type17_r12_s& set_sib17_v1250(); sib_type18_r12_s& set_sib18_v1250(); sib_type19_r12_s& set_sib19_v1250(); sib_type20_r13_s& set_sib20_v1310(); sib_type21_r14_s& set_sib21_v1430(); sib_type24_r15_s& set_sib24_v1530(); sib_type25_r15_s& set_sib25_v1530(); sib_type26_r15_s& set_sib26_v1530(); sib_type26a_r16_s& set_sib26a_v1610(); sib_type27_r16_s& set_sib27_v1610(); sib_type28_r16_s& set_sib28_v1610(); sib_type29_r16_s& set_sib29_v1610(); sib_type30_r17_s& set_sib30_v1700(); sib_type31_r17_s& set_sib31_v1700(); sib_type32_r17_s& set_sib32_v1700(); private: types type_; choice_buffer_t c; void destroy_(); }; // SystemInformation-r8-IEs ::= SEQUENCE struct sys_info_r8_ies_s { using sib_type_and_info_item_c_ = sib_info_item_c; using sib_type_and_info_l_ = dyn_array; // member variables bool non_crit_ext_present = false; sib_type_and_info_l_ sib_type_and_info; sys_info_v8a0_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; }; // SystemInformation ::= SEQUENCE struct sys_info_s { struct crit_exts_c_ { struct crit_exts_future_r15_c_ { struct types_opts { enum options { pos_sys_info_r15, crit_exts_future, nulltype } value; const char* to_string() const; }; typedef enumerated types; // choice methods crit_exts_future_r15_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 pos_sys_info_r15_ies_s& pos_sys_info_r15() { assert_choice_type(types::pos_sys_info_r15, type_, "criticalExtensionsFuture-r15"); return c; } const pos_sys_info_r15_ies_s& pos_sys_info_r15() const { assert_choice_type(types::pos_sys_info_r15, type_, "criticalExtensionsFuture-r15"); return c; } pos_sys_info_r15_ies_s& set_pos_sys_info_r15(); void set_crit_exts_future(); private: types type_; pos_sys_info_r15_ies_s c; }; struct types_opts { enum options { sys_info_r8, crit_exts_future_r15, nulltype } value; const char* to_string() const; }; 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_(); } 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 sys_info_r8_ies_s& sys_info_r8() { assert_choice_type(types::sys_info_r8, type_, "criticalExtensions"); return c.get(); } crit_exts_future_r15_c_& crit_exts_future_r15() { assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions"); return c.get(); } const sys_info_r8_ies_s& sys_info_r8() const { assert_choice_type(types::sys_info_r8, type_, "criticalExtensions"); return c.get(); } const crit_exts_future_r15_c_& crit_exts_future_r15() const { assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions"); return c.get(); } sys_info_r8_ies_s& set_sys_info_r8(); crit_exts_future_r15_c_& set_crit_exts_future_r15(); private: types type_; choice_buffer_t c; void destroy_(); }; // member variables crit_exts_c_ crit_exts; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // BCCH-DL-SCH-MessageType ::= CHOICE struct bcch_dl_sch_msg_type_c { struct c1_c_ { struct types_opts { enum options { sys_info, sib_type1, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; // choice methods c1_c_() = default; c1_c_(const c1_c_& other); c1_c_& operator=(const c1_c_& other); ~c1_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters sys_info_s& sys_info() { assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } sib_type1_s& sib_type1() { assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } const sys_info_s& sys_info() const { assert_choice_type(types::sys_info, type_, "c1"); return c.get(); } const sib_type1_s& sib_type1() const { assert_choice_type(types::sib_type1, type_, "c1"); return c.get(); } sys_info_s& set_sys_info(); sib_type1_s& set_sib_type1(); private: types type_; choice_buffer_t c; void destroy_(); }; struct types_opts { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; // choice methods bcch_dl_sch_msg_type_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(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } const c1_c_& c1() const { assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType"); return c; } c1_c_& set_c1(); void set_msg_class_ext(); private: types type_; c1_c_ c; }; // BCCH-DL-SCH-Message ::= SEQUENCE struct bcch_dl_sch_msg_s { bcch_dl_sch_msg_type_c msg; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SystemInformation-BR-r13 ::= SystemInformation using sys_info_br_r13_s = sys_info_s; // SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1 using sib_type1_br_r13_s = sib_type1_s; // BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE struct bcch_dl_sch_msg_type_br_r13_c { struct c1_c_ { struct types_opts { enum options { sys_info_br_r13, sib_type1_br_r13, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; // choice methods c1_c_() = default; c1_c_(const c1_c_& other); c1_c_& operator=(const c1_c_& other); ~c1_c_() { destroy_(); } void set(types::options e = types::nulltype); types type() const { return type_; } SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; // getters sys_info_br_r13_s& sys_info_br_r13() { assert_choice_type(types::sys_info_br_r13, type_, "c1"); return c.get(); } sib_type1_br_r13_s& sib_type1_br_r13() { assert_choice_type(types::sib_type1_br_r13, type_, "c1"); return c.get(); } const sys_info_br_r13_s& sys_info_br_r13() const { assert_choice_type(types::sys_info_br_r13, type_, "c1"); return c.get(); } const sib_type1_br_r13_s& sib_type1_br_r13() const { assert_choice_type(types::sib_type1_br_r13, type_, "c1"); return c.get(); } sys_info_br_r13_s& set_sys_info_br_r13(); sib_type1_br_r13_s& set_sib_type1_br_r13(); private: types type_; choice_buffer_t c; void destroy_(); }; struct types_opts { enum options { c1, msg_class_ext, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated types; // choice methods bcch_dl_sch_msg_type_br_r13_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(types::c1, type_, "BCCH-DL-SCH-MessageType-BR-r13"); return c; } const c1_c_& c1() const { assert_choice_type(types::c1, type_, "BCCH-DL-SCH-MessageType-BR-r13"); return c; } c1_c_& set_c1(); void set_msg_class_ext(); private: types type_; c1_c_ c; }; // BCCH-DL-SCH-Message-BR ::= SEQUENCE struct bcch_dl_sch_msg_br_s { bcch_dl_sch_msg_type_br_r13_c msg; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // SIB-Type-MBMS-r14 ::= ENUMERATED struct sib_type_mbms_r14_opts { enum options { sib_type10, sib_type11, sib_type12_v920, sib_type13_v920, sib_type15_v1130, sib_type16_v1130, // ... nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated sib_type_mbms_r14_e; // SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..31)) OF SIB-Type-MBMS-r14 using sib_map_info_mbms_r14_l = bounded_array; // SchedulingInfo-MBMS-r14 ::= SEQUENCE struct sched_info_mbms_r14_s { struct si_periodicity_r14_opts { enum options { rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated si_periodicity_r14_e_; // member variables si_periodicity_r14_e_ si_periodicity_r14; sib_map_info_mbms_r14_l sib_map_info_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // NonMBSFN-SubframeConfig-r14 ::= SEQUENCE struct non_mbsfn_sf_cfg_r14_s { struct radio_frame_alloc_period_r14_opts { enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf512, nulltype } value; typedef uint16_t number_type; const char* to_string() const; uint16_t to_number() const; }; typedef enumerated radio_frame_alloc_period_r14_e_; // member variables radio_frame_alloc_period_r14_e_ radio_frame_alloc_period_r14; uint8_t radio_frame_alloc_offset_r14 = 0; fixed_bitstring<9> sf_alloc_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); void to_json(json_writer& j) const; }; // PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..6)) OF PLMN-Identity using plmn_id_list_mbms_r14_l = dyn_array; // SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-MBMS-r14 using sched_info_list_mbms_r14_l = dyn_array; // SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE struct sib_type1_mbms_r14_s { struct cell_access_related_info_r14_s_ { plmn_id_list_mbms_r14_l plmn_id_list_r14; fixed_bitstring<16> tac_r14; fixed_bitstring<28> cell_id_r14; }; struct si_win_len_r14_opts { enum options { ms1, ms2, ms5, ms10, ms15, ms20, ms40, ms80, nulltype } value; typedef uint8_t number_type; const char* to_string() const; uint8_t to_number() const; }; typedef enumerated si_win_len_r14_e_; using cell_access_related_info_list_r14_l_ = dyn_array; // member variables bool multi_band_info_list_r14_present = false; bool non_mbsfn_sf_cfg_r14_present = false; bool sib_type13_r14_present = false; bool cell_access_related_info_list_r14_present = false; bool non_crit_ext_present = false; cell_access_related_info_r14_s_ cell_access_related_info_r14; uint16_t freq_band_ind_r14 = 1; multi_band_info_list_r11_l multi_band_info_list_r14; sched_info_list_mbms_r14_l sched_info_list_mbms_r14; si_win_len_r14_e_ si_win_len_r14; uint8_t sys_info_value_tag_r14 = 0; non_mbsfn_sf_cfg_r14_s non_mbsfn_sf_cfg_r14; pdsch_cfg_common_s pdsch_cfg_common_r14; sib_type13_r9_s sib_type13_r14; cell_access_related_info_list_r14_l_ cell_access_related_info_list_r14; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); 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, sib_type26a_v1610, sib_type27_v1610, sib_type28_v1610, sib_type29_v1610, sib_type30_v1700, sib_type31_v1700, sib_type32_v1700, spare3, spare2, spare1, // ... nulltype } value; const char* to_string() 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-v15g0-IEs ::= SEQUENCE struct sib_type1_v15g0_ies_s { struct bw_reduced_access_related_info_v15g0_s_ { sched_info_list_br_r13_l pos_sched_info_list_br_r15; }; // member variables bool bw_reduced_access_related_info_v15g0_present = false; bool non_crit_ext_present = false; bw_reduced_access_related_info_v15g0_s_ bw_reduced_access_related_info_v15g0; // sequence methods SRSASN_CODE pack(bit_ref& bref) const; SRSASN_CODE unpack(cbit_ref& bref); 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; sib_type1_v15g0_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-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 using sib_type16_nb_r13_s = sib_type16_r11_s; } // namespace rrc } // namespace asn1 #endif // SRSASN1_RRC_BCCH_MSG_H