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.

4760 lines
162 KiB
C++

/**
*
* \section COPYRIGHT
*
* Copyright 2013-2020 Software Radio Systems Limited
*
* By using this file, you agree to the terms and conditions set
* forth in the LICENSE file which can be found at the top level of
* the distribution.
*
*/
/*******************************************************************************
*
* 3GPP TS ASN1 RRC v15.11.0 (2020-09)
*
******************************************************************************/
#ifndef SRSASN1_RRC_BCCH_MSG_H
#define SRSASN1_RRC_BCCH_MSG_H
#include "meascfg.h"
#include "si.h"
namespace asn1 {
namespace rrc {
/*******************************************************************************
* Struct Definitions
******************************************************************************/
// BCCH-BCH-MessageType ::= MasterInformationBlock
typedef mib_s bcch_bch_msg_type_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;
};
// SIB-Type-v12j0 ::= ENUMERATED
struct sib_type_v12j0_opts {
enum options {
sib_type19_v1250,
sib_type20_v1310,
sib_type21_v1430,
sib_type24_v1530,
sib_type25_v1530,
sib_type26_v1530,
spare10,
spare9,
spare8,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
// ...
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sib_type_v12j0_opts, true> sib_type_v12j0_e;
// NS-PmaxValue-v10l0 ::= SEQUENCE
struct ns_pmax_value_v10l0_s {
bool add_spec_emission_v10l0_present = false;
uint16_t add_spec_emission_v10l0 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SIB-MappingInfo-v12j0 ::= SEQUENCE (SIZE (1..31)) OF SIB-Type-v12j0
using sib_map_info_v12j0_l = bounded_array<sib_type_v12j0_e, 31>;
// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1360_s {
bool cell_sel_info_ce1_v1360_present = false;
cell_sel_info_ce1_v1360_s cell_sel_info_ce1_v1360;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-v10l0
using ns_pmax_list_v10l0_l = dyn_array<ns_pmax_value_v10l0_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;
};
// SchedulingInfo-v12j0 ::= SEQUENCE
struct sched_info_v12j0_s {
bool sib_map_info_v12j0_present = false;
sib_map_info_v12j0_l sib_map_info_v12j0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SchedulingInfoExt-r12 ::= SEQUENCE
struct sched_info_ext_r12_s {
si_periodicity_r12_e si_periodicity_r12;
sib_map_info_v12j0_l sib_map_info_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassInfoCDMA2000 ::= SEQUENCE
struct band_class_info_cdma2000_s {
bool ext = false;
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;
};
// 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>;
// MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-v10l0
using multi_band_info_list_v10l0_l = dyn_array<ns_pmax_list_v10l0_l>;
// NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-r10
using ns_pmax_list_r10_l = dyn_array<ns_pmax_value_r10_s>;
// 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>;
// 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>;
// SystemInformationBlockType2-v13c0-IEs ::= SEQUENCE
struct sib_type2_v13c0_ies_s {
bool ul_pwr_ctrl_common_v13c0_present = false;
bool non_crit_ext_present = false;
ul_pwr_ctrl_common_v1310_s ul_pwr_ctrl_common_v13c0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF BandClassInfoCDMA2000
using band_class_list_cdma2000_l = dyn_array<band_class_info_cdma2000_s>;
// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v10l0_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MultiBandInfo-v9e0 ::= SEQUENCE
struct multi_band_info_v9e0_s {
bool freq_band_ind_v9e0_present = false;
uint16_t freq_band_ind_v9e0 = 65;
// 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>;
// 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;
};
// 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;
};
// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE
struct sib_type1_v12j0_ies_s {
bool sched_info_list_v12j0_present = false;
bool sched_info_list_ext_r12_present = false;
bool non_crit_ext_present = false;
sched_info_list_v12j0_l sched_info_list_v12j0;
sched_info_list_ext_r12_l sched_info_list_ext_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE
struct sib_type2_v10n0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
sib_type2_v13c0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE
struct sib_type5_v13a0_ies_s {
bool late_non_crit_ext_present = false;
bool inter_freq_carrier_freq_list_v13a0_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
inter_freq_carrier_freq_list_v13a0_l inter_freq_carrier_freq_list_v13a0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// AC-BarringConfig1XRTT-r9 ::= SEQUENCE
struct ac_barr_cfg1_xrtt_r9_s {
uint8_t ac_barr0to9_r9 = 0;
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;
};
// 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;
};
// 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;
};
// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v10j0_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqNeighCellInfo ::= SEQUENCE
struct inter_freq_neigh_cell_info_s {
uint16_t pci = 0;
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;
};
// MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MultiBandInfo-v9e0
using multi_band_info_list_v9e0_l = dyn_array<multi_band_info_v9e0_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;
std::string 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("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<uint8_t>();
}
plmn_id_s& plmn_id_r12()
{
assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
const uint8_t& plmn_idx_r12() const
{
assert_choice_type("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<uint8_t>();
}
const plmn_id_s& plmn_id_r12() const
{
assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
uint8_t& set_plmn_idx_r12()
{
set(types::plmn_idx_r12);
return c.get<uint8_t>();
}
plmn_id_s& set_plmn_id_r12()
{
set(types::plmn_id_r12);
return c.get<plmn_id_s>();
}
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>;
// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE
struct sib_type1_v10x0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
sib_type1_v12j0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE
struct sib_type2_v10m0_ies_s {
struct freq_info_v10l0_s_ {
uint16_t add_spec_emission_v10l0 = 33;
};
using multi_band_info_list_v10l0_l_ = bounded_array<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;
};
// 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;
};
// 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;
std::string 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("synchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<39> >();
}
fixed_bitstring<49>& async_sys_time()
{
assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
const fixed_bitstring<39>& sync_sys_time() const
{
assert_choice_type("synchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<39> >();
}
const fixed_bitstring<49>& async_sys_time() const
{
assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
fixed_bitstring<39>& set_sync_sys_time()
{
set(types::sync_sys_time);
return c.get<fixed_bitstring<39> >();
}
fixed_bitstring<49>& set_async_sys_time()
{
set(types::async_sys_time);
return c.get<fixed_bitstring<49> >();
}
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;
};
// InterFreqBlackCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using inter_freq_black_cell_list_l = dyn_array<pci_range_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;
};
// InterFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo
using inter_freq_neigh_cell_list_l = dyn_array<inter_freq_neigh_cell_info_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>;
// MultiBandInfoList ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..64)
using multi_band_info_list_l = bounded_array<uint8_t, 8>;
// 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>;
// 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;
std::string 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("explicitValue", type_.to_string(), "systemTimeInfo-r11");
return c;
}
const sys_time_info_cdma2000_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "systemTimeInfo-r11");
return c;
}
sys_time_info_cdma2000_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
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;
};
// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE
struct sib_type1_v10l0_ies_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
sib_type1_v10x0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE
struct sib_type2_v9i0_ies_s {
bool non_crit_ext_present = false;
bool dummy_present = false;
dyn_octstring non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE
struct sib_type5_v10j0_ies_s {
using inter_freq_carrier_freq_list_v10j0_l_ = dyn_array<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;
};
// 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>;
// 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;
};
// 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;
std::string 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;
};
// 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;
std::string 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;
};
// 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_black_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_black_cell_list_l inter_freq_black_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_black_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_black_cell_list_l inter_freq_black_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-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-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-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;
};
// 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;
};
// MBMS-CarrierType-r14 ::= SEQUENCE
struct mbms_carrier_type_r14_s {
struct carrier_type_r14_opts {
enum options { mbms, fembms_mixed, fembms_ded, nulltype } value;
std::string to_string() const;
};
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-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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
std::string to_string() const;
float to_number() const;
std::string 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;
};
// 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>;
// 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;
std::string 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;
std::string 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("explicitValue", type_.to_string(), "parametersCDMA2000-r11");
return c;
}
const params_cdma2000_r11_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "parametersCDMA2000-r11");
return c;
}
params_cdma2000_r11_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
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;
};
// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE
struct sib_type1_v10j0_ies_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
sib_type1_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE
struct sib_type2_v9e0_ies_s {
bool ul_carrier_freq_v9e0_present = false;
bool non_crit_ext_present = false;
uint32_t ul_carrier_freq_v9e0 = 65536;
sib_type2_v9i0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE
struct sib_type3_v10l0_ies_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE
struct sib_type5_v9e0_ies_s {
using inter_freq_carrier_freq_list_v9e0_l_ = dyn_array<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;
};
// 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;
std::string to_string() const;
float to_number() const;
std::string 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;
std::string 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-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;
std::string 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("uac-ImplicitAC-BarringList-r15", type_.to_string(), "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("uac-ExplicitAC-BarringList-r15", type_.to_string(), "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("uac-ImplicitAC-BarringList-r15", type_.to_string(), "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("uac-ExplicitAC-BarringList-r15", type_.to_string(), "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()
{
set(types::uac_implicit_ac_barr_list_r15);
return c.get<uac_implicit_ac_barr_list_r15_l_>();
}
uac_barr_per_cat_list_r15_l& set_uac_explicit_ac_barr_list_r15()
{
set(types::uac_explicit_ac_barr_list_r15);
return c.get<uac_barr_per_cat_list_r15_l>();
}
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;
};
// 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;
};
// CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-r15
using carrier_freq_list_nr_r15_l = dyn_array<carrier_freq_nr_r15_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;
std::string 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;
};
// 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>;
// 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>;
// IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using intra_freq_black_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>;
// 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;
std::string 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-r9 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r9
using mbsfn_area_info_list_r9_l = dyn_array<mbsfn_area_info_r9_s>;
// 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;
};
// 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;
std::string 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;
std::string 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;
std::string 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;
std::string 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("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf20()
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf4096()
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf8192()
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf4096() const
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf8192() const
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint8_t& set_sf10()
{
set(types::sf10);
return c.get<uint8_t>();
}
uint8_t& set_sf20()
{
set(types::sf20);
return c.get<uint8_t>();
}
uint8_t& set_sf32()
{
set(types::sf32);
return c.get<uint8_t>();
}
uint8_t& set_sf40()
{
set(types::sf40);
return c.get<uint8_t>();
}
uint8_t& set_sf64()
{
set(types::sf64);
return c.get<uint8_t>();
}
uint8_t& set_sf80()
{
set(types::sf80);
return c.get<uint8_t>();
}
uint8_t& set_sf128()
{
set(types::sf128);
return c.get<uint8_t>();
}
uint8_t& set_sf160()
{
set(types::sf160);
return c.get<uint8_t>();
}
uint16_t& set_sf256()
{
set(types::sf256);
return c.get<uint16_t>();
}
uint16_t& set_sf320()
{
set(types::sf320);
return c.get<uint16_t>();
}
uint16_t& set_sf512()
{
set(types::sf512);
return c.get<uint16_t>();
}
uint16_t& set_sf640()
{
set(types::sf640);
return c.get<uint16_t>();
}
uint16_t& set_sf1024()
{
set(types::sf1024);
return c.get<uint16_t>();
}
uint16_t& set_sf2048()
{
set(types::sf2048);
return c.get<uint16_t>();
}
uint16_t& set_sf4096()
{
set(types::sf4096);
return c.get<uint16_t>();
}
uint16_t& set_sf8192()
{
set(types::sf8192);
return c.get<uint16_t>();
}
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;
std::string 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;
std::string 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;
std::string 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-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12
using sl_sync_cfg_list_r12_l = dyn_array<sl_sync_cfg_r12_s>;
// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE
struct sib_type1_v9e0_ies_s {
bool freq_band_ind_v9e0_present = false;
bool multi_band_info_list_v9e0_present = false;
bool non_crit_ext_present = false;
uint16_t freq_band_ind_v9e0 = 65;
multi_band_info_list_v9e0_l multi_band_info_list_v9e0;
sib_type1_v10j0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE
struct sib_type2_v8h0_ies_s {
using multi_band_info_list_l_ = bounded_array<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-v10j0-IEs ::= SEQUENCE
struct sib_type3_v10j0_ies_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
sib_type3_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE
struct sib_type5_v8h0_ies_s {
using inter_freq_carrier_freq_list_v8h0_l_ = dyn_array<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;
};
// UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED
struct uac_ac1_select_assist_info_r15_opts {
enum options { a, b, c, nulltype } value;
std::string to_string() const;
};
typedef enumerated<uac_ac1_select_assist_info_r15_opts> uac_ac1_select_assist_info_r15_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-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;
};
// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE
struct sib_type1_v8h0_ies_s {
bool multi_band_info_list_present = false;
bool non_crit_ext_present = false;
multi_band_info_list_l multi_band_info_list;
sib_type1_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType10 ::= SEQUENCE
struct sib_type10_s {
bool ext = false;
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;
std::string 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;
std::string 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;
// 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;
std::string 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("eab-Common-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_cfg_r11_s>();
}
eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11()
{
assert_choice_type("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_per_plmn_list_r11_l_>();
}
const eab_cfg_r11_s& eab_common_r11() const
{
assert_choice_type("eab-Common-r11", type_.to_string(), "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("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_per_plmn_list_r11_l_>();
}
eab_cfg_r11_s& set_eab_common_r11()
{
set(types::eab_common_r11);
return c.get<eab_cfg_r11_s>();
}
eab_per_plmn_list_r11_l_& set_eab_per_plmn_list_r11()
{
set(types::eab_per_plmn_list_r11);
return c.get<eab_per_plmn_list_r11_l_>();
}
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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
std::string to_string() const;
float to_number() const;
std::string 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;
std::string 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;
std::string 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("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& tdd_r14()
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
const fdd_r14_e_& fdd_r14() const
{
assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<fdd_r14_e_>();
}
const tdd_r14_e_& tdd_r14() const
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
fdd_r14_e_& set_fdd_r14()
{
set(types::fdd_r14);
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& set_tdd_r14()
{
set(types::tdd_r14);
return c.get<tdd_r14_e_>();
}
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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
// ...
// 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;
// ...
// 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;
std::string 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("plmnCommon-r15", type_.to_string(), "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("individualPLMNList-r15", type_.to_string(), "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("plmnCommon-r15", type_.to_string(), "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("individualPLMNList-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15");
return c.get<individual_plmn_list_r15_l_>();
}
uac_ac1_select_assist_info_r15_e& set_plmn_common_r15()
{
set(types::plmn_common_r15);
return c.get<uac_ac1_select_assist_info_r15_e>();
}
individual_plmn_list_r15_l_& set_individual_plmn_list_r15()
{
set(types::individual_plmn_list_r15);
return c.get<individual_plmn_list_r15_l_>();
}
private:
types type_;
choice_buffer_t<individual_plmn_list_r15_l_> c;
void destroy_();
};
// 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;
// ...
// 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;
};
// 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;
std::string 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;
std::string 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;
std::string 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;
// 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_black_cell_list_present = false;
bool csg_pci_range_present = false;
intra_freq_neigh_cell_list_l intra_freq_neigh_cell_list;
intra_freq_black_cell_list_l intra_freq_black_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;
// 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;
// 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,
// ...
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> 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("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus2_r15()
{
assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus3_r15()
{
assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus4_r15()
{
assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus5_r15()
{
assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus6_r15()
{
assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus7_r15()
{
assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus1_r15()
{
assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus2_r15()
{
assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus3_r15()
{
assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus4_r15()
{
assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus5_r15()
{
assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus6_r15()
{
assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus7_r15()
{
assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus8_r15()
{
assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus9_r15()
{
assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus10_r15()
{
assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus11_r15()
{
assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus12_r15()
{
assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus13_r15()
{
assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus14_r15()
{
assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus15_r15()
{
assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus16_r15()
{
assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus17_r15()
{
assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus18_r15()
{
assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus19_r15()
{
assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib3_minus1_r15()
{
assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus1_r15() const
{
assert_choice_type("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus2_r15() const
{
assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus3_r15() const
{
assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus4_r15() const
{
assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus5_r15() const
{
assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus6_r15() const
{
assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus7_r15() const
{
assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus1_r15() const
{
assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus2_r15() const
{
assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus3_r15() const
{
assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus4_r15() const
{
assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus5_r15() const
{
assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus6_r15() const
{
assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus7_r15() const
{
assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus8_r15() const
{
assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus9_r15() const
{
assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus10_r15() const
{
assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus11_r15() const
{
assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus12_r15() const
{
assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus13_r15() const
{
assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus14_r15() const
{
assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus15_r15() const
{
assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus16_r15() const
{
assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus17_r15() const
{
assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus18_r15() const
{
assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus19_r15() const
{
assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib3_minus1_r15() const
{
assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus1_r15()
{
set(types::pos_sib1_minus1_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus2_r15()
{
set(types::pos_sib1_minus2_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus3_r15()
{
set(types::pos_sib1_minus3_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus4_r15()
{
set(types::pos_sib1_minus4_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus5_r15()
{
set(types::pos_sib1_minus5_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus6_r15()
{
set(types::pos_sib1_minus6_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus7_r15()
{
set(types::pos_sib1_minus7_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus1_r15()
{
set(types::pos_sib2_minus1_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus2_r15()
{
set(types::pos_sib2_minus2_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus3_r15()
{
set(types::pos_sib2_minus3_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus4_r15()
{
set(types::pos_sib2_minus4_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus5_r15()
{
set(types::pos_sib2_minus5_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus6_r15()
{
set(types::pos_sib2_minus6_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus7_r15()
{
set(types::pos_sib2_minus7_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus8_r15()
{
set(types::pos_sib2_minus8_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus9_r15()
{
set(types::pos_sib2_minus9_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus10_r15()
{
set(types::pos_sib2_minus10_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus11_r15()
{
set(types::pos_sib2_minus11_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus12_r15()
{
set(types::pos_sib2_minus12_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus13_r15()
{
set(types::pos_sib2_minus13_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus14_r15()
{
set(types::pos_sib2_minus14_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus15_r15()
{
set(types::pos_sib2_minus15_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus16_r15()
{
set(types::pos_sib2_minus16_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus17_r15()
{
set(types::pos_sib2_minus17_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus18_r15()
{
set(types::pos_sib2_minus18_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus19_r15()
{
set(types::pos_sib2_minus19_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib3_minus1_r15()
{
set(types::pos_sib3_minus1_r15);
return c.get<sib_pos_r15_s>();
}
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,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true, 13> 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("sib2", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type2_s>();
}
sib_type3_s& sib3()
{
assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
sib_type4_s& sib4()
{
assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
sib_type5_s& sib5()
{
assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
sib_type6_s& sib6()
{
assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
sib_type7_s& sib7()
{
assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
sib_type8_s& sib8()
{
assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
sib_type9_s& sib9()
{
assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
sib_type10_s& sib10()
{
assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
sib_type11_s& sib11()
{
assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
sib_type12_r9_s& sib12_v920()
{
assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
sib_type13_r9_s& sib13_v920()
{
assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
sib_type14_r11_s& sib14_v1130()
{
assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
sib_type15_r11_s& sib15_v1130()
{
assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
sib_type16_r11_s& sib16_v1130()
{
assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
sib_type17_r12_s& sib17_v1250()
{
assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
sib_type18_r12_s& sib18_v1250()
{
assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
sib_type19_r12_s& sib19_v1250()
{
assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
sib_type20_r13_s& sib20_v1310()
{
assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
sib_type21_r14_s& sib21_v1430()
{
assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
sib_type24_r15_s& sib24_v1530()
{
assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
sib_type25_r15_s& sib25_v1530()
{
assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
sib_type26_r15_s& sib26_v1530()
{
assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
const sib_type2_s& sib2() const
{
assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type2_s>();
}
const sib_type3_s& sib3() const
{
assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
const sib_type4_s& sib4() const
{
assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
const sib_type5_s& sib5() const
{
assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
const sib_type6_s& sib6() const
{
assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
const sib_type7_s& sib7() const
{
assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
const sib_type8_s& sib8() const
{
assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
const sib_type9_s& sib9() const
{
assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
const sib_type10_s& sib10() const
{
assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
const sib_type11_s& sib11() const
{
assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
const sib_type12_r9_s& sib12_v920() const
{
assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
const sib_type13_r9_s& sib13_v920() const
{
assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
const sib_type14_r11_s& sib14_v1130() const
{
assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
const sib_type15_r11_s& sib15_v1130() const
{
assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
const sib_type16_r11_s& sib16_v1130() const
{
assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
const sib_type17_r12_s& sib17_v1250() const
{
assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
const sib_type18_r12_s& sib18_v1250() const
{
assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
const sib_type19_r12_s& sib19_v1250() const
{
assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
const sib_type20_r13_s& sib20_v1310() const
{
assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
const sib_type21_r14_s& sib21_v1430() const
{
assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
const sib_type24_r15_s& sib24_v1530() const
{
assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
const sib_type25_r15_s& sib25_v1530() const
{
assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
const sib_type26_r15_s& sib26_v1530() const
{
assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
sib_type2_s& set_sib2()
{
set(types::sib2);
return c.get<sib_type2_s>();
}
sib_type3_s& set_sib3()
{
set(types::sib3);
return c.get<sib_type3_s>();
}
sib_type4_s& set_sib4()
{
set(types::sib4);
return c.get<sib_type4_s>();
}
sib_type5_s& set_sib5()
{
set(types::sib5);
return c.get<sib_type5_s>();
}
sib_type6_s& set_sib6()
{
set(types::sib6);
return c.get<sib_type6_s>();
}
sib_type7_s& set_sib7()
{
set(types::sib7);
return c.get<sib_type7_s>();
}
sib_type8_s& set_sib8()
{
set(types::sib8);
return c.get<sib_type8_s>();
}
sib_type9_s& set_sib9()
{
set(types::sib9);
return c.get<sib_type9_s>();
}
sib_type10_s& set_sib10()
{
set(types::sib10);
return c.get<sib_type10_s>();
}
sib_type11_s& set_sib11()
{
set(types::sib11);
return c.get<sib_type11_s>();
}
sib_type12_r9_s& set_sib12_v920()
{
set(types::sib12_v920);
return c.get<sib_type12_r9_s>();
}
sib_type13_r9_s& set_sib13_v920()
{
set(types::sib13_v920);
return c.get<sib_type13_r9_s>();
}
sib_type14_r11_s& set_sib14_v1130()
{
set(types::sib14_v1130);
return c.get<sib_type14_r11_s>();
}
sib_type15_r11_s& set_sib15_v1130()
{
set(types::sib15_v1130);
return c.get<sib_type15_r11_s>();
}
sib_type16_r11_s& set_sib16_v1130()
{
set(types::sib16_v1130);
return c.get<sib_type16_r11_s>();
}
sib_type17_r12_s& set_sib17_v1250()
{
set(types::sib17_v1250);
return c.get<sib_type17_r12_s>();
}
sib_type18_r12_s& set_sib18_v1250()
{
set(types::sib18_v1250);
return c.get<sib_type18_r12_s>();
}
sib_type19_r12_s& set_sib19_v1250()
{
set(types::sib19_v1250);
return c.get<sib_type19_r12_s>();
}
sib_type20_r13_s& set_sib20_v1310()
{
set(types::sib20_v1310);
return c.get<sib_type20_r13_s>();
}
sib_type21_r14_s& set_sib21_v1430()
{
set(types::sib21_v1430);
return c.get<sib_type21_r14_s>();
}
sib_type24_r15_s& set_sib24_v1530()
{
set(types::sib24_v1530);
return c.get<sib_type24_r15_s>();
}
sib_type25_r15_s& set_sib25_v1530()
{
set(types::sib25_v1530);
return c.get<sib_type25_r15_s>();
}
sib_type26_r15_s& set_sib26_v1530()
{
set(types::sib26_v1530);
return c.get<sib_type26_r15_s>();
}
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_type2_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 {
typedef sib_info_item_c sib_type_and_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;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_future_r15_c_() = default;
crit_exts_future_r15_c_(const crit_exts_future_r15_c_& other);
crit_exts_future_r15_c_& operator=(const crit_exts_future_r15_c_& other);
~crit_exts_future_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
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("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15");
return c.get<pos_sys_info_r15_ies_s>();
}
const pos_sys_info_r15_ies_s& pos_sys_info_r15() const
{
assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15");
return c.get<pos_sys_info_r15_ies_s>();
}
pos_sys_info_r15_ies_s& set_pos_sys_info_r15()
{
set(types::pos_sys_info_r15);
return c.get<pos_sys_info_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<pos_sys_info_r15_ies_s> c;
void destroy_();
};
struct types_opts {
enum options { sys_info_r8, crit_exts_future_r15, nulltype } value;
std::string 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("systemInformation-r8", type_.to_string(), "criticalExtensions");
return c.get<sys_info_r8_ies_s>();
}
crit_exts_future_r15_c_& crit_exts_future_r15()
{
assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
const sys_info_r8_ies_s& sys_info_r8() const
{
assert_choice_type("systemInformation-r8", type_.to_string(), "criticalExtensions");
return c.get<sys_info_r8_ies_s>();
}
const crit_exts_future_r15_c_& crit_exts_future_r15() const
{
assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
sys_info_r8_ies_s& set_sys_info_r8()
{
set(types::sys_info_r8);
return c.get<sys_info_r8_ies_s>();
}
crit_exts_future_r15_c_& set_crit_exts_future_r15()
{
set(types::crit_exts_future_r15);
return c.get<crit_exts_future_r15_c_>();
}
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;
std::string 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("systemInformation", type_.to_string(), "c1");
return c.get<sys_info_s>();
}
sib_type1_s& sib_type1()
{
assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1");
return c.get<sib_type1_s>();
}
const sys_info_s& sys_info() const
{
assert_choice_type("systemInformation", type_.to_string(), "c1");
return c.get<sys_info_s>();
}
const sib_type1_s& sib_type1() const
{
assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1");
return c.get<sib_type1_s>();
}
sys_info_s& set_sys_info()
{
set(types::sys_info);
return c.get<sys_info_s>();
}
sib_type1_s& set_sib_type1()
{
set(types::sib_type1);
return c.get<sib_type1_s>();
}
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;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
bcch_dl_sch_msg_type_c() = default;
bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other);
bcch_dl_sch_msg_type_c& operator=(const bcch_dl_sch_msg_type_c& other);
~bcch_dl_sch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// 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
typedef sys_info_s sys_info_br_r13_s;
// SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1
typedef sib_type1_s sib_type1_br_r13_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;
std::string 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("systemInformation-BR-r13", type_.to_string(), "c1");
return c.get<sys_info_br_r13_s>();
}
sib_type1_br_r13_s& sib_type1_br_r13()
{
assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1");
return c.get<sib_type1_br_r13_s>();
}
const sys_info_br_r13_s& sys_info_br_r13() const
{
assert_choice_type("systemInformation-BR-r13", type_.to_string(), "c1");
return c.get<sys_info_br_r13_s>();
}
const sib_type1_br_r13_s& sib_type1_br_r13() const
{
assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1");
return c.get<sib_type1_br_r13_s>();
}
sys_info_br_r13_s& set_sys_info_br_r13()
{
set(types::sys_info_br_r13);
return c.get<sys_info_br_r13_s>();
}
sib_type1_br_r13_s& set_sib_type1_br_r13()
{
set(types::sib_type1_br_r13);
return c.get<sib_type1_br_r13_s>();
}
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;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
bcch_dl_sch_msg_type_br_r13_c() = default;
bcch_dl_sch_msg_type_br_r13_c(const bcch_dl_sch_msg_type_br_r13_c& other);
bcch_dl_sch_msg_type_br_r13_c& operator=(const bcch_dl_sch_msg_type_br_r13_c& other);
~bcch_dl_sch_msg_type_br_r13_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// 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;
std::string 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;
std::string 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;
std::string 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;
std::string 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;
};
// SystemInformationBlockType16-NB-r13 ::= SystemInformationBlockType16-r11
typedef sib_type16_r11_s sib_type16_nb_r13_s;
} // namespace rrc
} // namespace asn1
#endif // SRSASN1_RRC_BCCH_MSG_H