You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5556 lines
194 KiB
C

/**
* 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<uint16_t>;
// 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<uint16_t, 16>;
// PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF INTEGER (0..511)
using pci_list_cdma2000_v920_l = bounded_array<uint16_t, 24>;
// BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF BandClassInfoCDMA2000
using band_class_list_cdma2000_l = dyn_array<band_class_info_cdma2000_s>;
// 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<neigh_cells_per_bandclass_cdma2000_r11_s>;
// 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_opts> 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_opts> 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<pci_range_nr_r16_s>;
// CellReselectionParametersCDMA2000-r11 ::= SEQUENCE
struct cell_resel_params_cdma2000_r11_s {
using neigh_cell_list_r11_l_ = dyn_array<neigh_cell_cdma2000_r11_s>;
// 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_pmax_value_r10_s>;
// NS-PmaxListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValueNR-r15
using ns_pmax_list_nr_r15_l = dyn_array<ns_pmax_value_nr_r15_s>;
// NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
using neigh_cells_per_bandclass_list_cdma2000_l = dyn_array<neigh_cells_per_bandclass_cdma2000_s>;
// NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920
using neigh_cells_per_bandclass_list_cdma2000_v920_l = dyn_array<neigh_cells_per_bandclass_cdma2000_v920_s>;
// 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_opts> 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<uint8_t>();
}
plmn_id_s& plmn_id_r12()
{
assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
const uint8_t& plmn_idx_r12() const
{
assert_choice_type(types::plmn_idx_r12, type_, "PLMN-IdentityInfo2-r12");
return c.get<uint8_t>();
}
const plmn_id_s& plmn_id_r12() const
{
assert_choice_type(types::plmn_id_r12, type_, "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
uint8_t& set_plmn_idx_r12();
plmn_id_s& set_plmn_id_r12();
private:
types type_;
choice_buffer_t<plmn_id_s> c;
void destroy_();
};
// RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..16)) OF RedistributionNeighCell-r13
using redist_neigh_cell_list_r13_l = dyn_array<redist_neigh_cell_r13_s>;
// SL-SyncConfigListNFreq-r13 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfigNFreq-r13
using sl_sync_cfg_list_nfreq_r13_l = dyn_array<sl_sync_cfg_nfreq_r13_s>;
// 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_opts> 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<39> >();
}
fixed_bitstring<49>& async_sys_time()
{
assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
const fixed_bitstring<39>& sync_sys_time() const
{
assert_choice_type(types::sync_sys_time, type_, "cdma-SystemTime");
return c.get<fixed_bitstring<39> >();
}
const fixed_bitstring<49>& async_sys_time() const
{
assert_choice_type(types::async_sys_time, type_, "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
fixed_bitstring<39>& set_sync_sys_time();
fixed_bitstring<49>& set_async_sys_time();
private:
types type_;
choice_buffer_t<fixed_bitstring<49> > 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<uint16_t, 16>;
// InterFreqExcludedCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using inter_freq_excluded_cell_list_l = dyn_array<pci_range_s>;
// InterFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo
using inter_freq_neigh_cell_list_l = dyn_array<inter_freq_neigh_cell_info_s>;
// InterFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo-v1610
using inter_freq_neigh_cell_list_v1610_l = dyn_array<inter_freq_neigh_cell_info_v1610_s>;
// InterFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using inter_freq_neigh_hsdn_cell_list_r15_l = dyn_array<pci_range_s>;
// MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (0..65535)
using mbms_sai_list_r11_l = dyn_array<uint32_t>;
// 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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<uint16_t>;
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_opts> 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_opts> 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_opts> 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_opts> 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<ns_pmax_list_r10_l>;
// MultiBandNsPmaxListNR-1-v1550 ::= SEQUENCE (SIZE (1..31)) OF NS-PmaxListNR-r15
using multi_band_ns_pmax_list_nr_minus1_v1550_l = dyn_array<ns_pmax_list_nr_r15_l>;
// MultiBandNsPmaxListNR-v1550 ::= SEQUENCE (SIZE (1..32)) OF NS-PmaxListNR-r15
using multi_band_ns_pmax_list_nr_v1550_l = dyn_array<ns_pmax_list_nr_r15_l>;
// NR-FreqNeighHSDN-CellList-r17 ::= SEQUENCE (SIZE (1..8)) OF PhysCellIdRangeNR-r16
using nr_freq_neigh_hsdn_cell_list_r17_l = dyn_array<pci_range_nr_r16_s>;
// 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<plmn_id_info2_r12_c>;
// 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_opts> 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<uac_barr_per_cat_r15_s>;
// 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_opts> 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_opts> 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_minus1_v1550_l> multi_band_ns_pmax_list_nr_v1550;
copy_ptr<multi_band_ns_pmax_list_nr_v1550_l> multi_band_ns_pmax_list_nr_sul_v1550;
copy_ptr<ssb_to_measure_r15_c> 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_opts> 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_s_> 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<uint8_t, 8>;
// 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_opts> 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_s_> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_s_> 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<meas_idle_carrier_nr_r16_s>;
// NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
using neigh_cell_list_cdma2000_l = dyn_array<neigh_cell_cdma2000_s>;
// NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920
using neigh_cell_list_cdma2000_v920_l = dyn_array<neigh_cell_cdma2000_v920_s>;
// 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_opts> 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_opts> 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<uint8_t, 16>;
using mcs_pssch_range_list_r15_l_ = dyn_array<mcs_pssch_range_r15_s>;
// 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_opts> 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_opts> 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_opts> 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<uint8_t, 63>;
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_opts> 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_implicit_ac_barr_list_r15_l_>();
}
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<uac_barr_per_cat_list_r15_l>();
}
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<uac_implicit_ac_barr_list_r15_l_>();
}
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_barr_per_cat_list_r15_l>();
}
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<uac_barr_per_cat_list_r15_l, uac_implicit_ac_barr_list_r15_l_> 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<plmn_id_s>;
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_opts> 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<uint16_t, 10>;
// 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<carrier_freq_nbiot_r16_s>;
// CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-r15
using carrier_freq_list_nr_r15_l = dyn_array<carrier_freq_nr_r15_s>;
// CarrierFreqListNR-v1610 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1610
using carrier_freq_list_nr_v1610_l = dyn_array<carrier_freq_nr_v1610_s>;
// CarrierFreqListNR-v1700 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1700
using carrier_freq_list_nr_v1700_l = dyn_array<carrier_freq_nr_v1700_s>;
// CarrierFreqListNR-v1720 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-v1720
using carrier_freq_list_nr_v1720_l = dyn_array<carrier_freq_nr_v1720_s>;
// CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD
using carrier_freq_list_utra_fdd_l = dyn_array<carrier_freq_utra_fdd_s>;
// CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD-Ext-r12
using carrier_freq_list_utra_fdd_ext_r12_l = dyn_array<carrier_freq_utra_fdd_ext_r12_s>;
// CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD
using carrier_freq_list_utra_tdd_l = dyn_array<carrier_freq_utra_tdd_s>;
// CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD-r12
using carrier_freq_list_utra_tdd_ext_r12_l = dyn_array<carrier_freq_utra_tdd_r12_s>;
// CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqsInfoGERAN
using carrier_freqs_info_list_geran_l = dyn_array<carrier_freqs_info_geran_s>;
// 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_opts> 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<inter_freq_carrier_freq_info_s>;
// InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1250
using inter_freq_carrier_freq_list_v1250_l = dyn_array<inter_freq_carrier_freq_info_v1250_s>;
// InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310
using inter_freq_carrier_freq_list_v1310_l = dyn_array<inter_freq_carrier_freq_info_v1310_s>;
// InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350
using inter_freq_carrier_freq_list_v1350_l = dyn_array<inter_freq_carrier_freq_info_v1350_s>;
// InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530
using inter_freq_carrier_freq_list_v1530_l = dyn_array<inter_freq_carrier_freq_info_v1530_s>;
// InterFreqCarrierFreqList-v1610 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1610
using inter_freq_carrier_freq_list_v1610_l = dyn_array<inter_freq_carrier_freq_info_v1610_s>;
// InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-r12
using inter_freq_carrier_freq_list_ext_r12_l = dyn_array<inter_freq_carrier_freq_info_r12_s>;
// InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v10j0
using inter_freq_carrier_freq_list_ext_v1280_l = dyn_array<inter_freq_carrier_freq_info_v10j0_s>;
// InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310
using inter_freq_carrier_freq_list_ext_v1310_l = dyn_array<inter_freq_carrier_freq_info_v1310_s>;
// InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350
using inter_freq_carrier_freq_list_ext_v1350_l = dyn_array<inter_freq_carrier_freq_info_v1350_s>;
// InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360
using inter_freq_carrier_freq_list_ext_v1360_l = dyn_array<inter_freq_carrier_freq_info_v1360_s>;
// InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530
using inter_freq_carrier_freq_list_ext_v1530_l = dyn_array<inter_freq_carrier_freq_info_v1530_s>;
// InterFreqCarrierFreqListExt-v1610 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1610
using inter_freq_carrier_freq_list_ext_v1610_l = dyn_array<inter_freq_carrier_freq_info_v1610_s>;
// IntraFreqExcludedCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using intra_freq_excluded_cell_list_l = dyn_array<pci_range_s>;
// IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF IntraFreqNeighCellInfo
using intra_freq_neigh_cell_list_l = dyn_array<intra_freq_neigh_cell_info_s>;
// IntraFreqNeighCellList-v1610 ::= SEQUENCE (SIZE (1..16)) OF IntraFreqNeighCellInfo-v1610
using intra_freq_neigh_cell_list_v1610_l = dyn_array<intra_freq_neigh_cell_info_v1610_s>;
// IntraFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using intra_freq_neigh_hsdn_cell_list_r15_l = dyn_array<pci_range_s>;
// MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..8)) OF MBMS-CarrierType-r14
using mbms_inter_freq_carrier_type_list_r14_l = dyn_array<mbms_carrier_type_r14_s>;
// 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_opts> 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_inter_freq_r11_s>;
// MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..8)) OF MBMS-SAI-InterFreq-v1140
using mbms_sai_inter_freq_list_v1140_l = dyn_array<mbms_sai_inter_freq_v1140_s>;
// MBSFN-AreaInfoList-r16 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r16
using mbsfn_area_info_list_r16_l = dyn_array<mbsfn_area_info_r16_s>;
// MBSFN-AreaInfoList-r17 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r17
using mbsfn_area_info_list_r17_l = dyn_array<mbsfn_area_info_r17_s>;
// MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r9
using mbsfn_area_info_list_r9_l = dyn_array<mbsfn_area_info_r9_s>;
// 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<plmn_info_r16_s>;
// 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_opts> 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_opts> 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_opts> 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_opts> 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>();
}
uint8_t& sf20()
{
assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf4096()
{
assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf8192()
{
assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type(types::sf10, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type(types::sf20, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type(types::sf32, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type(types::sf40, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type(types::sf64, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type(types::sf80, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type(types::sf128, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type(types::sf160, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type(types::sf256, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type(types::sf320, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type(types::sf512, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type(types::sf640, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type(types::sf1024, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type(types::sf2048, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf4096() const
{
assert_choice_type(types::sf4096, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf8192() const
{
assert_choice_type(types::sf8192, type_, "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
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<sib8_per_plmn_r11_s>;
// 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_pppp_tx_cfg_idx_r15_s>;
// SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-r12
using sl_carrier_freq_info_list_r12_l = dyn_array<sl_carrier_freq_info_r12_s>;
// SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-v1310
using sl_carrier_freq_info_list_v1310_l = dyn_array<sl_carrier_freq_info_v1310_s>;
// SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-CommResourcePool-r12
using sl_comm_rx_pool_list_r12_l = dyn_array<sl_comm_res_pool_r12_s>;
// SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12
using sl_comm_tx_pool_list_r12_l = dyn_array<sl_comm_res_pool_r12_s>;
// SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12
using sl_comm_tx_pool_list_ext_r13_l = dyn_array<sl_comm_res_pool_r12_s>;
// 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_opts> 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_opts> 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_opts> 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<uint32_t, 8>;
// SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12
using sl_sync_cfg_list_r12_l = dyn_array<sl_sync_cfg_r12_s>;
// SatelliteInfoList-r17 ::= SEQUENCE (SIZE (1..4)) OF SatelliteInfo-r17
using satellite_info_list_r17_l = dyn_array<satellite_info_r17_s>;
// 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_opts> 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_state_vectors_r17_s>();
}
ephemeris_orbital_params_r17_s& orbital_params()
{
assert_choice_type(types::orbital_params, type_, "ephemerisInfo-r17");
return c.get<ephemeris_orbital_params_r17_s>();
}
const ephemeris_state_vectors_r17_s& state_vectors() const
{
assert_choice_type(types::state_vectors, type_, "ephemerisInfo-r17");
return c.get<ephemeris_state_vectors_r17_s>();
}
const ephemeris_orbital_params_r17_s& orbital_params() const
{
assert_choice_type(types::orbital_params, type_, "ephemerisInfo-r17");
return c.get<ephemeris_orbital_params_r17_s>();
}
ephemeris_state_vectors_r17_s& set_state_vectors();
ephemeris_orbital_params_r17_s& set_orbital_params();
private:
types type_;
choice_buffer_t<ephemeris_orbital_params_r17_s, ephemeris_state_vectors_r17_s> 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_opts> 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_opts> 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_opts> 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_barr_info_set_r15_s>;
// UAC-BarringInfoSetList-v1700 ::= SEQUENCE (SIZE (1..8)) OF UAC-BarringInfoSet-v1700
using uac_barr_info_set_list_v1700_l = dyn_array<uac_barr_info_set_v1700_s>;
// UAC-BarringPerPLMN-List-r15 ::= SEQUENCE (SIZE (1..6)) OF UAC-BarringPerPLMN-r15
using uac_barr_per_plmn_list_r15_l = dyn_array<uac_barr_per_plmn_r15_s>;
// 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_opts> 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_opts> 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<mbms_notif_cfg_v1430_s> notif_cfg_v1430;
// group 1
copy_ptr<mbsfn_area_info_list_r16_l> mbsfn_area_info_list_r16;
// group 2
copy_ptr<mbsfn_area_info_list_r17_l> 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<eab_cfg_plmn_r11_s>;
struct types_opts {
enum options { eab_common_r11, eab_per_plmn_list_r11, nulltype } value;
const char* to_string() const;
};
typedef enumerated<types_opts> 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_cfg_r11_s>();
}
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<eab_per_plmn_list_r11_l_>();
}
const eab_cfg_r11_s& eab_common_r11() const
{
assert_choice_type(types::eab_common_r11, type_, "eab-Param-r11");
return c.get<eab_cfg_r11_s>();
}
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_per_plmn_list_r11_l_>();
}
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<eab_cfg_r11_s, eab_per_plmn_list_r11_l_> 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_opts> 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_l> mbms_sai_inter_freq_list_v1140;
// group 1
copy_ptr<mbms_carrier_type_r14_s> mbms_intra_freq_carrier_type_r14;
copy_ptr<mbms_inter_freq_carrier_type_list_r14_l> 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_s> 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<wlan_offload_info_per_plmn_r12_s>;
// 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<sl_comm_tx_pool_list_ext_r13_l> 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_s_> disc_cfg_v1310;
copy_ptr<disc_cfg_relay_r13_s_> disc_cfg_relay_r13;
copy_ptr<disc_cfg_ps_minus13_s_> 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_opts> 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_opts> 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_opts> 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_opts> 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_opts> tdd_r14_e_;
struct types_opts {
enum options { fdd_r14, tdd_r14, nulltype } value;
const char* to_string() const;
};
typedef enumerated<types_opts> 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<fdd_r14_e_>();
}
tdd_r14_e_& tdd_r14()
{
assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
const fdd_r14_e_& fdd_r14() const
{
assert_choice_type(types::fdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14");
return c.get<fdd_r14_e_>();
}
const tdd_r14_e_& tdd_r14() const
{
assert_choice_type(types::tdd_r14, type_, "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
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_opts> 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_opts> 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_opts> 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_opts> 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_opts> 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_s_> br_bcch_cfg_r14;
copy_ptr<sc_mcch_sched_info_r14_s> 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<sl_nr_anchor_carrier_freq_list_r16_l> 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_l> carrier_freq_list_nr_v1610;
// group 1
copy_ptr<carrier_freq_list_nr_v1700_l> carrier_freq_list_nr_v1700;
// group 2
copy_ptr<carrier_freq_list_nr_v1720_l> 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<uac_ac1_select_assist_info_r15_e, 6>;
struct types_opts {
enum options { plmn_common_r15, individual_plmn_list_r15, nulltype } value;
const char* to_string() const;
};
typedef enumerated<types_opts> 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<uac_ac1_select_assist_info_r15_e>();
}
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<individual_plmn_list_r15_l_>();
}
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<uac_ac1_select_assist_info_r15_e>();
}
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<individual_plmn_list_r15_l_>();
}
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<individual_plmn_list_r15_l_> 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_opts> ab_per_rsrp_r16_e_;
using uac_ac1_select_assist_info_r16_l_ = bounded_array<uac_ac1_select_assist_info_r16_e, 6>;
// 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_l_> uac_ac1_select_assist_info_r16;
// group 2
copy_ptr<uac_barr_info_set_list_v1700_l> 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_opts> 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_opts> 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_opts> 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_opts> 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_s_> s_intra_search_v920;
copy_ptr<s_non_intra_search_v920_s_> 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_s> cell_resel_serving_freq_info_v1310;
copy_ptr<redist_serving_info_r13_s> redist_serving_info_r13;
copy_ptr<cell_sel_info_ce_r13_s> cell_sel_info_ce_r13;
uint8_t t_resel_eutra_ce_r13 = 0;
// group 4
copy_ptr<cell_sel_info_ce1_r13_s> cell_sel_info_ce1_r13;
// group 5
copy_ptr<cell_sel_info_ce1_v1360_s> cell_sel_info_ce1_v1360;
// group 6
copy_ptr<cell_resel_info_common_v1460_s> cell_resel_info_common_v1460;
// group 7
bool crs_intf_mitig_neigh_cells_ce_r15_present = false;
copy_ptr<cell_resel_info_hsdn_r15_s> cell_resel_info_hsdn_r15;
copy_ptr<cell_sel_info_ce_v1530_s> cell_sel_info_ce_v1530;
// group 8
copy_ptr<cell_resel_serving_freq_info_v1610_s> 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<plmn_id_s>;
using applicable_disaster_info_list_r17_l_ = dyn_array<applicable_disaster_info_r17_c>;
// 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_l> intra_freq_neigh_hsdn_cell_list_r15;
// group 1
copy_ptr<rss_cfg_carrier_info_r16_s> rss_cfg_carrier_info_r16;
copy_ptr<intra_freq_neigh_cell_list_v1610_l> 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_l> inter_freq_carrier_freq_list_v1250;
copy_ptr<inter_freq_carrier_freq_list_ext_r12_l> inter_freq_carrier_freq_list_ext_r12;
// group 1
copy_ptr<inter_freq_carrier_freq_list_ext_v1280_l> inter_freq_carrier_freq_list_ext_v1280;
// group 2
copy_ptr<inter_freq_carrier_freq_list_v1310_l> inter_freq_carrier_freq_list_v1310;
copy_ptr<inter_freq_carrier_freq_list_ext_v1310_l> inter_freq_carrier_freq_list_ext_v1310;
// group 3
copy_ptr<inter_freq_carrier_freq_list_v1350_l> inter_freq_carrier_freq_list_v1350;
copy_ptr<inter_freq_carrier_freq_list_ext_v1350_l> inter_freq_carrier_freq_list_ext_v1350;
// group 4
copy_ptr<inter_freq_carrier_freq_list_ext_v1360_l> 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_l> inter_freq_carrier_freq_list_v1530;
copy_ptr<inter_freq_carrier_freq_list_ext_v1530_l> inter_freq_carrier_freq_list_ext_v1530;
copy_ptr<meas_idle_cfg_sib_r15_s> meas_idle_cfg_sib_r15;
// group 7
copy_ptr<inter_freq_carrier_freq_list_v1610_l> inter_freq_carrier_freq_list_v1610;
copy_ptr<inter_freq_carrier_freq_list_ext_v1610_l> inter_freq_carrier_freq_list_ext_v1610;
copy_ptr<meas_idle_cfg_sib_nr_r16_s> 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<carrier_freq_info_utra_v1250_s>;
using carrier_freq_list_utra_tdd_v1250_l_ = dyn_array<carrier_freq_info_utra_v1250_s>;
// 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_l_> carrier_freq_list_utra_fdd_v1250;
copy_ptr<carrier_freq_list_utra_tdd_v1250_l_> carrier_freq_list_utra_tdd_v1250;
copy_ptr<carrier_freq_list_utra_fdd_ext_r12_l> carrier_freq_list_utra_fdd_ext_r12;
copy_ptr<carrier_freq_list_utra_tdd_ext_r12_l> 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_cdma2000_v920_s> cell_resel_params_hrpd_v920;
copy_ptr<cell_resel_params_cdma2000_v920_s> cell_resel_params1_xrtt_v920;
copy_ptr<csfb_regist_param1_xrtt_v920_s> csfb_regist_param1_xrtt_v920;
copy_ptr<ac_barr_cfg1_xrtt_r9_s> 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_l> 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_opts, true, 11> 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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
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>();
}
sib_pos_r15_s& pos_sib1_minus10_v1700()
{
assert_choice_type(types::pos_sib1_minus10_v1700, type_, "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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<sib_pos_r15_s>();
}
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>();
}
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<sib_pos_r15_s> c;
void destroy_();
};
using pos_sib_type_and_info_r15_l_ = dyn_array<pos_sib_type_and_info_r15_item_c_>;
// 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_opts, true, 20> 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_type2_s>();
}
sib_type3_s& sib3()
{
assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
sib_type4_s& sib4()
{
assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
sib_type5_s& sib5()
{
assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
sib_type6_s& sib6()
{
assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
sib_type7_s& sib7()
{
assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
sib_type8_s& sib8()
{
assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
sib_type9_s& sib9()
{
assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
sib_type10_s& sib10()
{
assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
sib_type11_s& sib11()
{
assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
sib_type12_r9_s& sib12_v920()
{
assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
sib_type13_r9_s& sib13_v920()
{
assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
sib_type14_r11_s& sib14_v1130()
{
assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
sib_type15_r11_s& sib15_v1130()
{
assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
sib_type16_r11_s& sib16_v1130()
{
assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
sib_type17_r12_s& sib17_v1250()
{
assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
sib_type18_r12_s& sib18_v1250()
{
assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
sib_type19_r12_s& sib19_v1250()
{
assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
sib_type20_r13_s& sib20_v1310()
{
assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
sib_type21_r14_s& sib21_v1430()
{
assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
sib_type24_r15_s& sib24_v1530()
{
assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
sib_type25_r15_s& sib25_v1530()
{
assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
sib_type26_r15_s& sib26_v1530()
{
assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
sib_type26a_r16_s& sib26a_v1610()
{
assert_choice_type(types::sib26a_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type26a_r16_s>();
}
sib_type27_r16_s& sib27_v1610()
{
assert_choice_type(types::sib27_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type27_r16_s>();
}
sib_type28_r16_s& sib28_v1610()
{
assert_choice_type(types::sib28_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type28_r16_s>();
}
sib_type29_r16_s& sib29_v1610()
{
assert_choice_type(types::sib29_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type29_r16_s>();
}
sib_type30_r17_s& sib30_v1700()
{
assert_choice_type(types::sib30_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type30_r17_s>();
}
sib_type31_r17_s& sib31_v1700()
{
assert_choice_type(types::sib31_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type31_r17_s>();
}
sib_type32_r17_s& sib32_v1700()
{
assert_choice_type(types::sib32_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type32_r17_s>();
}
const sib_type2_s& sib2() const
{
assert_choice_type(types::sib2, type_, "sib-TypeAndInfo-item");
return c.get<sib_type2_s>();
}
const sib_type3_s& sib3() const
{
assert_choice_type(types::sib3, type_, "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
const sib_type4_s& sib4() const
{
assert_choice_type(types::sib4, type_, "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
const sib_type5_s& sib5() const
{
assert_choice_type(types::sib5, type_, "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
const sib_type6_s& sib6() const
{
assert_choice_type(types::sib6, type_, "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
const sib_type7_s& sib7() const
{
assert_choice_type(types::sib7, type_, "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
const sib_type8_s& sib8() const
{
assert_choice_type(types::sib8, type_, "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
const sib_type9_s& sib9() const
{
assert_choice_type(types::sib9, type_, "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
const sib_type10_s& sib10() const
{
assert_choice_type(types::sib10, type_, "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
const sib_type11_s& sib11() const
{
assert_choice_type(types::sib11, type_, "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
const sib_type12_r9_s& sib12_v920() const
{
assert_choice_type(types::sib12_v920, type_, "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
const sib_type13_r9_s& sib13_v920() const
{
assert_choice_type(types::sib13_v920, type_, "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
const sib_type14_r11_s& sib14_v1130() const
{
assert_choice_type(types::sib14_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
const sib_type15_r11_s& sib15_v1130() const
{
assert_choice_type(types::sib15_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
const sib_type16_r11_s& sib16_v1130() const
{
assert_choice_type(types::sib16_v1130, type_, "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
const sib_type17_r12_s& sib17_v1250() const
{
assert_choice_type(types::sib17_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
const sib_type18_r12_s& sib18_v1250() const
{
assert_choice_type(types::sib18_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
const sib_type19_r12_s& sib19_v1250() const
{
assert_choice_type(types::sib19_v1250, type_, "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
const sib_type20_r13_s& sib20_v1310() const
{
assert_choice_type(types::sib20_v1310, type_, "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
const sib_type21_r14_s& sib21_v1430() const
{
assert_choice_type(types::sib21_v1430, type_, "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
const sib_type24_r15_s& sib24_v1530() const
{
assert_choice_type(types::sib24_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
const sib_type25_r15_s& sib25_v1530() const
{
assert_choice_type(types::sib25_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
const sib_type26_r15_s& sib26_v1530() const
{
assert_choice_type(types::sib26_v1530, type_, "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
const sib_type26a_r16_s& sib26a_v1610() const
{
assert_choice_type(types::sib26a_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type26a_r16_s>();
}
const sib_type27_r16_s& sib27_v1610() const
{
assert_choice_type(types::sib27_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type27_r16_s>();
}
const sib_type28_r16_s& sib28_v1610() const
{
assert_choice_type(types::sib28_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type28_r16_s>();
}
const sib_type29_r16_s& sib29_v1610() const
{
assert_choice_type(types::sib29_v1610, type_, "sib-TypeAndInfo-item");
return c.get<sib_type29_r16_s>();
}
const sib_type30_r17_s& sib30_v1700() const
{
assert_choice_type(types::sib30_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type30_r17_s>();
}
const sib_type31_r17_s& sib31_v1700() const
{
assert_choice_type(types::sib31_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type31_r17_s>();
}
const sib_type32_r17_s& sib32_v1700() const
{
assert_choice_type(types::sib32_v1700, type_, "sib-TypeAndInfo-item");
return c.get<sib_type32_r17_s>();
}
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<sib_type10_s,
sib_type11_s,
sib_type12_r9_s,
sib_type13_r9_s,
sib_type14_r11_s,
sib_type15_r11_s,
sib_type16_r11_s,
sib_type17_r12_s,
sib_type18_r12_s,
sib_type19_r12_s,
sib_type20_r13_s,
sib_type21_r14_s,
sib_type24_r15_s,
sib_type25_r15_s,
sib_type26_r15_s,
sib_type26a_r16_s,
sib_type27_r16_s,
sib_type28_r16_s,
sib_type29_r16_s,
sib_type2_s,
sib_type30_r17_s,
sib_type31_r17_s,
sib_type32_r17_s,
sib_type3_s,
sib_type4_s,
sib_type5_s,
sib_type6_s,
sib_type7_s,
sib_type8_s,
sib_type9_s>
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<sib_type_and_info_item_c_>;
// 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_opts> 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_opts> 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<sys_info_r8_ies_s>();
}
crit_exts_future_r15_c_& crit_exts_future_r15()
{
assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
const sys_info_r8_ies_s& sys_info_r8() const
{
assert_choice_type(types::sys_info_r8, type_, "criticalExtensions");
return c.get<sys_info_r8_ies_s>();
}
const crit_exts_future_r15_c_& crit_exts_future_r15() const
{
assert_choice_type(types::crit_exts_future_r15, type_, "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
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<crit_exts_future_r15_c_, sys_info_r8_ies_s> 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_opts> 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<sys_info_s>();
}
sib_type1_s& sib_type1()
{
assert_choice_type(types::sib_type1, type_, "c1");
return c.get<sib_type1_s>();
}
const sys_info_s& sys_info() const
{
assert_choice_type(types::sys_info, type_, "c1");
return c.get<sys_info_s>();
}
const sib_type1_s& sib_type1() const
{
assert_choice_type(types::sib_type1, type_, "c1");
return c.get<sib_type1_s>();
}
sys_info_s& set_sys_info();
sib_type1_s& set_sib_type1();
private:
types type_;
choice_buffer_t<sib_type1_s, sys_info_s> 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_opts> 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_opts> 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<sys_info_br_r13_s>();
}
sib_type1_br_r13_s& sib_type1_br_r13()
{
assert_choice_type(types::sib_type1_br_r13, type_, "c1");
return c.get<sib_type1_br_r13_s>();
}
const sys_info_br_r13_s& sys_info_br_r13() const
{
assert_choice_type(types::sys_info_br_r13, type_, "c1");
return c.get<sys_info_br_r13_s>();
}
const sib_type1_br_r13_s& sib_type1_br_r13() const
{
assert_choice_type(types::sib_type1_br_r13, type_, "c1");
return c.get<sib_type1_br_r13_s>();
}
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<sib_type1_br_r13_s, sys_info_br_r13_s> 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_opts> 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_opts, true> 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<sib_type_mbms_r14_e, 31>;
// 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_opts> 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_opts> 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<plmn_id_s>;
// SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-MBMS-r14
using sched_info_list_mbms_r14_l = dyn_array<sched_info_mbms_r14_s>;
// 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_opts> si_win_len_r14_e_;
using cell_access_related_info_list_r14_l_ = dyn_array<cell_access_related_info_r14_s>;
// 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<uint8_t, 8>;
// 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<ns_pmax_value_v10l0_s>;
// MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-v10l0
using multi_band_info_list_v10l0_l = dyn_array<ns_pmax_list_v10l0_l>;
// 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<uint8_t, 8>;
// 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<multi_band_info_v9e0_s>;
// 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<inter_freq_carrier_freq_info_v1360_s>;
// 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_opts, true> sib_type_v12j0_e;
// SIB-MappingInfo-v12j0 ::= SEQUENCE (SIZE (1..31)) OF SIB-Type-v12j0
using sib_map_info_v12j0_l = bounded_array<sib_type_v12j0_e, 31>;
// 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<sched_info_v12j0_s>;
// SchedulingInfoListExt-r12 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfoExt-r12
using sched_info_list_ext_r12_l = dyn_array<sched_info_ext_r12_s>;
// 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<uint16_t, 8>;
// 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<uint8_t, 8>;
// 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<inter_freq_carrier_freq_info_v10l0_s>;
// 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<inter_freq_carrier_freq_info_v10j0_s>;
// 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<inter_freq_carrier_freq_info_v9e0_s>;
// 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<inter_freq_carrier_freq_info_v8h0_s>;
// 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<carrier_freq_info_utra_fdd_v8h0_s>;
// 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