update RRC ASN1 to 2020-09 v15.11

master
Francisco Paisana 4 years ago
parent bc4c9606ce
commit e27c0869e5

@ -1724,6 +1724,148 @@ struct sc_mcch_msg_r13_s {
void to_json(json_writer& j) const;
};
// FailureReportSCG-v12d0 ::= SEQUENCE
struct fail_report_scg_v12d0_s {
bool meas_result_neigh_cells_v12d0_present = false;
meas_result_list2_eutra_v9e0_l meas_result_neigh_cells_v12d0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE
struct scg_fail_info_v12d0b_ies_s {
bool fail_report_scg_v12d0_present = false;
bool non_crit_ext_present = false;
fail_report_scg_v12d0_s fail_report_scg_v12d0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-WeightedLayersCapabilities-r13 ::= SEQUENCE
struct mimo_weighted_layers_cap_r13_s {
struct rel_weight_two_layers_r13_opts {
enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rel_weight_two_layers_r13_opts> rel_weight_two_layers_r13_e_;
struct rel_weight_four_layers_r13_opts {
enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rel_weight_four_layers_r13_opts> rel_weight_four_layers_r13_e_;
struct rel_weight_eight_layers_r13_opts {
enum options { v1, v1dot25, v1dot5, v1dot75, v2, v2dot5, v3, v4, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rel_weight_eight_layers_r13_opts> rel_weight_eight_layers_r13_e_;
// member variables
bool rel_weight_four_layers_r13_present = false;
bool rel_weight_eight_layers_r13_present = false;
rel_weight_two_layers_r13_e_ rel_weight_two_layers_r13;
rel_weight_four_layers_r13_e_ rel_weight_four_layers_r13;
rel_weight_eight_layers_r13_e_ rel_weight_eight_layers_r13;
uint8_t total_weighted_layers_r13 = 2;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-Parameters-v13e0 ::= SEQUENCE
struct mimo_ue_params_v13e0_s {
bool mimo_weighted_layers_cap_r13_present = false;
mimo_weighted_layers_cap_r13_s mimo_weighted_layers_cap_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult3EUTRA-r15 ::= SEQUENCE
struct meas_result3_eutra_r15_s {
bool ext = false;
bool meas_result_serving_cell_r15_present = false;
bool meas_result_neigh_cell_list_r15_present = false;
uint32_t carrier_freq_r15 = 0;
meas_result_eutra_s meas_result_serving_cell_r15;
meas_result_list_eutra_l meas_result_neigh_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;
};
// MeasResultList3EUTRA-r15 ::= SEQUENCE (SIZE (1..8)) OF MeasResult3EUTRA-r15
using meas_result_list3_eutra_r15_l = dyn_array<meas_result3_eutra_r15_s>;
// MeasResultSCG-FailureMRDC-r15 ::= SEQUENCE
struct meas_result_scg_fail_mrdc_r15_s {
bool ext = false;
meas_result_list3_eutra_r15_l meas_result_freq_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;
};
// PhyLayerParameters-v13e0 ::= SEQUENCE
struct phy_layer_params_v13e0_s {
mimo_ue_params_v13e0_s mimo_ue_params_v13e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE
struct ue_eutra_cap_v13e0b_ies_s {
bool non_crit_ext_present = false;
phy_layer_params_v13e0_s phy_layer_params_v13e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-v12i0b-IEs ::= SEQUENCE
struct scg_cfg_v12i0b_ies_s {
bool scg_radio_cfg_v12i0_present = false;
bool non_crit_ext_present = false;
scg_cfg_part_scg_v12f0_s scg_radio_cfg_v12i0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-TriggeredList-r12 ::= SEQUENCE (SIZE (1..96)) OF INTEGER (1..96)
using csi_rs_triggered_list_r12_l = dyn_array<uint8_t>;

@ -42,6 +42,35 @@ struct bcch_bch_msg_s {
void to_json(json_writer& j) const;
};
// SIB-Type-v12j0 ::= ENUMERATED
struct sib_type_v12j0_opts {
enum options {
sib_type19_v1250,
sib_type20_v1310,
sib_type21_v1430,
sib_type24_v1530,
sib_type25_v1530,
sib_type26_v1530,
spare10,
spare9,
spare8,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
// ...
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sib_type_v12j0_opts, true> sib_type_v12j0_e;
// NS-PmaxValue-v10l0 ::= SEQUENCE
struct ns_pmax_value_v10l0_s {
bool add_spec_emission_v10l0_present = false;
@ -53,6 +82,9 @@ struct ns_pmax_value_v10l0_s {
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;
@ -79,6 +111,28 @@ struct ns_pmax_value_r10_s {
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;
@ -124,6 +178,12 @@ 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;
@ -166,6 +226,18 @@ struct multi_band_info_v9e0_s {
// 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>;
@ -212,6 +284,20 @@ struct redist_neigh_cell_r13_s {
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE
struct sib_type1_v12j0_ies_s {
bool sched_info_list_v12j0_present = false;
bool sched_info_list_ext_r12_present = false;
bool non_crit_ext_present = false;
sched_info_list_v12j0_l sched_info_list_v12j0;
sched_info_list_ext_r12_l sched_info_list_ext_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE
struct sib_type2_v10n0_ies_s {
bool late_non_crit_ext_present = false;
@ -332,17 +418,8 @@ struct inter_freq_neigh_cell_info_s {
// MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MultiBandInfo-v9e0
using multi_band_info_list_v9e0_l = dyn_array<multi_band_info_v9e0_s>;
// 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;
};
// 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>;
@ -414,6 +491,19 @@ 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_ {
@ -559,8 +649,11 @@ 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>;
// 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>;
// 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 {
@ -698,6 +791,7 @@ struct sib_type1_v10l0_ies_s {
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;
@ -794,11 +888,15 @@ struct carrier_freq_nr_r15_s {
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 = -34;
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;
@ -1225,7 +1323,7 @@ struct mbsfn_area_info_r9_s {
mcch_mod_period_v1430_e_ mcch_mod_period_v1430;
};
struct subcarrier_spacing_mbms_r14_opts {
enum options { khz_minus7dot5, khz_minus1dot25, nulltype } value;
enum options { khz7dot5, khz1dot25, nulltype } value;
typedef float number_type;
std::string to_string() const;
@ -2967,14 +3065,16 @@ struct sib_type26_r15_s {
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_r14_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_r14 = 0;
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;

@ -112,6 +112,7 @@ namespace rrc {
#define ASN1_RRC_MAX_MEAS_ID_R12 64
#define ASN1_RRC_MAX_MULTI_BANDS 8
#define ASN1_RRC_MAX_MULTI_BANDS_NR_R15 32
#define ASN1_RRC_MAX_MULTI_BANDS_NR_MINUS1_R15 31
#define ASN1_RRC_MAX_NS_PMAX_R10 8
#define ASN1_RRC_MAX_NAICS_ENTRIES_R12 8
#define ASN1_RRC_MAX_NEIGH_CELL_R12 8

@ -337,6 +337,18 @@ struct rrc_conn_setup_v8a0_ies_s {
void to_json(json_writer& j) const;
};
// RRCEarlyDataComplete-v1590-IEs ::= SEQUENCE
struct rrc_early_data_complete_v1590_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;
};
// RedirectedCarrierInfo-r15-IEs ::= CHOICE
struct redirected_carrier_info_r15_ies_c {
struct types_opts {
@ -524,6 +536,7 @@ struct rrc_early_data_complete_r15_ies_s {
idle_mode_mob_ctrl_info_s idle_mode_mob_ctrl_info_r15;
idle_mode_mob_ctrl_info_v9e0_s idle_mode_mob_ctrl_info_ext_r15;
redirected_carrier_info_r15_ies_c redirected_carrier_info_r15;
rrc_early_data_complete_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -283,6 +283,16 @@ struct sl_tx_pool_to_add_mod_r14_s {
void to_json(json_writer& j) const;
};
// SubframeAssignment-r15 ::= ENUMERATED
struct sf_assign_r15_opts {
enum options { sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sf_assign_r15_opts> sf_assign_r15_e;
// UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE
struct ul_pwr_ctrl_common_ps_cell_r12_s {
struct delta_f_pucch_format3_r12_opts {
@ -644,15 +654,42 @@ using sl_tx_pool_to_add_mod_list_v2x_r14_l = dyn_array<sl_tx_pool_to_add_mod_r14
// SL-TxPoolToReleaseListV2X-r14 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..8)
using sl_tx_pool_to_release_list_v2x_r14_l = bounded_array<uint8_t, 8>;
// SubframeAssignment-r15 ::= ENUMERATED
struct sf_assign_r15_opts {
enum options { sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value;
typedef uint8_t number_type;
// TDM-PatternConfig-r15 ::= CHOICE
struct tdm_pattern_cfg_r15_c {
struct setup_s_ {
sf_assign_r15_e sf_assign_r15;
uint8_t harq_offset_r15 = 0;
};
typedef setup_e types;
std::string to_string() const;
uint8_t to_number() const;
// choice methods
tdm_pattern_cfg_r15_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "TDM-PatternConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "TDM-PatternConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
typedef enumerated<sf_assign_r15_opts> sf_assign_r15_e;
// TunnelConfigLWIP-r13 ::= SEQUENCE
struct tunnel_cfg_lwip_r13_s {
@ -914,41 +951,6 @@ struct rrc_conn_recfg_v1510_ies_s {
return c;
}
private:
types type_;
setup_s_ c;
};
struct tdm_pattern_cfg_r15_c_ {
struct setup_s_ {
sf_assign_r15_e sf_assign_r15;
uint8_t harq_offset_r15 = 0;
};
typedef setup_e types;
// choice methods
tdm_pattern_cfg_r15_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "tdm-PatternConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "tdm-PatternConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
@ -965,7 +967,7 @@ struct rrc_conn_recfg_v1510_ies_s {
uint32_t sk_counter_r15 = 0;
dyn_octstring nr_radio_bearer_cfg1_r15;
dyn_octstring nr_radio_bearer_cfg2_r15;
tdm_pattern_cfg_r15_c_ tdm_pattern_cfg_r15;
tdm_pattern_cfg_r15_c tdm_pattern_cfg_r15;
rrc_conn_recfg_v1530_ies_s non_crit_ext;
// sequence methods
@ -1519,6 +1521,17 @@ struct rrc_conn_recfg_v1430_ies_s {
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v15b0-IEs ::= SEQUENCE
struct rrc_conn_release_v15b0_ies_s {
bool no_last_cell_upd_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicated-v1370 ::= SEQUENCE
struct rr_cfg_ded_v1370_s {
bool phys_cfg_ded_v1370_present = false;
@ -1554,6 +1567,12 @@ struct scg_cfg_part_scg_r12_s {
// group 3
copy_ptr<scell_group_to_release_list_r15_l> scell_group_to_release_list_scg_r15;
copy_ptr<scell_group_to_add_mod_list_r15_l> scell_group_to_add_mod_list_scg_r15;
// group 4
copy_ptr<meas_cfg_s> meas_cfg_sn_r15;
copy_ptr<tdm_pattern_cfg_r15_c> tdm_pattern_cfg_ne_dc_r15;
// group 5
bool p_max_eutra_r15_present = false;
int8_t p_max_eutra_r15 = -30;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -1677,7 +1696,7 @@ struct rrc_inactive_cfg_r15_s {
bool ran_notif_area_info_r15_present = false;
bool periodic_rnau_timer_r15_present = false;
bool next_hop_chaining_count_r15_present = false;
bool non_crit_ext_present = false;
bool dummy_present = false;
fixed_bitstring<40> full_i_rnti_r15;
fixed_bitstring<24> short_i_rnti_r15;
ran_paging_cycle_r15_e_ ran_paging_cycle_r15;
@ -1732,6 +1751,7 @@ struct rrc_conn_release_v1540_ies_s {
bool wait_time_present = false;
bool non_crit_ext_present = false;
uint8_t wait_time = 1;
rrc_conn_release_v15b0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3161,16 +3181,16 @@ struct other_cfg_r9_s {
};
struct meas_cfg_app_layer_r15_c_ {
struct setup_s_ {
struct service_type_opts {
struct service_type_r15_opts {
enum options { qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<service_type_opts> service_type_e_;
typedef enumerated<service_type_r15_opts> service_type_r15_e_;
// member variables
bounded_octstring<1, 1000> meas_cfg_app_layer_container_r15;
service_type_e_ service_type;
service_type_r15_e_ service_type_r15;
};
typedef setup_e types;

@ -40,8 +40,8 @@ struct scg_cfg_v13c0_ies_s {
void to_json(json_writer& j) const;
};
// SCG-Config-v12x0-IEs ::= SEQUENCE
struct scg_cfg_v12x0_ies_s {
// SCG-Config-v12i0a-IEs ::= SEQUENCE
struct scg_cfg_v12i0a_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
@ -58,7 +58,26 @@ struct scg_cfg_r12_ies_s {
bool scg_radio_cfg_r12_present = false;
bool non_crit_ext_present = false;
scg_cfg_part_scg_r12_s scg_radio_cfg_r12;
scg_cfg_v12x0_ies_s non_crit_ext;
scg_cfg_v12i0a_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;
};
// AS-Config-v1550 ::= SEQUENCE
struct as_cfg_v1550_s {
struct tdm_pattern_cfg_r15_s_ {
sf_assign_r15_e sf_assign_r15;
uint8_t harq_offset_r15 = 0;
};
// member variables
bool tdm_pattern_cfg_r15_present = false;
bool p_max_eutra_r15_present = false;
tdm_pattern_cfg_r15_s_ tdm_pattern_cfg_r15;
int8_t p_max_eutra_r15 = -30;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -81,6 +100,14 @@ struct as_cfg_nr_r15_s {
void to_json(json_writer& j) const;
};
// AS-ConfigNR-v1570 ::= SEQUENCE
struct as_cfg_nr_v1570_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-r12 ::= SEQUENCE
struct scg_cfg_r12_s {
struct crit_exts_c_ {
@ -188,6 +215,10 @@ struct as_cfg_s {
copy_ptr<scg_cfg_r12_s> source_cfg_scg_r12;
// group 3
copy_ptr<as_cfg_nr_r15_s> as_cfg_nr_r15;
// group 4
copy_ptr<as_cfg_v1550_s> as_cfg_v1550;
// group 5
copy_ptr<as_cfg_nr_v1570_s> as_cfg_nr_v1570;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -399,6 +399,81 @@ struct ss_rssi_meas_r15_s {
bool operator!=(const ss_rssi_meas_r15_s& other) const { return not(*this == other); }
};
// SSB-ToMeasure-r15 ::= CHOICE
struct ssb_to_measure_r15_c {
struct types_opts {
enum options { short_bitmap_r15, medium_bitmap_r15, long_bitmap_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ssb_to_measure_r15_c() = default;
ssb_to_measure_r15_c(const ssb_to_measure_r15_c& other);
ssb_to_measure_r15_c& operator=(const ssb_to_measure_r15_c& other);
~ssb_to_measure_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;
bool operator==(const ssb_to_measure_r15_c& other) const;
bool operator!=(const ssb_to_measure_r15_c& other) const { return not(*this == other); }
// getters
fixed_bitstring<4>& short_bitmap_r15()
{
assert_choice_type("shortBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<8>& medium_bitmap_r15()
{
assert_choice_type("mediumBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<64>& long_bitmap_r15()
{
assert_choice_type("longBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<64> >();
}
const fixed_bitstring<4>& short_bitmap_r15() const
{
assert_choice_type("shortBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<8>& medium_bitmap_r15() const
{
assert_choice_type("mediumBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<64>& long_bitmap_r15() const
{
assert_choice_type("longBitmap-r15", type_.to_string(), "SSB-ToMeasure-r15");
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<4>& set_short_bitmap_r15()
{
set(types::short_bitmap_r15);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<8>& set_medium_bitmap_r15()
{
set(types::medium_bitmap_r15);
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<64>& set_long_bitmap_r15()
{
set(types::long_bitmap_r15);
return c.get<fixed_bitstring<64> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<64> > c;
void destroy_();
};
// ThresholdListNR-r15 ::= SEQUENCE
struct thres_list_nr_r15_s {
bool nr_rsrp_r15_present = false;
@ -460,108 +535,6 @@ struct carrier_freq_cdma2000_s {
bool operator!=(const carrier_freq_cdma2000_s& other) const { return not(*this == other); }
};
// WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..32)) OF WLAN-Identifiers-r12
using wlan_id_list_r13_l = dyn_array<wlan_ids_r12_s>;
// RACH-ConfigDedicated ::= SEQUENCE
struct rach_cfg_ded_s {
uint8_t ra_preamb_idx = 0;
uint8_t ra_prach_mask_idx = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-Skip-r14 ::= SEQUENCE
struct rach_skip_r14_s {
struct target_ta_r14_c_ {
struct types_opts {
enum options { ta0_r14, mcg_ptag_r14, scg_ptag_r14, mcg_stag_r14, scg_stag_r14, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
target_ta_r14_c_() = default;
target_ta_r14_c_(const target_ta_r14_c_& other);
target_ta_r14_c_& operator=(const target_ta_r14_c_& other);
~target_ta_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& mcg_stag_r14()
{
assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
uint8_t& scg_stag_r14()
{
assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
const uint8_t& mcg_stag_r14() const
{
assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
const uint8_t& scg_stag_r14() const
{
assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
uint8_t& set_mcg_stag_r14()
{
set(types::mcg_stag_r14);
return c.get<uint8_t>();
}
uint8_t& set_scg_stag_r14()
{
set(types::scg_stag_r14);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct ul_cfg_info_r14_s_ {
struct ul_sched_interv_r14_opts {
enum options { sf2, sf5, sf10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_sched_interv_r14_opts> ul_sched_interv_r14_e_;
// member variables
uint8_t nof_conf_ul_processes_r14 = 1;
ul_sched_interv_r14_e_ ul_sched_interv_r14;
uint8_t ul_start_sf_r14 = 0;
fixed_bitstring<16> ul_grant_r14;
};
// member variables
bool ul_cfg_info_r14_present = false;
target_ta_r14_c_ target_ta_r14;
ul_cfg_info_r14_s_ ul_cfg_info_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasCSI-RS-Config-r12 ::= SEQUENCE
struct meas_csi_rs_cfg_r12_s {
bool ext = false;
@ -785,17 +758,6 @@ struct csg_allowed_report_cells_r9_s {
bool operator!=(const csg_allowed_report_cells_r9_s& other) const { return not(*this == other); }
};
// CarrierFreqGERAN ::= SEQUENCE
struct carrier_freq_geran_s {
uint16_t arfcn = 0;
band_ind_geran_e band_ind;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CellIndexList ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..32)
using cell_idx_list_l = bounded_array<uint8_t, 32>;
@ -1469,17 +1431,6 @@ private:
setup_s_ c;
};
// MobilityControlInfo-v10l0 ::= SEQUENCE
struct mob_ctrl_info_v10l0_s {
bool add_spec_emission_v10l0_present = false;
uint16_t add_spec_emission_v10l0 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdGERAN ::= SEQUENCE
struct pci_geran_s {
fixed_bitstring<3> network_colour_code;
@ -1581,12 +1532,47 @@ struct rs_cfg_ssb_nr_r15_s {
uint8_t to_number() const;
};
typedef enumerated<subcarrier_spacing_ssb_r15_opts> subcarrier_spacing_ssb_r15_e_;
struct ssb_to_measure_r15_c_ {
typedef setup_e types;
// choice methods
ssb_to_measure_r15_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
bool operator==(const ssb_to_measure_r15_c_& other) const;
bool operator!=(const ssb_to_measure_r15_c_& other) const { return not(*this == other); }
// getters
ssb_to_measure_r15_c& setup()
{
assert_choice_type("setup", type_.to_string(), "ssb-ToMeasure-r15");
return c;
}
const ssb_to_measure_r15_c& setup() const
{
assert_choice_type("setup", type_.to_string(), "ssb-ToMeasure-r15");
return c;
}
ssb_to_measure_r15_c& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
ssb_to_measure_r15_c c;
};
// member variables
bool ext = false;
mtc_ssb_nr_r15_s meas_timing_cfg_r15;
subcarrier_spacing_ssb_r15_e_ subcarrier_spacing_ssb_r15;
// ...
// group 0
copy_ptr<ssb_to_measure_r15_c_> ssb_to_measure_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -2014,6 +2000,9 @@ struct wlan_carrier_info_r13_s {
bool operator!=(const wlan_carrier_info_r13_s& other) const { return not(*this == other); }
};
// WLAN-Id-List-r13 ::= SEQUENCE (SIZE (1..32)) OF WLAN-Identifiers-r12
using wlan_id_list_r13_l = dyn_array<wlan_ids_r12_s>;
// WLAN-NameListConfig-r15 ::= CHOICE
struct wlan_name_list_cfg_r15_c {
typedef setup_e types;
@ -2052,20 +2041,6 @@ private:
// WhiteCellsToAddModList-r13 ::= SEQUENCE (SIZE (1..32)) OF WhiteCellsToAddMod-r13
using white_cells_to_add_mod_list_r13_l = dyn_array<white_cells_to_add_mod_r13_s>;
// LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE
struct logged_meas_cfg_v1530_ies_s {
bool bt_name_list_r15_present = false;
bool wlan_name_list_r15_present = false;
bool non_crit_ext_present = false;
bt_name_list_r15_l bt_name_list_r15;
wlan_name_list_r15_l wlan_name_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasGapConfigPerCC-r14 ::= SEQUENCE
struct meas_gap_cfg_per_cc_r14_s {
uint8_t serv_cell_id_r14 = 0;
@ -2582,11 +2557,11 @@ struct eutra_event_s {
};
struct event_h1_r15_s_ {
uint16_t h1_thres_offset_r15 = 0;
uint8_t h1_hysteresis_minus15 = 1;
uint8_t h1_hysteresis_r15 = 1;
};
struct event_h2_r15_s_ {
uint16_t h2_thres_offset_r15 = 0;
uint8_t h2_hysteresis_minus15 = 1;
uint8_t h2_hysteresis_r15 = 1;
};
struct types_opts {
enum options {
@ -3572,17 +3547,6 @@ struct report_cfg_inter_rat_s {
bool operator!=(const report_cfg_inter_rat_s& other) const { return not(*this == other); }
};
// CellGlobalIdEUTRA ::= SEQUENCE
struct cell_global_id_eutra_s {
plmn_id_s plmn_id;
fixed_bitstring<28> cell_id;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasGapConfigToAddModList-r14 ::= SEQUENCE (SIZE (1..32)) OF MeasGapConfigPerCC-r14
using meas_gap_cfg_to_add_mod_list_r14_l = dyn_array<meas_gap_cfg_per_cc_r14_s>;
@ -4133,101 +4097,11 @@ struct report_cfg_to_add_mod_s {
bool operator!=(const report_cfg_to_add_mod_s& other) const { return not(*this == other); }
};
// CarrierBandwidthEUTRA ::= SEQUENCE
struct carrier_bw_eutra_s {
struct dl_bw_opts {
enum options {
n6,
n15,
n25,
n50,
n75,
n100,
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<dl_bw_opts> dl_bw_e_;
struct ul_bw_opts {
enum options {
n6,
n15,
n25,
n50,
n75,
n100,
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<ul_bw_opts> ul_bw_e_;
// member variables
bool ul_bw_present = false;
dl_bw_e_ dl_bw;
ul_bw_e_ ul_bw;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqEUTRA ::= SEQUENCE
struct carrier_freq_eutra_s {
bool ul_carrier_freq_present = false;
uint32_t dl_carrier_freq = 0;
uint32_t ul_carrier_freq = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqEUTRA-v9e0 ::= SEQUENCE
struct carrier_freq_eutra_v9e0_s {
bool ul_carrier_freq_v9e0_present = false;
uint32_t dl_carrier_freq_v9e0 = 0;
uint32_t ul_carrier_freq_v9e0 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasGapConfigDensePRS-r15 ::= CHOICE
struct meas_gap_cfg_dense_prs_r15_c {
struct setup_s_ {
struct gap_offset_dense_prs_r15_c_ {
struct types_opts {
// MeasGapConfigDensePRS-r15 ::= CHOICE
struct meas_gap_cfg_dense_prs_r15_c {
struct setup_s_ {
struct gap_offset_dense_prs_r15_c_ {
struct types_opts {
enum options {
rstd0_r15,
rstd1_r15,
@ -4757,23 +4631,6 @@ struct meas_scale_factor_r12_opts {
};
typedef enumerated<meas_scale_factor_r12_opts> meas_scale_factor_r12_e;
// MobilityControlInfoV2X-r14 ::= SEQUENCE
struct mob_ctrl_info_v2x_r14_s {
bool v2x_comm_tx_pool_exceptional_r14_present = false;
bool v2x_comm_rx_pool_r14_present = false;
bool v2x_comm_sync_cfg_r14_present = false;
bool cbr_mob_tx_cfg_list_r14_present = false;
sl_comm_res_pool_v2x_r14_s v2x_comm_tx_pool_exceptional_r14;
sl_comm_rx_pool_list_v2x_r14_l v2x_comm_rx_pool_r14;
sl_sync_cfg_list_v2x_r14_l v2x_comm_sync_cfg_r14;
sl_cbr_common_tx_cfg_list_r14_s cbr_mob_tx_cfg_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfig ::= SEQUENCE
struct quant_cfg_s {
bool ext = false;
@ -4804,6 +4661,105 @@ struct quant_cfg_s {
bool operator!=(const quant_cfg_s& other) const { return not(*this == other); }
};
// RACH-ConfigDedicated ::= SEQUENCE
struct rach_cfg_ded_s {
uint8_t ra_preamb_idx = 0;
uint8_t ra_prach_mask_idx = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-Skip-r14 ::= SEQUENCE
struct rach_skip_r14_s {
struct target_ta_r14_c_ {
struct types_opts {
enum options { ta0_r14, mcg_ptag_r14, scg_ptag_r14, mcg_stag_r14, scg_stag_r14, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
target_ta_r14_c_() = default;
target_ta_r14_c_(const target_ta_r14_c_& other);
target_ta_r14_c_& operator=(const target_ta_r14_c_& other);
~target_ta_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& mcg_stag_r14()
{
assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
uint8_t& scg_stag_r14()
{
assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
const uint8_t& mcg_stag_r14() const
{
assert_choice_type("mcg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
const uint8_t& scg_stag_r14() const
{
assert_choice_type("scg-STAG-r14", type_.to_string(), "targetTA-r14");
return c.get<uint8_t>();
}
uint8_t& set_mcg_stag_r14()
{
set(types::mcg_stag_r14);
return c.get<uint8_t>();
}
uint8_t& set_scg_stag_r14()
{
set(types::scg_stag_r14);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct ul_cfg_info_r14_s_ {
struct ul_sched_interv_r14_opts {
enum options { sf2, sf5, sf10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_sched_interv_r14_opts> ul_sched_interv_r14_e_;
// member variables
uint8_t nof_conf_ul_processes_r14 = 1;
ul_sched_interv_r14_e_ ul_sched_interv_r14;
uint8_t ul_start_sf_r14 = 0;
fixed_bitstring<16> ul_grant_r14;
};
// member variables
bool ul_cfg_info_r14_present = false;
target_ta_r14_c_ target_ta_r14;
ul_cfg_info_r14_s_ ul_cfg_info_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportConfigToAddModList ::= SEQUENCE (SIZE (1..32)) OF ReportConfigToAddMod
using report_cfg_to_add_mod_list_l = dyn_array<report_cfg_to_add_mod_s>;
@ -4969,6 +4925,160 @@ struct meas_cfg_s {
void to_json(json_writer& j) const;
};
// CarrierFreqGERAN ::= SEQUENCE
struct carrier_freq_geran_s {
uint16_t arfcn = 0;
band_ind_geran_e band_ind;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityControlInfo-v10l0 ::= SEQUENCE
struct mob_ctrl_info_v10l0_s {
bool add_spec_emission_v10l0_present = false;
uint16_t add_spec_emission_v10l0 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-v1530-IEs ::= SEQUENCE
struct logged_meas_cfg_v1530_ies_s {
bool bt_name_list_r15_present = false;
bool wlan_name_list_r15_present = false;
bool non_crit_ext_present = false;
bt_name_list_r15_l bt_name_list_r15;
wlan_name_list_r15_l wlan_name_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CellGlobalIdEUTRA ::= SEQUENCE
struct cell_global_id_eutra_s {
plmn_id_s plmn_id;
fixed_bitstring<28> cell_id;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierBandwidthEUTRA ::= SEQUENCE
struct carrier_bw_eutra_s {
struct dl_bw_opts {
enum options {
n6,
n15,
n25,
n50,
n75,
n100,
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<dl_bw_opts> dl_bw_e_;
struct ul_bw_opts {
enum options {
n6,
n15,
n25,
n50,
n75,
n100,
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<ul_bw_opts> ul_bw_e_;
// member variables
bool ul_bw_present = false;
dl_bw_e_ dl_bw;
ul_bw_e_ ul_bw;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqEUTRA ::= SEQUENCE
struct carrier_freq_eutra_s {
bool ul_carrier_freq_present = false;
uint32_t dl_carrier_freq = 0;
uint32_t ul_carrier_freq = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqEUTRA-v9e0 ::= SEQUENCE
struct carrier_freq_eutra_v9e0_s {
bool ul_carrier_freq_v9e0_present = false;
uint32_t dl_carrier_freq_v9e0 = 0;
uint32_t ul_carrier_freq_v9e0 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityControlInfoV2X-r14 ::= SEQUENCE
struct mob_ctrl_info_v2x_r14_s {
bool v2x_comm_tx_pool_exceptional_r14_present = false;
bool v2x_comm_rx_pool_r14_present = false;
bool v2x_comm_sync_cfg_r14_present = false;
bool cbr_mob_tx_cfg_list_r14_present = false;
sl_comm_res_pool_v2x_r14_s v2x_comm_tx_pool_exceptional_r14;
sl_comm_rx_pool_list_v2x_r14_l v2x_comm_rx_pool_r14;
sl_sync_cfg_list_v2x_r14_l v2x_comm_sync_cfg_r14;
sl_cbr_common_tx_cfg_list_r14_s cbr_mob_tx_cfg_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityControlInfo ::= SEQUENCE
struct mob_ctrl_info_s {
struct t304_opts {
@ -5822,10 +5932,10 @@ struct cgi_info_nr_r15_s {
// member variables
bool ext = false;
bool plmn_id_info_list_r15_present = false;
bool freq_band_list_minus15_present = false;
bool freq_band_list_r15_present = false;
bool no_sib1_r15_present = false;
plmn_id_info_list_nr_r15_l plmn_id_info_list_r15;
multi_freq_band_list_nr_r15_l freq_band_list_minus15;
multi_freq_band_list_nr_r15_l freq_band_list_r15;
no_sib1_r15_s_ no_sib1_r15;
// ...

@ -4419,7 +4419,7 @@ private:
// SPUCCH-Config-r15 ::= CHOICE
struct spucch_cfg_r15_c {
struct setup_s_ {
struct two_ant_port_activ_spucch_format3_r15_s_ {
struct dummy_s_ {
using n3_spucch_an_list_r15_l_ = bounded_array<uint16_t, 4>;
// member variables
@ -4430,7 +4430,7 @@ struct spucch_cfg_r15_c {
bool spucch_set_r15_present = false;
bool two_ant_port_activ_spucch_format1a1b_r15_present = false;
spucch_set_r15_l spucch_set_r15;
two_ant_port_activ_spucch_format3_r15_s_ two_ant_port_activ_spucch_format3_r15;
dummy_s_ dummy;
};
typedef setup_e types;
@ -7170,6 +7170,52 @@ private:
setup_s_ c;
};
// SPUCCH-Config-v1550 ::= CHOICE
struct spucch_cfg_v1550_c {
struct setup_s_ {
struct two_ant_port_activ_spucch_format3_v1550_s_ {
using n3_spucch_an_list_v1550_l_ = bounded_array<uint16_t, 4>;
// member variables
n3_spucch_an_list_v1550_l_ n3_spucch_an_list_v1550;
};
// member variables
two_ant_port_activ_spucch_format3_v1550_s_ two_ant_port_activ_spucch_format3_v1550;
};
typedef setup_e types;
// choice methods
spucch_cfg_v1550_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;
bool operator==(const spucch_cfg_v1550_c& other) const;
bool operator!=(const spucch_cfg_v1550_c& other) const { return not(*this == other); }
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-v1550");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-v1550");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SRS-TPC-PDCCH-Config-r14 ::= CHOICE
struct srs_tpc_pdcch_cfg_r14_c {
struct setup_s_ {
@ -8423,6 +8469,8 @@ struct phys_cfg_ded_s {
copy_ptr<ul_pwr_ctrl_ded_v1530_s> ul_pwr_ctrl_ded_v1530;
copy_ptr<semi_static_cfi_cfg_r15_c_> semi_static_cfi_cfg_r15;
copy_ptr<blind_pdsch_repeat_cfg_r15_c_> blind_pdsch_repeat_cfg_r15;
// group 11
copy_ptr<spucch_cfg_v1550_c> spucch_cfg_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -2027,6 +2027,27 @@ struct wus_cfg_r15_s {
void to_json(json_writer& j) const;
};
// WUS-Config-v1560 ::= SEQUENCE
struct wus_cfg_v1560_s {
struct pwr_boost_r15_opts {
enum options { db0, db1dot8, db3, db4dot8, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<pwr_boost_r15_opts> pwr_boost_r15_e_;
// member variables
pwr_boost_r15_e_ pwr_boost_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonSIB ::= SEQUENCE
struct rr_cfg_common_sib_s {
bool ext = false;
@ -2066,6 +2087,8 @@ struct rr_cfg_common_sib_s {
copy_ptr<high_speed_cfg_v1530_s> high_speed_cfg_v1530;
// group 6
copy_ptr<ul_pwr_ctrl_common_v1530_s> ul_pwr_ctrl_common_v1540;
// group 7
copy_ptr<wus_cfg_v1560_s> wus_cfg_v1560;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -576,27 +576,27 @@ struct lc_ch_cfg_s {
types type_;
setup_e_ c;
};
struct chl_access_prio_r15_c_ {
struct ch_access_prio_r15_c_ {
typedef setup_e types;
// choice methods
chl_access_prio_r15_c_() = default;
ch_access_prio_r15_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
bool operator==(const chl_access_prio_r15_c_& other) const;
bool operator!=(const chl_access_prio_r15_c_& other) const { return not(*this == other); }
bool operator==(const ch_access_prio_r15_c_& other) const;
bool operator!=(const ch_access_prio_r15_c_& other) const { return not(*this == other); }
// getters
uint8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "channellAccessPriority-r15");
assert_choice_type("setup", type_.to_string(), "channelAccessPriority-r15");
return c;
}
const uint8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "channellAccessPriority-r15");
assert_choice_type("setup", type_.to_string(), "channelAccessPriority-r15");
return c;
}
uint8_t& set_setup()
@ -629,7 +629,7 @@ struct lc_ch_cfg_s {
bool lch_cell_restrict_r15_present = false;
copy_ptr<allowed_tti_lens_r15_c_> allowed_tti_lens_r15;
copy_ptr<lc_ch_sr_restrict_r15_c_> lc_ch_sr_restrict_r15;
copy_ptr<chl_access_prio_r15_c_> chl_access_prio_r15;
copy_ptr<ch_access_prio_r15_c_> ch_access_prio_r15;
fixed_bitstring<32> lch_cell_restrict_r15;
// sequence methods
@ -863,7 +863,7 @@ struct crs_assist_info_r13_s {
// CRS-AssistanceInfo-r15 ::= SEQUENCE
struct crs_assist_info_r15_s {
bool crs_intf_mitig_enabled_minus15_present = false;
bool crs_intf_mitig_enabled_r15_present = false;
uint16_t pci_r15 = 0;
// sequence methods
@ -2247,7 +2247,7 @@ struct drb_to_add_mod_s {
// group 4
bool lc_ch_id_r15_present = false;
copy_ptr<rlc_cfg_v1530_c> rlc_cfg_v1530;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_dupl_r15;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_secondary_r15;
uint8_t lc_ch_id_r15 = 32;
// sequence methods
@ -3284,8 +3284,10 @@ struct srb_to_add_mod_s {
bool pdcp_ver_change_r15_present = false;
bool srb_id_v1530_present = false;
copy_ptr<rlc_cfg_v1530_c> rlc_cfg_v1530;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_dupl_r15;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_secondary_r15;
uint8_t srb_id_v1530 = 4;
// group 1
copy_ptr<rlc_cfg_v1510_s> rlc_cfg_v1560;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -4280,12 +4282,12 @@ struct sps_cfg_v1540_s {
void to_json(json_writer& j) const;
};
// SRB-ToAddModExtList-r15 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod
using srb_to_add_mod_ext_list_r15_l = std::array<srb_to_add_mod_s, 1>;
// SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod
using srb_to_add_mod_list_l = dyn_array<srb_to_add_mod_s>;
// SRB-ToAddModListExt-r15 ::= SEQUENCE (SIZE (1)) OF SRB-ToAddMod
using srb_to_add_mod_list_ext_r15_l = std::array<srb_to_add_mod_s, 1>;
// RadioResourceConfigDedicated ::= SEQUENCE
struct rr_cfg_ded_s {
struct mac_main_cfg_c_ {
@ -4326,20 +4328,18 @@ struct rr_cfg_ded_s {
};
struct crs_intf_mitig_cfg_r15_c_ {
struct setup_c_ {
struct crs_intf_mitig_num_prbs_r15_opts {
struct crs_intf_mitig_num_prbs_opts {
enum options { n6, n24, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_intf_mitig_num_prbs_r15_opts> crs_intf_mitig_num_prbs_r15_e_;
typedef enumerated<crs_intf_mitig_num_prbs_opts> crs_intf_mitig_num_prbs_e_;
struct types_opts {
enum options { crs_intf_mitig_enabled_minus15, crs_intf_mitig_num_prbs_r15, nulltype } value;
typedef int8_t number_type;
enum options { crs_intf_mitig_enabled, crs_intf_mitig_num_prbs, nulltype } value;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
@ -4351,25 +4351,25 @@ struct rr_cfg_ded_s {
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15()
crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs()
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "setup");
assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "setup");
return c;
}
const crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15() const
const crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() const
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "setup");
assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "setup");
return c;
}
crs_intf_mitig_num_prbs_r15_e_& set_crs_intf_mitig_num_prbs_r15()
crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs()
{
set(types::crs_intf_mitig_num_prbs_r15);
set(types::crs_intf_mitig_num_prbs);
return c;
}
private:
types type_;
crs_intf_mitig_num_prbs_r15_e_ c;
crs_intf_mitig_num_prbs_e_ c;
};
typedef setup_e types;
@ -4432,9 +4432,9 @@ struct rr_cfg_ded_s {
// group 5
copy_ptr<sps_cfg_v1430_s> sps_cfg_v1430;
// group 6
bool srb_to_release_ext_list_r15_present = false;
copy_ptr<srb_to_add_mod_ext_list_r15_l> srb_to_add_mod_ext_list_r15;
uint8_t srb_to_release_ext_list_r15 = 4;
bool srb_to_release_list_ext_r15_present = false;
copy_ptr<srb_to_add_mod_list_ext_r15_l> srb_to_add_mod_list_ext_r15;
uint8_t srb_to_release_list_ext_r15 = 4;
copy_ptr<sps_cfg_v1530_s> sps_cfg_v1530;
copy_ptr<crs_intf_mitig_cfg_r15_c_> crs_intf_mitig_cfg_r15;
copy_ptr<neigh_cells_crs_info_r15_c> neigh_cells_crs_info_r15;
@ -6123,7 +6123,7 @@ struct phys_cfg_ded_scell_r10_s {
// group 7
copy_ptr<phys_cfg_ded_stti_r15_c> phys_cfg_ded_stti_r15;
copy_ptr<pdsch_cfg_ded_v1530_s> pdsch_cfg_ded_v1530;
copy_ptr<cqi_report_cfg_v1530_s> cqi_report_cfg_v1530;
copy_ptr<cqi_report_cfg_v1530_s> dummy;
copy_ptr<cqi_report_cfg_scell_r15_s> cqi_report_cfg_scell_r15;
copy_ptr<cqi_short_cfg_scell_r15_c> cqi_short_cfg_scell_r15;
copy_ptr<csi_rs_cfg_v1530_s> csi_rs_cfg_v1530;
@ -6132,6 +6132,8 @@ struct phys_cfg_ded_scell_r10_s {
copy_ptr<pusch_cfg_ded_scell_v1530_s> pusch_cfg_ded_v1530;
copy_ptr<semi_static_cfi_cfg_r15_c_> semi_static_cfi_cfg_r15;
copy_ptr<blind_pdsch_repeat_cfg_r15_c_> blind_pdsch_repeat_cfg_r15;
// group 8
copy_ptr<spucch_cfg_v1550_c> spucch_cfg_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -6456,7 +6458,9 @@ struct drb_to_add_mod_scg_r12_s {
bool lc_ch_id_scg_r15_present = false;
uint8_t lc_ch_id_scg_r15 = 32;
copy_ptr<rlc_cfg_v1530_c> rlc_cfg_v1530;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_dupl_r15;
copy_ptr<rlc_bearer_cfg_r15_c> rlc_bearer_cfg_secondary_r15;
// group 2
copy_ptr<rlc_cfg_v1510_s> rlc_cfg_v1560;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -6684,6 +6688,8 @@ struct rr_cfg_ded_scg_r12_s {
// group 1
copy_ptr<srb_to_add_mod_list_l> srb_to_add_mod_list_scg_r15;
copy_ptr<srb_to_release_list_r15_l> srb_to_release_list_scg_r15;
// group 2
copy_ptr<drb_to_release_list_r15_l> drb_to_release_list_scg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -230,20 +230,18 @@ struct sib_type1_v1540_ies_s {
// SystemInformationBlockType1-v1530-IEs ::= SEQUENCE
struct sib_type1_v1530_ies_s {
struct crs_intf_mitig_cfg_r15_c_ {
struct crs_intf_mitig_num_prbs_r15_opts {
struct crs_intf_mitig_num_prbs_opts {
enum options { n6, n24, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_intf_mitig_num_prbs_r15_opts> crs_intf_mitig_num_prbs_r15_e_;
typedef enumerated<crs_intf_mitig_num_prbs_opts> crs_intf_mitig_num_prbs_e_;
struct types_opts {
enum options { crs_intf_mitig_enabled_minus15, crs_intf_mitig_num_prbs_r15, nulltype } value;
typedef int8_t number_type;
enum options { crs_intf_mitig_enabled, crs_intf_mitig_num_prbs, nulltype } value;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
@ -255,25 +253,25 @@ struct sib_type1_v1530_ies_s {
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15()
crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs()
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "crs-IntfMitigConfig-r15");
assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
const crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15() const
const crs_intf_mitig_num_prbs_e_& crs_intf_mitig_num_prbs() const
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "crs-IntfMitigConfig-r15");
assert_choice_type("crs-IntfMitigNumPRBs", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
crs_intf_mitig_num_prbs_r15_e_& set_crs_intf_mitig_num_prbs_r15()
crs_intf_mitig_num_prbs_e_& set_crs_intf_mitig_num_prbs()
{
set(types::crs_intf_mitig_num_prbs_r15);
set(types::crs_intf_mitig_num_prbs);
return c;
}
private:
types type_;
crs_intf_mitig_num_prbs_r15_e_ c;
crs_intf_mitig_num_prbs_e_ c;
};
struct cell_barred_crs_r15_opts {
enum options { barred, not_barred, nulltype } value;
@ -348,6 +346,16 @@ struct cell_sel_info_ce1_v1360_s {
void to_json(json_writer& j) const;
};
// SI-Periodicity-r12 ::= ENUMERATED
struct si_periodicity_r12_opts {
enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<si_periodicity_r12_opts> si_periodicity_r12_e;
// SystemInformationBlockType1-v1450-IEs ::= SEQUENCE
struct sib_type1_v1450_ies_s {
bool tdd_cfg_v1450_present = false;
@ -1165,17 +1173,7 @@ struct ue_timers_and_consts_s {
// SchedulingInfo ::= SEQUENCE
struct sched_info_s {
struct si_periodicity_opts {
enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<si_periodicity_opts> si_periodicity_e_;
// member variables
si_periodicity_e_ si_periodicity;
si_periodicity_r12_e si_periodicity;
sib_map_info_l sib_map_info;
// sequence methods

@ -36,6 +36,18 @@ struct ca_bw_class_r10_opts {
};
typedef enumerated<ca_bw_class_r10_opts, true> ca_bw_class_r10_e;
// UECapabilityEnquiry-v1560-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1560_ies_s {
bool requested_cap_common_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring requested_cap_common_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// BandIndication-r14 ::= SEQUENCE
struct band_ind_r14_s {
bool ca_bw_class_ul_r14_present = false;
@ -49,6 +61,19 @@ struct band_ind_r14_s {
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry-v1550-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1550_ies_s {
bool requested_cap_nr_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring requested_cap_nr_r15;
ue_cap_enquiry_v1560_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;
};
// BandCombination-r14 ::= SEQUENCE (SIZE (1..64)) OF BandIndication-r14
using band_combination_r14_l = dyn_array<band_ind_r14_s>;
@ -57,6 +82,7 @@ struct ue_cap_enquiry_v1530_ies_s {
bool request_stti_spt_cap_r15_present = false;
bool eutra_nr_only_r15_present = false;
bool non_crit_ext_present = false;
ue_cap_enquiry_v1550_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -1121,8 +1147,8 @@ struct mimo_ca_params_per_bo_bc_v1430_s {
void to_json(json_writer& j) const;
};
// RetuningTimeInfo-r14 ::= SEQUENCE
struct retuning_time_info_r14_s {
// SRS-CapabilityPerBandPair-r14 ::= SEQUENCE
struct srs_cap_per_band_pair_r14_s {
struct retuning_info_s_ {
struct rf_retuning_time_dl_r14_opts {
enum options {
@ -1208,16 +1234,16 @@ struct ul_minus256_qam_per_cc_info_r14_s {
// BandParameters-v1430 ::= SEQUENCE
struct band_params_v1430_s {
using ul_minus256_qam_per_cc_info_list_r14_l_ = dyn_array<ul_minus256_qam_per_cc_info_r14_s>;
using retuning_time_info_band_list_r14_l_ = dyn_array<retuning_time_info_r14_s>;
using srs_cap_per_band_pair_list_r14_l_ = dyn_array<srs_cap_per_band_pair_r14_s>;
// member variables
bool band_params_dl_v1430_present = false;
bool ul_minus256_qam_r14_present = false;
bool ul_minus256_qam_per_cc_info_list_r14_present = false;
bool retuning_time_info_band_list_r14_present = false;
bool srs_cap_per_band_pair_list_r14_present = false;
mimo_ca_params_per_bo_bc_v1430_s band_params_dl_v1430;
ul_minus256_qam_per_cc_info_list_r14_l_ ul_minus256_qam_per_cc_info_list_r14;
retuning_time_info_band_list_r14_l_ retuning_time_info_band_list_r14;
srs_cap_per_band_pair_list_r14_l_ srs_cap_per_band_pair_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -1341,6 +1367,45 @@ struct band_combination_params_v1470_s {
void to_json(json_writer& j) const;
};
// SRS-CapabilityPerBandPair-v14b0 ::= SEQUENCE
struct srs_cap_per_band_pair_v14b0_s {
bool srs_flex_timing_r14_present = false;
bool srs_harq_ref_cfg_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v14b0 ::= SEQUENCE
struct band_params_v14b0_s {
using srs_cap_per_band_pair_list_v14b0_l_ = dyn_array<srs_cap_per_band_pair_v14b0_s>;
// member variables
bool srs_cap_per_band_pair_list_v14b0_present = false;
srs_cap_per_band_pair_list_v14b0_l_ srs_cap_per_band_pair_list_v14b0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v14b0 ::= SEQUENCE
struct band_combination_params_v14b0_s {
using band_param_list_v14b0_l_ = dyn_array<band_params_v14b0_s>;
// member variables
bool band_param_list_v14b0_present = false;
band_param_list_v14b0_l_ band_param_list_v14b0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-UL-CCs-r15 ::= SEQUENCE
struct dl_ul_ccs_r15_s {
bool max_num_dl_ccs_r15_present = false;
@ -1636,12 +1701,23 @@ struct feature_set_ul_r15_s {
void to_json(json_writer& j) const;
};
// FeatureSetDL-v1550 ::= SEQUENCE
struct feature_set_dl_v1550_s {
bool dl_minus1024_qam_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// FeatureSetsEUTRA-r15 ::= SEQUENCE
struct feature_sets_eutra_r15_s {
using feature_sets_dl_r15_l_ = dyn_array<feature_set_dl_r15_s>;
using feature_sets_dl_per_cc_r15_l_ = dyn_array<feature_set_dl_per_cc_r15_s>;
using feature_sets_ul_r15_l_ = dyn_array<feature_set_ul_r15_s>;
using feature_sets_ul_per_cc_r15_l_ = dyn_array<feature_set_ul_per_cc_r15_s>;
using feature_sets_dl_v1550_l_ = dyn_array<feature_set_dl_v1550_s>;
// member variables
bool ext = false;
@ -1654,6 +1730,8 @@ struct feature_sets_eutra_r15_s {
feature_sets_ul_r15_l_ feature_sets_ul_r15;
feature_sets_ul_per_cc_r15_l_ feature_sets_ul_per_cc_r15;
// ...
// group 0
copy_ptr<feature_sets_dl_v1550_l_> feature_sets_dl_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3024,6 +3102,30 @@ struct rf_params_v1470_s {
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v14b0 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v14b0
using supported_band_combination_v14b0_l = dyn_array<band_combination_params_v14b0_s>;
// SupportedBandCombinationAdd-v14b0 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v14b0
using supported_band_combination_add_v14b0_l = dyn_array<band_combination_params_v14b0_s>;
// SupportedBandCombinationReduced-v14b0 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v14b0
using supported_band_combination_reduced_v14b0_l = dyn_array<band_combination_params_v14b0_s>;
// RF-Parameters-v14b0 ::= SEQUENCE
struct rf_params_v14b0_s {
bool supported_band_combination_v14b0_present = false;
bool supported_band_combination_add_v14b0_present = false;
bool supported_band_combination_reduced_v14b0_present = false;
supported_band_combination_v14b0_l supported_band_combination_v14b0;
supported_band_combination_add_v14b0_l supported_band_combination_add_v14b0;
supported_band_combination_reduced_v14b0_l supported_band_combination_reduced_v14b0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1530
using supported_band_combination_v1530_l = dyn_array<band_combination_params_v1530_s>;
@ -3209,6 +3311,42 @@ struct sl_params_v1530_s {
void to_json(json_writer& j) const;
};
// NeighCellSI-AcquisitionParameters-v15a0 ::= SEQUENCE
struct neigh_cell_si_acquisition_params_v15a0_s {
bool eutra_cgi_report_nedc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1540 ::= SEQUENCE
struct phy_layer_params_v1540_s {
struct stti_spt_cap_v1540_s_ {};
// member variables
bool stti_spt_cap_v1540_present = false;
bool crs_im_tm1_to_tm9_one_rx_port_v1540_present = false;
bool cch_im_ref_rec_type_a_one_rx_port_v1540_present = false;
stti_spt_cap_v1540_s_ stti_spt_cap_v1540;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1550 ::= SEQUENCE
struct phy_layer_params_v1550_s {
bool dmrs_overhead_reduction_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// EUTRA-5GC-Parameters-r15 ::= SEQUENCE
struct eutra_minus5_gc_params_r15_s {
bool eutra_minus5_gc_r15_present = false;
@ -3225,10 +3363,15 @@ struct eutra_minus5_gc_params_r15_s {
void to_json(json_writer& j) const;
};
// NeighCellSI-AcquisitionParameters-v1530 ::= SEQUENCE
struct neigh_cell_si_acquisition_params_v1530_s {
bool report_cgi_nr_en_dc_r15_present = false;
bool report_cgi_nr_no_en_dc_r15_present = false;
// UE-EUTRA-CapabilityAddXDD-Mode-v15a0 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v15a0_s {
bool phy_layer_params_v1530_present = false;
bool phy_layer_params_v1540_present = false;
bool phy_layer_params_v1550_present = false;
phy_layer_params_v1530_s phy_layer_params_v1530;
phy_layer_params_v1540_s phy_layer_params_v1540;
phy_layer_params_v1550_s phy_layer_params_v1550;
neigh_cell_si_acquisition_params_v15a0_s neigh_cell_si_acquisition_params_v15a0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3236,9 +3379,10 @@ struct neigh_cell_si_acquisition_params_v1530_s {
void to_json(json_writer& j) const;
};
// Other-Parameters-v1540 ::= SEQUENCE
struct other_params_v1540_s {
bool in_dev_coex_ind_endc_r15_present = false;
// IRAT-ParametersNR-v1570 ::= SEQUENCE
struct irat_params_nr_v1570_s {
bool ss_sinr_meas_nr_fr1_r15_present = false;
bool ss_sinr_meas_nr_fr2_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3246,15 +3390,153 @@ struct other_params_v1540_s {
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1540 ::= SEQUENCE
struct phy_layer_params_v1540_s {
struct stti_spt_cap_v1540_s_ {};
// PDCP-ParametersNR-v1560 ::= SEQUENCE
struct pdcp_params_nr_v1560_s {
bool ims_vo_nr_pdcp_scg_ngendc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RF-Parameters-v1570 ::= SEQUENCE
struct rf_params_v1570_s {
struct dl_minus1024_qam_scaling_factor_r15_opts {
enum options { v1, v1dot2, v1dot25, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<dl_minus1024_qam_scaling_factor_r15_opts> dl_minus1024_qam_scaling_factor_r15_e_;
// member variables
bool stti_spt_cap_v1540_present = false;
bool crs_im_tm1_to_tm9_one_rx_port_v1540_present = false;
bool cch_im_ref_rec_type_a_one_rx_port_v1540_present = false;
stti_spt_cap_v1540_s_ stti_spt_cap_v1540;
dl_minus1024_qam_scaling_factor_r15_e_ dl_minus1024_qam_scaling_factor_r15;
uint8_t dl_minus1024_qam_total_weighted_layers_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v15a0-IEs ::= SEQUENCE
struct ue_eutra_cap_v15a0_ies_s {
bool eutra_minus5_gc_params_r15_present = false;
bool fdd_add_ue_eutra_cap_v15a0_present = false;
bool tdd_add_ue_eutra_cap_v15a0_present = false;
bool non_crit_ext_present = false;
neigh_cell_si_acquisition_params_v15a0_s neigh_cell_si_acquisition_params_v15a0;
eutra_minus5_gc_params_r15_s eutra_minus5_gc_params_r15;
ue_eutra_cap_add_xdd_mode_v15a0_s fdd_add_ue_eutra_cap_v15a0;
ue_eutra_cap_add_xdd_mode_v15a0_s tdd_add_ue_eutra_cap_v15a0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersNR-v1560 ::= SEQUENCE
struct irat_params_nr_v1560_s {
bool ng_en_dc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellSI-AcquisitionParameters-v1550 ::= SEQUENCE
struct neigh_cell_si_acquisition_params_v1550_s {
bool eutra_cgi_report_endc_r15_present = false;
bool utra_geran_cgi_report_endc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1570-IEs ::= SEQUENCE
struct ue_eutra_cap_v1570_ies_s {
bool rf_params_v1570_present = false;
bool irat_params_nr_v1570_present = false;
bool non_crit_ext_present = false;
rf_params_v1570_s rf_params_v1570;
irat_params_nr_v1570_s irat_params_nr_v1570;
ue_eutra_cap_v15a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1560 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1560_s {
pdcp_params_nr_v1560_s pdcp_params_nr_v1560;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-v1550 ::= SEQUENCE
struct mac_params_v1550_s {
bool elcid_support_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1560-IEs ::= SEQUENCE
struct ue_eutra_cap_v1560_ies_s {
bool applied_cap_filt_common_r15_present = false;
bool non_crit_ext_present = false;
pdcp_params_nr_v1560_s pdcp_params_nr_v1560;
irat_params_nr_v1560_s irat_params_nr_v1560;
dyn_octstring applied_cap_filt_common_r15;
ue_eutra_cap_add_xdd_mode_v1560_s fdd_add_ue_eutra_cap_v1560;
ue_eutra_cap_add_xdd_mode_v1560_s tdd_add_ue_eutra_cap_v1560;
ue_eutra_cap_v1570_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1550 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1550_s {
bool neigh_cell_si_acquisition_params_v1550_present = false;
neigh_cell_si_acquisition_params_v1550_s neigh_cell_si_acquisition_params_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellSI-AcquisitionParameters-v1530 ::= SEQUENCE
struct neigh_cell_si_acquisition_params_v1530_s {
bool report_cgi_nr_en_dc_r15_present = false;
bool report_cgi_nr_no_en_dc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v1540 ::= SEQUENCE
struct other_params_v1540_s {
bool in_dev_coex_ind_endc_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3275,6 +3557,23 @@ struct sl_params_v1540_s {
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1550-IEs ::= SEQUENCE
struct ue_eutra_cap_v1550_ies_s {
bool neigh_cell_si_acquisition_params_v1550_present = false;
bool non_crit_ext_present = false;
neigh_cell_si_acquisition_params_v1550_s neigh_cell_si_acquisition_params_v1550;
phy_layer_params_v1550_s phy_layer_params_v1550;
mac_params_v1550_s mac_params_v1550;
ue_eutra_cap_add_xdd_mode_v1550_s fdd_add_ue_eutra_cap_v1550;
ue_eutra_cap_add_xdd_mode_v1550_s tdd_add_ue_eutra_cap_v1550;
ue_eutra_cap_v1560_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1540 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1540_s {
bool eutra_minus5_gc_params_r15_present = false;
@ -3367,6 +3666,7 @@ struct ue_eutra_cap_v1540_ies_s {
ue_eutra_cap_add_xdd_mode_v1540_s tdd_add_ue_eutra_cap_v1540;
sl_params_v1540_s sl_params_v1540;
irat_params_nr_v1540_s irat_params_nr_v1540;
ue_eutra_cap_v1550_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3388,8 +3688,8 @@ struct ue_eutra_cap_add_xdd_mode_v1530_s {
// MeasParameters-v1520 ::= SEQUENCE
struct meas_params_v1520_s {
bool meas_gap_patterns_v1520_present = false;
fixed_bitstring<8> meas_gap_patterns_v1520;
bool meas_gap_patterns_r15_present = false;
fixed_bitstring<8> meas_gap_patterns_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3761,6 +4061,16 @@ struct pdcp_params_v1430_s {
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v14a0 ::= SEQUENCE
struct phy_layer_params_v14a0_s {
bool ssp10_tdd_only_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Parameters-v1430 ::= SEQUENCE
struct rlc_params_v1430_s {
bool extended_poll_byte_r14_present = false;
@ -3794,6 +4104,18 @@ struct ue_eutra_cap_v1440_ies_s {
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v14b0-IEs ::= SEQUENCE
struct ue_eutra_cap_v14b0_ies_s {
bool rf_params_v14b0_present = false;
bool non_crit_ext_present = false;
rf_params_v14b0_s rf_params_v14b0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1430 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1430_s {
bool phy_layer_params_v1430_present = false;
@ -3944,6 +4266,18 @@ struct ue_eutra_cap_v1430_ies_s {
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v14a0-IEs ::= SEQUENCE
struct ue_eutra_cap_v14a0_ies_s {
bool non_crit_ext_present = false;
phy_layer_params_v14a0_s phy_layer_params_v14a0;
ue_eutra_cap_v14b0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-v1350 ::= SEQUENCE
struct ce_params_v1350_s {
bool unicast_freq_hop_r13_present = false;
@ -3976,6 +4310,7 @@ struct ue_eutra_cap_v1470_ies_s {
mbms_params_v1470_s mbms_params_v1470;
phy_layer_params_v1470_s phy_layer_params_v1470;
rf_params_v1470_s rf_params_v1470;
ue_eutra_cap_v14a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -4007,8 +4342,8 @@ struct ue_eutra_cap_v1350_ies_s {
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE
struct ue_eutra_cap_v13x0_ies_s {
// UE-EUTRA-Capability-v13e0a-IEs ::= SEQUENCE
struct ue_eutra_cap_v13e0a_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
@ -4062,7 +4397,7 @@ struct ue_eutra_cap_v1390_ies_s {
bool rf_params_v1390_present = false;
bool non_crit_ext_present = false;
rf_params_v1390_s rf_params_v1390;
ue_eutra_cap_v13x0_ies_s non_crit_ext;
ue_eutra_cap_v13e0a_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -182,6 +182,18 @@ private:
void destroy_();
};
// RRCEarlyDataRequest-v1590-IEs ::= SEQUENCE
struct rrc_early_data_request_v1590_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;
};
// ReestabUE-Identity ::= SEQUENCE
struct reestab_ue_id_s {
fixed_bitstring<16> c_rnti;
@ -419,7 +431,7 @@ struct rrc_conn_resume_request_r13_ies_s {
// RRCEarlyDataRequest-r15-IEs ::= SEQUENCE
struct rrc_early_data_request_r15_ies_s {
struct establishment_cause_r15_opts {
enum options { mo_data_r15, delay_tolerant_access_r15, nulltype } value;
enum options { mo_data, delay_tolerant_access, nulltype } value;
std::string to_string() const;
};
@ -430,6 +442,7 @@ struct rrc_early_data_request_r15_ies_s {
s_tmsi_s s_tmsi_r15;
establishment_cause_r15_e_ establishment_cause_r15;
dyn_octstring ded_info_nas_r15;
rrc_early_data_request_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -847,17 +847,6 @@ using affected_carrier_freq_list_v1310_l = dyn_array<affected_carrier_freq_v1310
// DRB-CountInfoListExt-r15 ::= SEQUENCE (SIZE (1..4)) OF DRB-CountInfo
using drb_count_info_list_ext_r15_l = dyn_array<drb_count_info_s>;
// FailureReportSCG-v12d0 ::= SEQUENCE
struct fail_report_scg_v12d0_s {
bool meas_result_neigh_cells_v12d0_present = false;
meas_result_list2_eutra_v9e0_l meas_result_neigh_cells_v12d0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// IDC-SubframePattern-r11 ::= CHOICE
struct idc_sf_pattern_r11_c {
struct sf_pattern_tdd_r11_c_ {
@ -1998,18 +1987,6 @@ struct rstd_inter_freq_info_r10_s {
void to_json(json_writer& j) const;
};
// SCGFailureInformation-v12d0-IEs ::= SEQUENCE
struct scg_fail_info_v12d0_ies_s {
bool fail_report_scg_v12d0_present = false;
bool non_crit_ext_present = false;
fail_report_scg_v12d0_s fail_report_scg_v12d0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CommTxResourceReq-r12 ::= SEQUENCE
struct sl_comm_tx_res_req_r12_s {
bool carrier_freq_r12_present = false;
@ -2230,6 +2207,18 @@ struct mbms_interest_ind_v1310_ies_s {
void to_json(json_writer& j) const;
};
// MeasReportAppLayer-v1590-IEs ::= SEQUENCE
struct meas_report_app_layer_v1590_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;
};
// ProximityIndication-v930-IEs ::= SEQUENCE
struct proximity_ind_v930_ies_s {
bool late_non_crit_ext_present = false;
@ -2583,8 +2572,20 @@ struct registered_mme_s {
void to_json(json_writer& j) const;
};
// SCGFailureInformation-v1310-IEs ::= SEQUENCE
struct scg_fail_info_v1310_ies_s {
// SCGFailureInformation-v12d0a-IEs ::= SEQUENCE
struct scg_fail_info_v12d0a_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;
};
// SCGFailureInformationNR-v1590-IEs ::= SEQUENCE
struct scg_fail_info_nr_v1590_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
@ -2991,19 +2992,20 @@ struct mbms_interest_ind_r11_ies_s {
// MeasReportAppLayer-r15-IEs ::= SEQUENCE
struct meas_report_app_layer_r15_ies_s {
struct service_type_opts {
struct service_type_r15_opts {
enum options { qoe, qoemtsi, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<service_type_opts> service_type_e_;
typedef enumerated<service_type_r15_opts> service_type_r15_e_;
// member variables
bool meas_report_app_layer_container_r15_present = false;
bool service_type_present = false;
bool service_type_r15_present = false;
bool non_crit_ext_present = false;
bounded_octstring<1, 8000> meas_report_app_layer_container_r15;
service_type_e_ service_type;
service_type_r15_e_ service_type_r15;
meas_report_app_layer_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3191,7 +3193,7 @@ struct scg_fail_info_r12_ies_s {
bool fail_report_scg_r12_present = false;
bool non_crit_ext_present = false;
fail_report_scg_r12_s fail_report_scg_r12;
scg_fail_info_v1310_ies_s non_crit_ext;
scg_fail_info_v12d0a_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3204,6 +3206,7 @@ struct scg_fail_info_nr_r15_ies_s {
bool fail_report_scg_nr_r15_present = false;
bool non_crit_ext_present = false;
fail_report_scg_nr_r15_s fail_report_scg_nr_r15;
scg_fail_info_nr_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -134,6 +134,27 @@ struct carrier_freq_nb_r13_s {
void to_json(json_writer& j) const;
};
// CarrierFreq-NB-v1550 ::= SEQUENCE
struct carrier_freq_nb_v1550_s {
struct carrier_freq_offset_v1550_opts {
enum options { v_minus8dot5, v_minus4dot5, v3dot5, v7dot5, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<carrier_freq_offset_v1550_opts> carrier_freq_offset_v1550_e_;
// member variables
carrier_freq_offset_v1550_e_ carrier_freq_offset_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-AM-RLC-NB-r13 ::= SEQUENCE
struct dl_am_rlc_nb_r13_s {
bool enable_status_report_sn_gap_r13_present = false;
@ -478,6 +499,8 @@ struct dl_carrier_cfg_ded_nb_r13_s {
nrs_pwr_offset_non_anchor_v1330_e_ nrs_pwr_offset_non_anchor_v1330;
// group 1
copy_ptr<dl_gap_cfg_nb_v1530_s> dl_gap_non_anchor_v1530;
// group 2
copy_ptr<carrier_freq_nb_v1550_s> dl_carrier_freq_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -1565,6 +1588,8 @@ struct as_cfg_nb_s {
fixed_bitstring<16> source_ue_id_r13;
carrier_freq_nb_r13_s source_dl_carrier_freq_r13;
// ...
// group 0
copy_ptr<carrier_freq_nb_v1550_s> source_dl_carrier_freq_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -2834,6 +2859,35 @@ struct nprach_params_tdd_nb_r15_s {
void to_json(json_writer& j) const;
};
// NPRACH-ParametersTDD-NB-v1550 ::= SEQUENCE
struct nprach_params_tdd_nb_v1550_s {
struct max_num_preamb_attempt_ce_v1550_opts {
enum options { n3, n4, n5, n6, n7, n8, n10, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_preamb_attempt_ce_v1550_opts> max_num_preamb_attempt_ce_v1550_e_;
struct num_repeats_per_preamb_attempt_v1550_opts {
enum options { n1, n2, n4, n8, n16, n32, n64, n128, n256, n512, n1024, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<num_repeats_per_preamb_attempt_v1550_opts> num_repeats_per_preamb_attempt_v1550_e_;
// member variables
max_num_preamb_attempt_ce_v1550_e_ max_num_preamb_attempt_ce_v1550;
num_repeats_per_preamb_attempt_v1550_e_ num_repeats_per_preamb_attempt_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// PagingWeight-NB-r14 ::= ENUMERATED
struct paging_weight_nb_r14_opts {
enum options { w1, w2, w3, w4, w5, w6, w7, w8, w9, w10, w11, w12, w13, w14, w15, w16, nulltype } value;
@ -3097,6 +3151,8 @@ struct dl_carrier_cfg_common_nb_r14_s {
// ...
// group 0
copy_ptr<dl_gap_cfg_nb_v1530_s> dl_gap_non_anchor_v1530;
// group 1
copy_ptr<carrier_freq_nb_v1550_s> dl_carrier_freq_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3134,6 +3190,9 @@ using nprach_params_list_fmt2_nb_r15_l = dyn_array<nprach_params_fmt2_nb_r15_s>;
// NPRACH-ParametersListTDD-NB-r15 ::= SEQUENCE (SIZE (1..3)) OF NPRACH-ParametersTDD-NB-r15
using nprach_params_list_tdd_nb_r15_l = dyn_array<nprach_params_tdd_nb_r15_s>;
// NPRACH-ParametersListTDD-NB-v1550 ::= SEQUENCE (SIZE (1..3)) OF NPRACH-ParametersTDD-NB-v1550
using nprach_params_list_tdd_nb_v1550_l = dyn_array<nprach_params_tdd_nb_v1550_s>;
// PCCH-Config-NB-r14 ::= SEQUENCE
struct pcch_cfg_nb_r14_s {
struct npdcch_num_repeat_paging_r14_opts {
@ -3419,6 +3478,8 @@ struct inter_freq_carrier_freq_info_nb_r13_s {
// group 2
copy_ptr<nsss_rrm_cfg_nb_r15_s> nsss_rrm_cfg_r15;
copy_ptr<inter_freq_neigh_cell_list_nb_v1530_l> inter_freq_neigh_cell_list_v1530;
// group 3
copy_ptr<carrier_freq_nb_v1550_s> dl_carrier_freq_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -3523,18 +3584,18 @@ struct nprach_cfg_sib_nb_v1530_s {
std::string to_string() const;
};
typedef enumerated<nprach_preamb_format_r15_opts> nprach_preamb_format_r15_e_;
struct num_repeats_per_preamb_attempt_r15_opts {
struct dummy_opts {
enum options { n1, n2, n4, n8, n16, n32, n64, n128, n256, n512, n1024, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<num_repeats_per_preamb_attempt_r15_opts> num_repeats_per_preamb_attempt_r15_e_;
typedef enumerated<dummy_opts> dummy_e_;
// member variables
nprach_preamb_format_r15_e_ nprach_preamb_format_r15;
num_repeats_per_preamb_attempt_r15_e_ num_repeats_per_preamb_attempt_r15;
dummy_e_ dummy;
nprach_params_list_tdd_nb_r15_l nprach_params_list_tdd_r15;
};
struct fmt2_params_r15_s_ {
@ -3564,6 +3625,21 @@ struct nprach_cfg_sib_nb_v1530_s {
void to_json(json_writer& j) const;
};
// NPRACH-ConfigSIB-NB-v1550 ::= SEQUENCE
struct nprach_cfg_sib_nb_v1550_s {
struct tdd_params_v1550_s_ {
nprach_params_list_tdd_nb_v1550_l nprach_params_list_tdd_v1550;
};
// member variables
tdd_params_v1550_s_ tdd_params_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE
struct nprach_probability_anchor_nb_r14_s {
struct nprach_probability_anchor_r14_opts {
@ -4120,6 +4196,8 @@ struct rr_cfg_common_sib_nb_r13_s {
copy_ptr<nprach_cfg_sib_nb_v1530_s> nprach_cfg_v1530;
copy_ptr<dl_gap_cfg_nb_v1530_s> dl_gap_v1530;
copy_ptr<wus_cfg_nb_r15_s> wus_cfg_r15;
// group 3
copy_ptr<nprach_cfg_sib_nb_v1550_s> nprach_cfg_v1550;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -5652,6 +5730,18 @@ struct rrc_conn_reest_nb_v1430_ies_s {
void to_json(json_writer& j) const;
};
// RRCEarlyDataComplete-NB-v1590-IEs ::= SEQUENCE
struct rrc_early_data_complete_nb_v1590_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;
};
// RedirectedCarrierInfo-NB-r13 ::= CarrierFreq-NB-r13
typedef carrier_freq_nb_r13_s redirected_carrier_info_nb_r13_s;
@ -5755,6 +5845,7 @@ struct rrc_early_data_complete_nb_r15_ies_s {
uint16_t extended_wait_time_r15 = 1;
redirected_carrier_info_nb_r13_s redirected_carrier_info_r15;
redirected_carrier_info_nb_v1430_s redirected_carrier_info_ext_r15;
rrc_early_data_complete_nb_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -6240,12 +6331,40 @@ struct dl_ccch_msg_nb_s {
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-NB-v15b0-IEs ::= SEQUENCE
struct rrc_conn_release_nb_v15b0_ies_s {
bool no_last_cell_upd_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RedirectedCarrierInfo-NB-v1550 ::= CarrierFreq-NB-v1550
typedef carrier_freq_nb_v1550_s redirected_carrier_info_nb_v1550_s;
// RRCConnectionRelease-NB-v1550-IEs ::= SEQUENCE
struct rrc_conn_release_nb_v1550_ies_s {
bool redirected_carrier_info_v1550_present = false;
bool non_crit_ext_present = false;
redirected_carrier_info_nb_v1550_s redirected_carrier_info_v1550;
rrc_conn_release_nb_v15b0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-NB-v1530-IEs ::= SEQUENCE
struct rrc_conn_release_nb_v1530_ies_s {
bool drb_continue_rohc_r15_present = false;
bool next_hop_chaining_count_r15_present = false;
bool non_crit_ext_present = false;
uint8_t next_hop_chaining_count_r15 = 0;
rrc_conn_release_nb_v1550_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
@ -8234,10 +8353,22 @@ struct rrc_conn_setup_complete_nb_s {
void to_json(json_writer& j) const;
};
// RRCEarlyDataRequest-NB-v1590-IEs ::= SEQUENCE
struct rrc_early_data_request_nb_v1590_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;
};
// RRCEarlyDataRequest-NB-r15-IEs ::= SEQUENCE
struct rrc_early_data_request_nb_r15_ies_s {
struct establishment_cause_r15_opts {
enum options { mo_data_r15, mo_exception_data_r15, delay_tolerant_access_r15, spare1, nulltype } value;
enum options { mo_data, mo_exception_data, delay_tolerant_access, spare1, nulltype } value;
std::string to_string() const;
};
@ -8250,6 +8381,7 @@ struct rrc_early_data_request_nb_r15_ies_s {
establishment_cause_r15_e_ establishment_cause_r15;
cqi_npdcch_nb_r14_e cqi_npdcch_r15;
dyn_octstring ded_info_nas_r15;
rrc_early_data_request_nb_v1590_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;

@ -114,14 +114,9 @@ int8_t sl_tx_pwr_r14_c::types_opts::to_number() const
std::string sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types_opts::to_string() const
{
static const char* options[] = {"crs-IntfMitigEnabled-15", "crs-IntfMitigNumPRBs-r15"};
static const char* options[] = {"crs-IntfMitigEnabled", "crs-IntfMitigNumPRBs"};
return convert_enum_idx(options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types");
}
int8_t sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types_opts::to_number() const
{
static const int8_t options[] = {-15};
return map_enum_number(options, 1, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::types");
}
std::string sl_offset_ind_r12_c::types_opts::to_string() const
{
@ -236,6 +231,12 @@ std::string sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::types_op
return convert_enum_idx(options, 2, value, "sl_inter_freq_info_v2x_r14_s::add_spec_emission_v2x_r14_c_::types");
}
std::string ssb_to_measure_r15_c::types_opts::to_string() const
{
static const char* options[] = {"shortBitmap-r15", "mediumBitmap-r15", "longBitmap-r15"};
return convert_enum_idx(options, 3, value, "ssb_to_measure_r15_c::types");
}
std::string
sib_type1_v1310_ies_s::bw_reduced_access_related_info_r13_s_::fdd_dl_or_tdd_sf_bitmap_br_r13_c_::types_opts::to_string()
const
@ -1063,14 +1064,9 @@ std::string rr_cfg_ded_s::mac_main_cfg_c_::types_opts::to_string() const
std::string rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"crs-IntfMitigEnabled-15", "crs-IntfMitigNumPRBs-r15"};
static const char* options[] = {"crs-IntfMitigEnabled", "crs-IntfMitigNumPRBs"};
return convert_enum_idx(options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types");
}
int8_t rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types_opts::to_number() const
{
static const int8_t options[] = {-15};
return map_enum_number(options, 1, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::types");
}
std::string redirected_carrier_info_r15_ies_c::types_opts::to_string() const
{
@ -1196,100 +1192,6 @@ std::string phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::type
return convert_enum_idx(options, 2, value, "phys_cfg_ded_scell_r10_s::semi_static_cfi_cfg_r15_c_::setup_c_::types");
}
std::string drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types_opts::to_string() const
{
static const char* options[] = {"split-r12", "scg-r12"};
return convert_enum_idx(options, 2, value, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types");
}
std::string ip_address_r13_c::types_opts::to_string() const
{
static const char* options[] = {"ipv4-r13", "ipv6-r13"};
return convert_enum_idx(options, 2, value, "ip_address_r13_c::types");
}
uint8_t ip_address_r13_c::types_opts::to_number() const
{
static const uint8_t options[] = {4, 6};
return map_enum_number(options, 2, value, "ip_address_r13_c::types");
}
std::string security_cfg_ho_v1530_s::handov_type_v1530_c_::types_opts::to_string() const
{
static const char* options[] = {"intra5GC-r15", "fivegc-ToEPC-r15", "epc-To5GC-r15"};
return convert_enum_idx(options, 3, value, "security_cfg_ho_v1530_s::handov_type_v1530_c_::types");
}
std::string rach_skip_r14_s::target_ta_r14_c_::types_opts::to_string() const
{
static const char* options[] = {"ta0-r14", "mcg-PTAG-r14", "scg-PTAG-r14", "mcg-STAG-r14", "scg-STAG-r14"};
return convert_enum_idx(options, 5, value, "rach_skip_r14_s::target_ta_r14_c_::types");
}
uint8_t rach_skip_r14_s::target_ta_r14_c_::types_opts::to_number() const
{
static const uint8_t options[] = {0};
return map_enum_number(options, 1, value, "rach_skip_r14_s::target_ta_r14_c_::types");
}
std::string sl_disc_tx_ref_carrier_ded_r13_c::types_opts::to_string() const
{
static const char* options[] = {"pCell", "sCell"};
return convert_enum_idx(options, 2, value, "sl_disc_tx_ref_carrier_ded_r13_c::types");
}
std::string sl_disc_tx_res_r13_c::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r13", "ue-Selected-r13"};
return convert_enum_idx(options, 2, value, "sl_disc_tx_res_r13_c::setup_c_::types");
}
std::string rclwi_cfg_r13_s::cmd_c_::types_opts::to_string() const
{
static const char* options[] = {"steerToWLAN-r13", "steerToLTE-r13"};
return convert_enum_idx(options, 2, value, "rclwi_cfg_r13_s::cmd_c_::types");
}
std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r14", "ue-Selected-r14"};
return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types");
}
std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-v1530", "ue-Selected-v1530"};
return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types");
}
std::string ran_notif_area_info_r15_c::types_opts::to_string() const
{
static const char* options[] = {"cellList-r15", "ran-AreaConfigList-r15"};
return convert_enum_idx(options, 2, value, "ran_notif_area_info_r15_c::types");
}
std::string sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r12", "ue-Selected-r12"};
return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types");
}
std::string sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-v1310", "ue-Selected-v1310"};
return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types");
}
std::string sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r12", "ue-Selected-r12"};
return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types");
}
std::string sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r13", "ue-Selected-r13"};
return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types");
}
std::string meas_ds_cfg_r12_c::setup_s_::dmtc_period_offset_r12_c_::types_opts::to_string() const
{
static const char* options[] = {"ms40-r12", "ms80-r12", "ms160-r12"};
@ -1434,6 +1336,23 @@ std::string report_cfg_inter_rat_s::trigger_type_c_::types_opts::to_string() con
return convert_enum_idx(options, 2, value, "report_cfg_inter_rat_s::trigger_type_c_::types");
}
std::string drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types_opts::to_string() const
{
static const char* options[] = {"split-r12", "scg-r12"};
return convert_enum_idx(options, 2, value, "drb_to_add_mod_scg_r12_s::drb_type_r12_c_::types");
}
std::string ip_address_r13_c::types_opts::to_string() const
{
static const char* options[] = {"ipv4-r13", "ipv6-r13"};
return convert_enum_idx(options, 2, value, "ip_address_r13_c::types");
}
uint8_t ip_address_r13_c::types_opts::to_number() const
{
static const uint8_t options[] = {4, 6};
return map_enum_number(options, 2, value, "ip_address_r13_c::types");
}
std::string meas_obj_to_add_mod_s::meas_obj_c_::types_opts::to_string() const
{
static const char* options[] = {"measObjectEUTRA",
@ -1472,18 +1391,18 @@ uint16_t meas_obj_to_add_mod_ext_r13_s::meas_obj_r13_c_::types_opts::to_number()
return 0;
}
std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const
{
static const char* options[] = {"fdd-r13", "tdd-r13"};
return convert_enum_idx(options, 2, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types");
}
std::string report_cfg_to_add_mod_s::report_cfg_c_::types_opts::to_string() const
{
static const char* options[] = {"reportConfigEUTRA", "reportConfigInterRAT"};
return convert_enum_idx(options, 2, value, "report_cfg_to_add_mod_s::report_cfg_c_::types");
}
std::string security_cfg_ho_v1530_s::handov_type_v1530_c_::types_opts::to_string() const
{
static const char* options[] = {"intra5GC-r15", "fivegc-ToEPC-r15", "epc-To5GC-r15"};
return convert_enum_idx(options, 3, value, "security_cfg_ho_v1530_s::handov_type_v1530_c_::types");
}
std::string meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::types_opts::to_string() const
{
static const char* options[] = {"rstd0-r15", "rstd1-r15", "rstd2-r15", "rstd3-r15", "rstd4-r15", "rstd5-r15",
@ -1500,6 +1419,83 @@ uint8_t meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::typ
options, 21, value, "meas_gap_cfg_dense_prs_r15_c::setup_s_::gap_offset_dense_prs_r15_c_::types");
}
std::string rach_skip_r14_s::target_ta_r14_c_::types_opts::to_string() const
{
static const char* options[] = {"ta0-r14", "mcg-PTAG-r14", "scg-PTAG-r14", "mcg-STAG-r14", "scg-STAG-r14"};
return convert_enum_idx(options, 5, value, "rach_skip_r14_s::target_ta_r14_c_::types");
}
uint8_t rach_skip_r14_s::target_ta_r14_c_::types_opts::to_number() const
{
static const uint8_t options[] = {0};
return map_enum_number(options, 1, value, "rach_skip_r14_s::target_ta_r14_c_::types");
}
std::string sl_disc_tx_ref_carrier_ded_r13_c::types_opts::to_string() const
{
static const char* options[] = {"pCell", "sCell"};
return convert_enum_idx(options, 2, value, "sl_disc_tx_ref_carrier_ded_r13_c::types");
}
std::string sl_disc_tx_res_r13_c::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r13", "ue-Selected-r13"};
return convert_enum_idx(options, 2, value, "sl_disc_tx_res_r13_c::setup_c_::types");
}
std::string rclwi_cfg_r13_s::cmd_c_::types_opts::to_string() const
{
static const char* options[] = {"steerToWLAN-r13", "steerToLTE-r13"};
return convert_enum_idx(options, 2, value, "rclwi_cfg_r13_s::cmd_c_::types");
}
std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r14", "ue-Selected-r14"};
return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_r14_c_::setup_c_::types");
}
std::string sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-v1530", "ue-Selected-v1530"};
return convert_enum_idx(options, 2, value, "sl_v2x_cfg_ded_r14_s::comm_tx_res_v1530_c_::setup_c_::types");
}
std::string ran_notif_area_info_r15_c::types_opts::to_string() const
{
static const char* options[] = {"cellList-r15", "ran-AreaConfigList-r15"};
return convert_enum_idx(options, 2, value, "ran_notif_area_info_r15_c::types");
}
std::string sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r12", "ue-Selected-r12"};
return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_r12_c_::setup_c_::types");
}
std::string sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-v1310", "ue-Selected-v1310"};
return convert_enum_idx(options, 2, value, "sl_comm_cfg_r12_s::comm_tx_res_v1310_c_::setup_c_::types");
}
std::string sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r12", "ue-Selected-r12"};
return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_r12_c_::setup_c_::types");
}
std::string sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types_opts::to_string() const
{
static const char* options[] = {"scheduled-r13", "ue-Selected-r13"};
return convert_enum_idx(options, 2, value, "sl_disc_cfg_r12_s::disc_tx_res_ps_r13_c_::setup_c_::types");
}
std::string prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types_opts::to_string() const
{
static const char* options[] = {"fdd-r13", "tdd-r13"};
return convert_enum_idx(options, 2, value, "prach_cfg_v1310_s::mpdcch_start_sf_css_ra_r13_c_::types");
}
std::string rrc_conn_release_v920_ies_s::cell_info_list_r9_c_::types_opts::to_string() const
{
static const char* options[] = {"geran-r9", "utra-FDD-r9", "utra-TDD-r9", "utra-TDD-r10"};
@ -4657,6 +4653,40 @@ std::string visited_cell_info_r12_s::visited_cell_id_r12_c_::types_opts::to_stri
return convert_enum_idx(options, 2, value, "visited_cell_info_r12_s::visited_cell_id_r12_c_::types");
}
// FailureReportSCG-v12d0 ::= SEQUENCE
SRSASN_CODE fail_report_scg_v12d0_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(meas_result_neigh_cells_v12d0_present, 1));
if (meas_result_neigh_cells_v12d0_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_v12d0, 1, 8));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE fail_report_scg_v12d0_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(meas_result_neigh_cells_v12d0_present, 1));
if (meas_result_neigh_cells_v12d0_present) {
HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_v12d0, bref, 1, 8));
}
return SRSASN_SUCCESS;
}
void fail_report_scg_v12d0_s::to_json(json_writer& j) const
{
j.start_obj();
if (meas_result_neigh_cells_v12d0_present) {
j.start_array("measResultNeighCells-v12d0");
for (const auto& e1 : meas_result_neigh_cells_v12d0) {
e1.to_json(j);
}
j.end_array();
}
j.end_obj();
}
std::string idc_sf_pattern_r11_c::sf_pattern_tdd_r11_c_::types_opts::to_string() const
{
static const char* options[] = {"subframeConfig0-r11", "subframeConfig1-5-r11", "subframeConfig6-r11"};
@ -4699,6 +4729,44 @@ uint8_t rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types_opts::to_numbe
return map_enum_number(options, 21, value, "rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::types");
}
// SCGFailureInformation-v12d0b-IEs ::= SEQUENCE
SRSASN_CODE scg_fail_info_v12d0b_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(fail_report_scg_v12d0_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (fail_report_scg_v12d0_present) {
HANDLE_CODE(fail_report_scg_v12d0.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_fail_info_v12d0b_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(fail_report_scg_v12d0_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (fail_report_scg_v12d0_present) {
HANDLE_CODE(fail_report_scg_v12d0.unpack(bref));
}
return SRSASN_SUCCESS;
}
void scg_fail_info_v12d0b_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (fail_report_scg_v12d0_present) {
j.write_fieldname("failureReportSCG-v12d0");
fail_report_scg_v12d0.to_json(j);
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
std::string meas_results_s::meas_result_neigh_cells_c_::types_opts::to_string() const
{
static const char* options[] = {"measResultListEUTRA",
@ -5028,12 +5096,304 @@ band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_
options, 3, value, "band_combination_params_v1250_s::dc_support_r12_s_::supported_cell_grouping_r12_c_::types");
}
// MIMO-WeightedLayersCapabilities-r13 ::= SEQUENCE
SRSASN_CODE mimo_weighted_layers_cap_r13_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(rel_weight_four_layers_r13_present, 1));
HANDLE_CODE(bref.pack(rel_weight_eight_layers_r13_present, 1));
HANDLE_CODE(rel_weight_two_layers_r13.pack(bref));
if (rel_weight_four_layers_r13_present) {
HANDLE_CODE(rel_weight_four_layers_r13.pack(bref));
}
if (rel_weight_eight_layers_r13_present) {
HANDLE_CODE(rel_weight_eight_layers_r13.pack(bref));
}
HANDLE_CODE(pack_integer(bref, total_weighted_layers_r13, (uint8_t)2u, (uint8_t)128u));
return SRSASN_SUCCESS;
}
SRSASN_CODE mimo_weighted_layers_cap_r13_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(rel_weight_four_layers_r13_present, 1));
HANDLE_CODE(bref.unpack(rel_weight_eight_layers_r13_present, 1));
HANDLE_CODE(rel_weight_two_layers_r13.unpack(bref));
if (rel_weight_four_layers_r13_present) {
HANDLE_CODE(rel_weight_four_layers_r13.unpack(bref));
}
if (rel_weight_eight_layers_r13_present) {
HANDLE_CODE(rel_weight_eight_layers_r13.unpack(bref));
}
HANDLE_CODE(unpack_integer(total_weighted_layers_r13, bref, (uint8_t)2u, (uint8_t)128u));
return SRSASN_SUCCESS;
}
void mimo_weighted_layers_cap_r13_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("relWeightTwoLayers-r13", rel_weight_two_layers_r13.to_string());
if (rel_weight_four_layers_r13_present) {
j.write_str("relWeightFourLayers-r13", rel_weight_four_layers_r13.to_string());
}
if (rel_weight_eight_layers_r13_present) {
j.write_str("relWeightEightLayers-r13", rel_weight_eight_layers_r13.to_string());
}
j.write_int("totalWeightedLayers-r13", total_weighted_layers_r13);
j.end_obj();
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_string() const
{
static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_");
}
float mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_number() const
{
static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0};
return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_");
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_opts::to_number_string() const
{
static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_two_layers_r13_e_");
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_string() const
{
static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_");
}
float mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_number() const
{
static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0};
return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_");
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_opts::to_number_string() const
{
static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_four_layers_r13_e_");
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_string() const
{
static const char* options[] = {"v1", "v1dot25", "v1dot5", "v1dot75", "v2", "v2dot5", "v3", "v4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_");
}
float mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_number() const
{
static const float options[] = {1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0};
return map_enum_number(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_");
}
std::string mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_opts::to_number_string() const
{
static const char* options[] = {"1", "1.25", "1.5", "1.75", "2", "2.5", "3", "4"};
return convert_enum_idx(options, 8, value, "mimo_weighted_layers_cap_r13_s::rel_weight_eight_layers_r13_e_");
}
// MIMO-UE-Parameters-v13e0 ::= SEQUENCE
SRSASN_CODE mimo_ue_params_v13e0_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(mimo_weighted_layers_cap_r13_present, 1));
if (mimo_weighted_layers_cap_r13_present) {
HANDLE_CODE(mimo_weighted_layers_cap_r13.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE mimo_ue_params_v13e0_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(mimo_weighted_layers_cap_r13_present, 1));
if (mimo_weighted_layers_cap_r13_present) {
HANDLE_CODE(mimo_weighted_layers_cap_r13.unpack(bref));
}
return SRSASN_SUCCESS;
}
void mimo_ue_params_v13e0_s::to_json(json_writer& j) const
{
j.start_obj();
if (mimo_weighted_layers_cap_r13_present) {
j.write_fieldname("mimo-WeightedLayersCapabilities-r13");
mimo_weighted_layers_cap_r13.to_json(j);
}
j.end_obj();
}
// MeasResult3EUTRA-r15 ::= SEQUENCE
SRSASN_CODE meas_result3_eutra_r15_s::pack(bit_ref& bref) const
{
bref.pack(ext, 1);
HANDLE_CODE(bref.pack(meas_result_serving_cell_r15_present, 1));
HANDLE_CODE(bref.pack(meas_result_neigh_cell_list_r15_present, 1));
HANDLE_CODE(pack_integer(bref, carrier_freq_r15, (uint32_t)0u, (uint32_t)262143u));
if (meas_result_serving_cell_r15_present) {
HANDLE_CODE(meas_result_serving_cell_r15.pack(bref));
}
if (meas_result_neigh_cell_list_r15_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cell_list_r15, 1, 8));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE meas_result3_eutra_r15_s::unpack(cbit_ref& bref)
{
bref.unpack(ext, 1);
HANDLE_CODE(bref.unpack(meas_result_serving_cell_r15_present, 1));
HANDLE_CODE(bref.unpack(meas_result_neigh_cell_list_r15_present, 1));
HANDLE_CODE(unpack_integer(carrier_freq_r15, bref, (uint32_t)0u, (uint32_t)262143u));
if (meas_result_serving_cell_r15_present) {
HANDLE_CODE(meas_result_serving_cell_r15.unpack(bref));
}
if (meas_result_neigh_cell_list_r15_present) {
HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cell_list_r15, bref, 1, 8));
}
return SRSASN_SUCCESS;
}
void meas_result3_eutra_r15_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_int("carrierFreq-r15", carrier_freq_r15);
if (meas_result_serving_cell_r15_present) {
j.write_fieldname("measResultServingCell-r15");
meas_result_serving_cell_r15.to_json(j);
}
if (meas_result_neigh_cell_list_r15_present) {
j.start_array("measResultNeighCellList-r15");
for (const auto& e1 : meas_result_neigh_cell_list_r15) {
e1.to_json(j);
}
j.end_array();
}
j.end_obj();
}
// MeasResultSCG-FailureMRDC-r15 ::= SEQUENCE
SRSASN_CODE meas_result_scg_fail_mrdc_r15_s::pack(bit_ref& bref) const
{
bref.pack(ext, 1);
HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_freq_list_eutra_r15, 1, 8));
return SRSASN_SUCCESS;
}
SRSASN_CODE meas_result_scg_fail_mrdc_r15_s::unpack(cbit_ref& bref)
{
bref.unpack(ext, 1);
HANDLE_CODE(unpack_dyn_seq_of(meas_result_freq_list_eutra_r15, bref, 1, 8));
return SRSASN_SUCCESS;
}
void meas_result_scg_fail_mrdc_r15_s::to_json(json_writer& j) const
{
j.start_obj();
j.start_array("measResultFreqListEUTRA-r15");
for (const auto& e1 : meas_result_freq_list_eutra_r15) {
e1.to_json(j);
}
j.end_array();
j.end_obj();
}
// PhyLayerParameters-v13e0 ::= SEQUENCE
SRSASN_CODE phy_layer_params_v13e0_s::pack(bit_ref& bref) const
{
HANDLE_CODE(mimo_ue_params_v13e0.pack(bref));
return SRSASN_SUCCESS;
}
SRSASN_CODE phy_layer_params_v13e0_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(mimo_ue_params_v13e0.unpack(bref));
return SRSASN_SUCCESS;
}
void phy_layer_params_v13e0_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_fieldname("mimo-UE-Parameters-v13e0");
mimo_ue_params_v13e0.to_json(j);
j.end_obj();
}
std::string mbms_params_v1470_s::mbms_max_bw_r14_c_::types_opts::to_string() const
{
static const char* options[] = {"implicitValue", "explicitValue"};
return convert_enum_idx(options, 2, value, "mbms_params_v1470_s::mbms_max_bw_r14_c_::types");
}
// UE-EUTRA-Capability-v13e0b-IEs ::= SEQUENCE
SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
HANDLE_CODE(phy_layer_params_v13e0.pack(bref));
return SRSASN_SUCCESS;
}
SRSASN_CODE ue_eutra_cap_v13e0b_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
HANDLE_CODE(phy_layer_params_v13e0.unpack(bref));
return SRSASN_SUCCESS;
}
void ue_eutra_cap_v13e0b_ies_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_fieldname("phyLayerParameters-v13e0");
phy_layer_params_v13e0.to_json(j);
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// SCG-Config-v12i0b-IEs ::= SEQUENCE
SRSASN_CODE scg_cfg_v12i0b_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(scg_radio_cfg_v12i0_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (scg_radio_cfg_v12i0_present) {
HANDLE_CODE(scg_radio_cfg_v12i0.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_cfg_v12i0b_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(scg_radio_cfg_v12i0_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (scg_radio_cfg_v12i0_present) {
HANDLE_CODE(scg_radio_cfg_v12i0.unpack(bref));
}
return SRSASN_SUCCESS;
}
void scg_cfg_v12i0b_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (scg_radio_cfg_v12i0_present) {
j.write_fieldname("scg-RadioConfig-v12i0");
scg_radio_cfg_v12i0.to_json(j);
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
std::string scg_cfg_r12_s::crit_exts_c_::c1_c_::types_opts::to_string() const
{
static const char* options[] = {

@ -49,6 +49,33 @@ void bcch_bch_msg_s::to_json(json_writer& j) const
j.end_array();
}
// SIB-Type-v12j0 ::= ENUMERATED
std::string sib_type_v12j0_opts::to_string() const
{
static const char* options[] = {"sibType19-v1250",
"sibType20-v1310",
"sibType21-v1430",
"sibType24-v1530",
"sibType25-v1530",
"sibType26-v1530",
"spare10",
"spare9",
"spare8",
"spare7",
"spare6",
"spare5",
"spare4",
"spare3",
"spare2",
"spare1"};
return convert_enum_idx(options, 16, value, "sib_type_v12j0_e");
}
uint8_t sib_type_v12j0_opts::to_number() const
{
static const uint8_t options[] = {19, 20, 21, 24, 25, 26};
return map_enum_number(options, 6, value, "sib_type_v12j0_e");
}
// NS-PmaxValue-v10l0 ::= SEQUENCE
SRSASN_CODE ns_pmax_value_v10l0_s::pack(bit_ref& bref) const
{
@ -143,6 +170,67 @@ void ns_pmax_value_r10_s::to_json(json_writer& j) const
j.end_obj();
}
// SchedulingInfo-v12j0 ::= SEQUENCE
SRSASN_CODE sched_info_v12j0_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(sib_map_info_v12j0_present, 1));
if (sib_map_info_v12j0_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_v12j0, 1, 31));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE sched_info_v12j0_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(sib_map_info_v12j0_present, 1));
if (sib_map_info_v12j0_present) {
HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_v12j0, bref, 1, 31));
}
return SRSASN_SUCCESS;
}
void sched_info_v12j0_s::to_json(json_writer& j) const
{
j.start_obj();
if (sib_map_info_v12j0_present) {
j.start_array("sib-MappingInfo-v12j0");
for (const auto& e1 : sib_map_info_v12j0) {
j.write_str(e1.to_string());
}
j.end_array();
}
j.end_obj();
}
// SchedulingInfoExt-r12 ::= SEQUENCE
SRSASN_CODE sched_info_ext_r12_s::pack(bit_ref& bref) const
{
HANDLE_CODE(si_periodicity_r12.pack(bref));
HANDLE_CODE(pack_dyn_seq_of(bref, sib_map_info_r12, 1, 31));
return SRSASN_SUCCESS;
}
SRSASN_CODE sched_info_ext_r12_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(si_periodicity_r12.unpack(bref));
HANDLE_CODE(unpack_dyn_seq_of(sib_map_info_r12, bref, 1, 31));
return SRSASN_SUCCESS;
}
void sched_info_ext_r12_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("si-Periodicity-r12", si_periodicity_r12.to_string());
j.start_array("sib-MappingInfo-r12");
for (const auto& e1 : sib_map_info_r12) {
j.write_str(e1.to_string());
}
j.end_array();
j.end_obj();
}
// BandClassInfoCDMA2000 ::= SEQUENCE
SRSASN_CODE band_class_info_cdma2000_s::pack(bit_ref& bref) const
{
@ -332,6 +420,39 @@ void multi_band_info_v9e0_s::to_json(json_writer& j) const
j.end_obj();
}
// NS-PmaxValueNR-r15 ::= SEQUENCE
SRSASN_CODE ns_pmax_value_nr_r15_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(add_pmax_nr_r15_present, 1));
if (add_pmax_nr_r15_present) {
HANDLE_CODE(pack_integer(bref, add_pmax_nr_r15, (int8_t)-30, (int8_t)33));
}
HANDLE_CODE(pack_integer(bref, add_spec_emission_nr_r15, (uint8_t)0u, (uint8_t)7u));
return SRSASN_SUCCESS;
}
SRSASN_CODE ns_pmax_value_nr_r15_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(add_pmax_nr_r15_present, 1));
if (add_pmax_nr_r15_present) {
HANDLE_CODE(unpack_integer(add_pmax_nr_r15, bref, (int8_t)-30, (int8_t)33));
}
HANDLE_CODE(unpack_integer(add_spec_emission_nr_r15, bref, (uint8_t)0u, (uint8_t)7u));
return SRSASN_SUCCESS;
}
void ns_pmax_value_nr_r15_s::to_json(json_writer& j) const
{
j.start_obj();
if (add_pmax_nr_r15_present) {
j.write_int("additionalPmaxNR-r15", add_pmax_nr_r15);
}
j.write_int("additionalSpectrumEmissionNR-r15", add_spec_emission_nr_r15);
j.end_obj();
}
// NeighCellCDMA2000-r11 ::= SEQUENCE
SRSASN_CODE neigh_cell_cdma2000_r11_s::pack(bit_ref& bref) const
{
@ -433,6 +554,62 @@ void redist_neigh_cell_r13_s::to_json(json_writer& j) const
j.end_obj();
}
// SystemInformationBlockType1-v12j0-IEs ::= SEQUENCE
SRSASN_CODE sib_type1_v12j0_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(sched_info_list_v12j0_present, 1));
HANDLE_CODE(bref.pack(sched_info_list_ext_r12_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (sched_info_list_v12j0_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_v12j0, 1, 32));
}
if (sched_info_list_ext_r12_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, sched_info_list_ext_r12, 1, 32));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE sib_type1_v12j0_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(sched_info_list_v12j0_present, 1));
HANDLE_CODE(bref.unpack(sched_info_list_ext_r12_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (sched_info_list_v12j0_present) {
HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_v12j0, bref, 1, 32));
}
if (sched_info_list_ext_r12_present) {
HANDLE_CODE(unpack_dyn_seq_of(sched_info_list_ext_r12, bref, 1, 32));
}
return SRSASN_SUCCESS;
}
void sib_type1_v12j0_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (sched_info_list_v12j0_present) {
j.start_array("schedulingInfoList-v12j0");
for (const auto& e1 : sched_info_list_v12j0) {
e1.to_json(j);
}
j.end_array();
}
if (sched_info_list_ext_r12_present) {
j.start_array("schedulingInfoListExt-r12");
for (const auto& e1 : sched_info_list_ext_r12) {
e1.to_json(j);
}
j.end_array();
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// SystemInformationBlockType2-v10n0-IEs ::= SEQUENCE
SRSASN_CODE sib_type2_v10n0_ies_s::pack(bit_ref& bref) const
{
@ -770,39 +947,6 @@ void inter_freq_neigh_cell_info_s::to_json(json_writer& j) const
j.end_obj();
}
// NS-PmaxValueNR-r15 ::= SEQUENCE
SRSASN_CODE ns_pmax_value_nr_r15_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(add_pmax_nr_r15_present, 1));
if (add_pmax_nr_r15_present) {
HANDLE_CODE(pack_integer(bref, add_pmax_nr_r15, (int8_t)-30, (int8_t)33));
}
HANDLE_CODE(pack_integer(bref, add_spec_emission_nr_r15, (uint8_t)0u, (uint8_t)7u));
return SRSASN_SUCCESS;
}
SRSASN_CODE ns_pmax_value_nr_r15_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(add_pmax_nr_r15_present, 1));
if (add_pmax_nr_r15_present) {
HANDLE_CODE(unpack_integer(add_pmax_nr_r15, bref, (int8_t)-30, (int8_t)33));
}
HANDLE_CODE(unpack_integer(add_spec_emission_nr_r15, bref, (uint8_t)0u, (uint8_t)7u));
return SRSASN_SUCCESS;
}
void ns_pmax_value_nr_r15_s::to_json(json_writer& j) const
{
j.start_obj();
if (add_pmax_nr_r15_present) {
j.write_int("additionalPmaxNR-r15", add_pmax_nr_r15);
}
j.write_int("additionalSpectrumEmissionNR-r15", add_spec_emission_nr_r15);
j.end_obj();
}
// PLMN-IdentityInfo2-r12 ::= CHOICE
void plmn_id_info2_r12_c::destroy_()
{
@ -918,6 +1062,48 @@ SRSASN_CODE plmn_id_info2_r12_c::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
// SystemInformationBlockType1-v10x0-IEs ::= SEQUENCE
SRSASN_CODE sib_type1_v10x0_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE sib_type1_v10x0_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void sib_type1_v10x0_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
non_crit_ext.to_json(j);
}
j.end_obj();
}
// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE
SRSASN_CODE sib_type2_v10m0_ies_s::pack(bit_ref& bref) const
{
@ -1610,6 +1796,9 @@ SRSASN_CODE sib_type1_v10l0_ies_s::pack(bit_ref& bref) const
if (multi_band_info_list_v10l0_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, multi_band_info_list_v10l0, 1, 8, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -1625,6 +1814,9 @@ SRSASN_CODE sib_type1_v10l0_ies_s::unpack(cbit_ref& bref)
if (multi_band_info_list_v10l0_present) {
HANDLE_CODE(unpack_dyn_seq_of(multi_band_info_list_v10l0, bref, 1, 8, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -1651,8 +1843,7 @@ void sib_type1_v10l0_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
@ -1826,7 +2017,7 @@ SRSASN_CODE carrier_freq_nr_r15_s::pack(bit_ref& bref) const
HANDLE_CODE(pack_dyn_seq_of(bref, ns_pmax_list_nr_r15, 1, 8));
}
if (q_qual_min_r15_present) {
HANDLE_CODE(pack_integer(bref, q_qual_min_r15, (int8_t)-34, (int8_t)-3));
HANDLE_CODE(pack_integer(bref, q_qual_min_r15, (int8_t)-43, (int8_t)-12));
}
HANDLE_CODE(bref.pack(derive_ssb_idx_from_cell_r15, 1));
if (max_rs_idx_cell_qual_r15_present) {
@ -1836,6 +2027,32 @@ SRSASN_CODE carrier_freq_nr_r15_s::pack(bit_ref& bref) const
HANDLE_CODE(thresh_rs_idx_r15.pack(bref));
}
if (ext) {
ext_groups_packer_guard group_flags;
group_flags[0] |= multi_band_ns_pmax_list_nr_v1550.is_present();
group_flags[0] |= multi_band_ns_pmax_list_nr_sul_v1550.is_present();
group_flags[0] |= ssb_to_measure_r15.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_v1550.is_present(), 1));
HANDLE_CODE(bref.pack(multi_band_ns_pmax_list_nr_sul_v1550.is_present(), 1));
HANDLE_CODE(bref.pack(ssb_to_measure_r15.is_present(), 1));
if (multi_band_ns_pmax_list_nr_v1550.is_present()) {
HANDLE_CODE(
pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_v1550, 1, 31, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) {
HANDLE_CODE(
pack_dyn_seq_of(bref, *multi_band_ns_pmax_list_nr_sul_v1550, 1, 32, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (ssb_to_measure_r15.is_present()) {
HANDLE_CODE(ssb_to_measure_r15->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
SRSASN_CODE carrier_freq_nr_r15_s::unpack(cbit_ref& bref)
@ -1889,7 +2106,7 @@ SRSASN_CODE carrier_freq_nr_r15_s::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_dyn_seq_of(ns_pmax_list_nr_r15, bref, 1, 8));
}
if (q_qual_min_r15_present) {
HANDLE_CODE(unpack_integer(q_qual_min_r15, bref, (int8_t)-34, (int8_t)-3));
HANDLE_CODE(unpack_integer(q_qual_min_r15, bref, (int8_t)-43, (int8_t)-12));
}
HANDLE_CODE(bref.unpack(derive_ssb_idx_from_cell_r15, 1));
if (max_rs_idx_cell_qual_r15_present) {
@ -1899,6 +2116,35 @@ SRSASN_CODE carrier_freq_nr_r15_s::unpack(cbit_ref& bref)
HANDLE_CODE(thresh_rs_idx_r15.unpack(bref));
}
if (ext) {
ext_groups_unpacker_guard group_flags(1);
group_flags.unpack(bref);
if (group_flags[0]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool multi_band_ns_pmax_list_nr_v1550_present;
HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_v1550_present, 1));
multi_band_ns_pmax_list_nr_v1550.set_present(multi_band_ns_pmax_list_nr_v1550_present);
bool multi_band_ns_pmax_list_nr_sul_v1550_present;
HANDLE_CODE(bref.unpack(multi_band_ns_pmax_list_nr_sul_v1550_present, 1));
multi_band_ns_pmax_list_nr_sul_v1550.set_present(multi_band_ns_pmax_list_nr_sul_v1550_present);
bool ssb_to_measure_r15_present;
HANDLE_CODE(bref.unpack(ssb_to_measure_r15_present, 1));
ssb_to_measure_r15.set_present(ssb_to_measure_r15_present);
if (multi_band_ns_pmax_list_nr_v1550.is_present()) {
HANDLE_CODE(
unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_v1550, bref, 1, 31, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) {
HANDLE_CODE(
unpack_dyn_seq_of(*multi_band_ns_pmax_list_nr_sul_v1550, bref, 1, 32, SeqOfPacker<Packer>(1, 8, Packer())));
}
if (ssb_to_measure_r15.is_present()) {
HANDLE_CODE(ssb_to_measure_r15->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
void carrier_freq_nr_r15_s::to_json(json_writer& j) const
@ -1966,6 +2212,34 @@ void carrier_freq_nr_r15_s::to_json(json_writer& j) const
j.write_fieldname("threshRS-Index-r15");
thresh_rs_idx_r15.to_json(j);
}
if (ext) {
if (multi_band_ns_pmax_list_nr_v1550.is_present()) {
j.start_array("multiBandNsPmaxListNR-v1550");
for (const auto& e1 : *multi_band_ns_pmax_list_nr_v1550) {
j.start_array();
for (const auto& e2 : e1) {
e2.to_json(j);
}
j.end_array();
}
j.end_array();
}
if (multi_band_ns_pmax_list_nr_sul_v1550.is_present()) {
j.start_array("multiBandNsPmaxListNR-SUL-v1550");
for (const auto& e1 : *multi_band_ns_pmax_list_nr_sul_v1550) {
j.start_array();
for (const auto& e2 : e1) {
e2.to_json(j);
}
j.end_array();
}
j.end_array();
}
if (ssb_to_measure_r15.is_present()) {
j.write_fieldname("ssb-ToMeasure-r15");
ssb_to_measure_r15->to_json(j);
}
}
j.end_obj();
}
@ -3248,17 +3522,17 @@ uint16_t mbsfn_area_info_r9_s::mcch_cfg_r14_s_::mcch_mod_period_v1430_opts::to_n
std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_string() const
{
static const char* options[] = {"khz-7dot5", "khz-1dot25"};
static const char* options[] = {"kHz7dot5", "kHz1dot25"};
return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_");
}
float mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number() const
{
static const float options[] = {-7.5, -1.25};
static const float options[] = {7.5, 1.25};
return map_enum_number(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_");
}
std::string mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_opts::to_number_string() const
{
static const char* options[] = {"-7.5", "-1.25"};
static const char* options[] = {"7.5", "1.25"};
return convert_enum_idx(options, 2, value, "mbsfn_area_info_r9_s::subcarrier_spacing_mbms_r14_e_");
}
@ -7093,7 +7367,7 @@ SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(sync_freq_list_r15_present, 1));
HANDLE_CODE(bref.pack(slss_tx_multi_freq_r15_present, 1));
HANDLE_CODE(bref.pack(v2x_freq_sel_cfg_list_r15_present, 1));
HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r14_present, 1));
HANDLE_CODE(bref.pack(thresh_s_rssi_cbr_r15_present, 1));
if (v2x_inter_freq_info_list_r15_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, v2x_inter_freq_info_list_r15, 0, 7));
@ -7110,10 +7384,17 @@ SRSASN_CODE sib_type26_r15_s::pack(bit_ref& bref) const
if (v2x_freq_sel_cfg_list_r15_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, v2x_freq_sel_cfg_list_r15, 1, 8));
}
if (thresh_s_rssi_cbr_r14_present) {
HANDLE_CODE(pack_integer(bref, thresh_s_rssi_cbr_r14, (uint8_t)0u, (uint8_t)45u));
if (thresh_s_rssi_cbr_r15_present) {
HANDLE_CODE(pack_integer(bref, thresh_s_rssi_cbr_r15, (uint8_t)0u, (uint8_t)45u));
}
if (ext) {
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
}
return SRSASN_SUCCESS;
}
SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref)
@ -7125,7 +7406,7 @@ SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref)
HANDLE_CODE(bref.unpack(sync_freq_list_r15_present, 1));
HANDLE_CODE(bref.unpack(slss_tx_multi_freq_r15_present, 1));
HANDLE_CODE(bref.unpack(v2x_freq_sel_cfg_list_r15_present, 1));
HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r14_present, 1));
HANDLE_CODE(bref.unpack(thresh_s_rssi_cbr_r15_present, 1));
if (v2x_inter_freq_info_list_r15_present) {
HANDLE_CODE(unpack_dyn_seq_of(v2x_inter_freq_info_list_r15, bref, 0, 7));
@ -7142,10 +7423,17 @@ SRSASN_CODE sib_type26_r15_s::unpack(cbit_ref& bref)
if (v2x_freq_sel_cfg_list_r15_present) {
HANDLE_CODE(unpack_dyn_seq_of(v2x_freq_sel_cfg_list_r15, bref, 1, 8));
}
if (thresh_s_rssi_cbr_r14_present) {
HANDLE_CODE(unpack_integer(thresh_s_rssi_cbr_r14, bref, (uint8_t)0u, (uint8_t)45u));
if (thresh_s_rssi_cbr_r15_present) {
HANDLE_CODE(unpack_integer(thresh_s_rssi_cbr_r15, bref, (uint8_t)0u, (uint8_t)45u));
}
if (ext) {
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
}
return SRSASN_SUCCESS;
}
void sib_type26_r15_s::to_json(json_writer& j) const
@ -7186,8 +7474,13 @@ void sib_type26_r15_s::to_json(json_writer& j) const
}
j.end_array();
}
if (thresh_s_rssi_cbr_r14_present) {
j.write_int("threshS-RSSI-CBR-r14", thresh_s_rssi_cbr_r14);
if (thresh_s_rssi_cbr_r15_present) {
j.write_int("threshS-RSSI-CBR-r15", thresh_s_rssi_cbr_r15);
}
if (ext) {
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
}
j.end_obj();
}

@ -835,6 +835,43 @@ void rrc_conn_setup_v8a0_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// RRCEarlyDataComplete-v1590-IEs ::= SEQUENCE
SRSASN_CODE rrc_early_data_complete_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_early_data_complete_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void rrc_early_data_complete_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// RedirectedCarrierInfo-r15-IEs ::= CHOICE
void redirected_carrier_info_r15_ies_c::destroy_()
{
@ -1202,6 +1239,9 @@ SRSASN_CODE rrc_early_data_complete_r15_ies_s::pack(bit_ref& bref) const
if (redirected_carrier_info_r15_present) {
HANDLE_CODE(redirected_carrier_info_r15.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -1229,6 +1269,9 @@ SRSASN_CODE rrc_early_data_complete_r15_ies_s::unpack(cbit_ref& bref)
if (redirected_carrier_info_r15_present) {
HANDLE_CODE(redirected_carrier_info_r15.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -1255,8 +1298,7 @@ void rrc_early_data_complete_r15_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}

@ -608,6 +608,18 @@ void sl_tx_pool_to_add_mod_r14_s::to_json(json_writer& j) const
j.end_obj();
}
// SubframeAssignment-r15 ::= ENUMERATED
std::string sf_assign_r15_opts::to_string() const
{
static const char* options[] = {"sa0", "sa1", "sa2", "sa3", "sa4", "sa5", "sa6"};
return convert_enum_idx(options, 7, value, "sf_assign_r15_e");
}
uint8_t sf_assign_r15_opts::to_number() const
{
static const uint8_t options[] = {0, 1, 2, 3, 4, 5, 6};
return map_enum_number(options, 7, value, "sf_assign_r15_e");
}
// UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE
SRSASN_CODE ul_pwr_ctrl_common_ps_cell_r12_s::pack(bit_ref& bref) const
{
@ -1565,16 +1577,62 @@ SRSASN_CODE sl_disc_tx_res_r13_c::setup_c_::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
// SubframeAssignment-r15 ::= ENUMERATED
std::string sf_assign_r15_opts::to_string() const
// TDM-PatternConfig-r15 ::= CHOICE
void tdm_pattern_cfg_r15_c::set(types::options e)
{
static const char* options[] = {"sa0", "sa1", "sa2", "sa3", "sa4", "sa5", "sa6"};
return convert_enum_idx(options, 7, value, "sf_assign_r15_e");
type_ = e;
}
uint8_t sf_assign_r15_opts::to_number() const
void tdm_pattern_cfg_r15_c::to_json(json_writer& j) const
{
static const uint8_t options[] = {0, 1, 2, 3, 4, 5, 6};
return map_enum_number(options, 7, value, "sf_assign_r15_e");
j.start_obj();
switch (type_) {
case types::release:
break;
case types::setup:
j.write_fieldname("setup");
j.start_obj();
j.write_str("subframeAssignment-r15", c.sf_assign_r15.to_string());
j.write_int("harq-Offset-r15", c.harq_offset_r15);
j.end_obj();
break;
default:
log_invalid_choice_id(type_, "tdm_pattern_cfg_r15_c");
}
j.end_obj();
}
SRSASN_CODE tdm_pattern_cfg_r15_c::pack(bit_ref& bref) const
{
type_.pack(bref);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(c.sf_assign_r15.pack(bref));
HANDLE_CODE(pack_integer(bref, c.harq_offset_r15, (uint8_t)0u, (uint8_t)9u));
break;
default:
log_invalid_choice_id(type_, "tdm_pattern_cfg_r15_c");
return SRSASN_ERROR_ENCODE_FAIL;
}
return SRSASN_SUCCESS;
}
SRSASN_CODE tdm_pattern_cfg_r15_c::unpack(cbit_ref& bref)
{
types e;
e.unpack(bref);
set(e);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(c.sf_assign_r15.unpack(bref));
HANDLE_CODE(unpack_integer(c.harq_offset_r15, bref, (uint8_t)0u, (uint8_t)9u));
break;
default:
log_invalid_choice_id(type_, "tdm_pattern_cfg_r15_c");
return SRSASN_ERROR_DECODE_FAIL;
}
return SRSASN_SUCCESS;
}
// TunnelConfigLWIP-r13 ::= SEQUENCE
@ -2453,63 +2511,6 @@ SRSASN_CODE rrc_conn_recfg_v1510_ies_s::nr_cfg_r15_c_::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
void rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::set(types::options e)
{
type_ = e;
}
void rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::to_json(json_writer& j) const
{
j.start_obj();
switch (type_) {
case types::release:
break;
case types::setup:
j.write_fieldname("setup");
j.start_obj();
j.write_str("subframeAssignment-r15", c.sf_assign_r15.to_string());
j.write_int("harq-Offset-r15", c.harq_offset_r15);
j.end_obj();
break;
default:
log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_");
}
j.end_obj();
}
SRSASN_CODE rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::pack(bit_ref& bref) const
{
type_.pack(bref);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(c.sf_assign_r15.pack(bref));
HANDLE_CODE(pack_integer(bref, c.harq_offset_r15, (uint8_t)0u, (uint8_t)9u));
break;
default:
log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_");
return SRSASN_ERROR_ENCODE_FAIL;
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_::unpack(cbit_ref& bref)
{
types e;
e.unpack(bref);
set(e);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(c.sf_assign_r15.unpack(bref));
HANDLE_CODE(unpack_integer(c.harq_offset_r15, bref, (uint8_t)0u, (uint8_t)9u));
break;
default:
log_invalid_choice_id(type_, "rrc_conn_recfg_v1510_ies_s::tdm_pattern_cfg_r15_c_");
return SRSASN_ERROR_DECODE_FAIL;
}
return SRSASN_SUCCESS;
}
// SCG-Configuration-v13c0 ::= CHOICE
void scg_cfg_v13c0_c::set(types::options e)
{
@ -3885,6 +3886,35 @@ void rrc_conn_recfg_v1430_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// RRCConnectionRelease-v15b0-IEs ::= SEQUENCE
SRSASN_CODE rrc_conn_release_v15b0_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(no_last_cell_upd_r15_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_conn_release_v15b0_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(no_last_cell_upd_r15_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
return SRSASN_SUCCESS;
}
void rrc_conn_release_v15b0_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (no_last_cell_upd_r15_present) {
j.write_str("noLastCellUpdate-r15", "true");
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// RadioResourceConfigDedicated-v1370 ::= SEQUENCE
SRSASN_CODE rr_cfg_ded_v1370_s::pack(bit_ref& bref) const
{
@ -3950,6 +3980,9 @@ SRSASN_CODE scg_cfg_part_scg_r12_s::pack(bit_ref& bref) const
group_flags[2] |= pscell_to_add_mod_v1440.is_present();
group_flags[3] |= scell_group_to_release_list_scg_r15.is_present();
group_flags[3] |= scell_group_to_add_mod_list_scg_r15.is_present();
group_flags[4] |= meas_cfg_sn_r15.is_present();
group_flags[4] |= tdm_pattern_cfg_ne_dc_r15.is_present();
group_flags[5] |= p_max_eutra_r15_present;
group_flags.pack(bref);
if (group_flags[0]) {
@ -3992,6 +4025,26 @@ SRSASN_CODE scg_cfg_part_scg_r12_s::pack(bit_ref& bref) const
HANDLE_CODE(pack_dyn_seq_of(bref, *scell_group_to_add_mod_list_scg_r15, 1, 4));
}
}
if (group_flags[4]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(meas_cfg_sn_r15.is_present(), 1));
HANDLE_CODE(bref.pack(tdm_pattern_cfg_ne_dc_r15.is_present(), 1));
if (meas_cfg_sn_r15.is_present()) {
HANDLE_CODE(meas_cfg_sn_r15->pack(bref));
}
if (tdm_pattern_cfg_ne_dc_r15.is_present()) {
HANDLE_CODE(tdm_pattern_cfg_ne_dc_r15->pack(bref));
}
}
if (group_flags[5]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(p_max_eutra_r15_present, 1));
if (p_max_eutra_r15_present) {
HANDLE_CODE(pack_integer(bref, p_max_eutra_r15, (int8_t)-30, (int8_t)33));
}
}
}
return SRSASN_SUCCESS;
}
@ -4021,7 +4074,7 @@ SRSASN_CODE scg_cfg_part_scg_r12_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(4);
ext_groups_unpacker_guard group_flags(6);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -4076,6 +4129,30 @@ SRSASN_CODE scg_cfg_part_scg_r12_s::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_dyn_seq_of(*scell_group_to_add_mod_list_scg_r15, bref, 1, 4));
}
}
if (group_flags[4]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool meas_cfg_sn_r15_present;
HANDLE_CODE(bref.unpack(meas_cfg_sn_r15_present, 1));
meas_cfg_sn_r15.set_present(meas_cfg_sn_r15_present);
bool tdm_pattern_cfg_ne_dc_r15_present;
HANDLE_CODE(bref.unpack(tdm_pattern_cfg_ne_dc_r15_present, 1));
tdm_pattern_cfg_ne_dc_r15.set_present(tdm_pattern_cfg_ne_dc_r15_present);
if (meas_cfg_sn_r15.is_present()) {
HANDLE_CODE(meas_cfg_sn_r15->unpack(bref));
}
if (tdm_pattern_cfg_ne_dc_r15.is_present()) {
HANDLE_CODE(tdm_pattern_cfg_ne_dc_r15->unpack(bref));
}
}
if (group_flags[5]) {
varlength_field_unpack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.unpack(p_max_eutra_r15_present, 1));
if (p_max_eutra_r15_present) {
HANDLE_CODE(unpack_integer(p_max_eutra_r15, bref, (int8_t)-30, (int8_t)33));
}
}
}
return SRSASN_SUCCESS;
}
@ -4148,6 +4225,17 @@ void scg_cfg_part_scg_r12_s::to_json(json_writer& j) const
}
j.end_array();
}
if (meas_cfg_sn_r15.is_present()) {
j.write_fieldname("measConfigSN-r15");
meas_cfg_sn_r15->to_json(j);
}
if (tdm_pattern_cfg_ne_dc_r15.is_present()) {
j.write_fieldname("tdm-PatternConfigNE-DC-r15");
tdm_pattern_cfg_ne_dc_r15->to_json(j);
}
if (p_max_eutra_r15_present) {
j.write_int("p-MaxEUTRA-r15", p_max_eutra_r15);
}
}
j.end_obj();
}
@ -4357,7 +4445,7 @@ SRSASN_CODE rrc_inactive_cfg_r15_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(ran_notif_area_info_r15_present, 1));
HANDLE_CODE(bref.pack(periodic_rnau_timer_r15_present, 1));
HANDLE_CODE(bref.pack(next_hop_chaining_count_r15_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(dummy_present, 1));
HANDLE_CODE(full_i_rnti_r15.pack(bref));
HANDLE_CODE(short_i_rnti_r15.pack(bref));
@ -4382,7 +4470,7 @@ SRSASN_CODE rrc_inactive_cfg_r15_s::unpack(cbit_ref& bref)
HANDLE_CODE(bref.unpack(ran_notif_area_info_r15_present, 1));
HANDLE_CODE(bref.unpack(periodic_rnau_timer_r15_present, 1));
HANDLE_CODE(bref.unpack(next_hop_chaining_count_r15_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(dummy_present, 1));
HANDLE_CODE(full_i_rnti_r15.unpack(bref));
HANDLE_CODE(short_i_rnti_r15.unpack(bref));
@ -4419,8 +4507,8 @@ void rrc_inactive_cfg_r15_s::to_json(json_writer& j) const
if (next_hop_chaining_count_r15_present) {
j.write_int("nextHopChainingCount-r15", next_hop_chaining_count_r15);
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
if (dummy_present) {
j.write_fieldname("dummy");
j.start_obj();
j.end_obj();
}
@ -4613,6 +4701,9 @@ SRSASN_CODE rrc_conn_release_v1540_ies_s::pack(bit_ref& bref) const
if (wait_time_present) {
HANDLE_CODE(pack_integer(bref, wait_time, (uint8_t)1u, (uint8_t)16u));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -4624,6 +4715,9 @@ SRSASN_CODE rrc_conn_release_v1540_ies_s::unpack(cbit_ref& bref)
if (wait_time_present) {
HANDLE_CODE(unpack_integer(wait_time, bref, (uint8_t)1u, (uint8_t)16u));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -4635,8 +4729,7 @@ void rrc_conn_release_v1540_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
@ -8073,7 +8166,7 @@ void other_cfg_r9_s::meas_cfg_app_layer_r15_c_::to_json(json_writer& j) const
j.write_fieldname("setup");
j.start_obj();
j.write_str("measConfigAppLayerContainer-r15", c.meas_cfg_app_layer_container_r15.to_string());
j.write_str("serviceType", c.service_type.to_string());
j.write_str("serviceType-r15", c.service_type_r15.to_string());
j.end_obj();
break;
default:
@ -8089,7 +8182,7 @@ SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::pack(bit_ref& bref) const
break;
case types::setup:
HANDLE_CODE(c.meas_cfg_app_layer_container_r15.pack(bref));
HANDLE_CODE(c.service_type.pack(bref));
HANDLE_CODE(c.service_type_r15.pack(bref));
break;
default:
log_invalid_choice_id(type_, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_");
@ -8107,7 +8200,7 @@ SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::unpack(cbit_ref& bref)
break;
case types::setup:
HANDLE_CODE(c.meas_cfg_app_layer_container_r15.unpack(bref));
HANDLE_CODE(c.service_type.unpack(bref));
HANDLE_CODE(c.service_type_r15.unpack(bref));
break;
default:
log_invalid_choice_id(type_, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_");
@ -8116,10 +8209,11 @@ SRSASN_CODE other_cfg_r9_s::meas_cfg_app_layer_r15_c_::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
std::string other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_opts::to_string() const
std::string other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_r15_opts::to_string() const
{
static const char* options[] = {"qoe", "qoemtsi", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"};
return convert_enum_idx(options, 8, value, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_e_");
return convert_enum_idx(
options, 8, value, "other_cfg_r9_s::meas_cfg_app_layer_r15_c_::setup_s_::service_type_r15_e_");
}
// RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE

@ -58,8 +58,8 @@ void scg_cfg_v13c0_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// SCG-Config-v12x0-IEs ::= SEQUENCE
SRSASN_CODE scg_cfg_v12x0_ies_s::pack(bit_ref& bref) const
// SCG-Config-v12i0a-IEs ::= SEQUENCE
SRSASN_CODE scg_cfg_v12i0a_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
@ -73,7 +73,7 @@ SRSASN_CODE scg_cfg_v12x0_ies_s::pack(bit_ref& bref) const
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_cfg_v12x0_ies_s::unpack(cbit_ref& bref)
SRSASN_CODE scg_cfg_v12i0a_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
@ -87,7 +87,7 @@ SRSASN_CODE scg_cfg_v12x0_ies_s::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
void scg_cfg_v12x0_ies_s::to_json(json_writer& j) const
void scg_cfg_v12i0a_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
@ -143,6 +143,53 @@ void scg_cfg_r12_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// AS-Config-v1550 ::= SEQUENCE
SRSASN_CODE as_cfg_v1550_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(tdm_pattern_cfg_r15_present, 1));
HANDLE_CODE(bref.pack(p_max_eutra_r15_present, 1));
if (tdm_pattern_cfg_r15_present) {
HANDLE_CODE(tdm_pattern_cfg_r15.sf_assign_r15.pack(bref));
HANDLE_CODE(pack_integer(bref, tdm_pattern_cfg_r15.harq_offset_r15, (uint8_t)0u, (uint8_t)9u));
}
if (p_max_eutra_r15_present) {
HANDLE_CODE(pack_integer(bref, p_max_eutra_r15, (int8_t)-30, (int8_t)33));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE as_cfg_v1550_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(tdm_pattern_cfg_r15_present, 1));
HANDLE_CODE(bref.unpack(p_max_eutra_r15_present, 1));
if (tdm_pattern_cfg_r15_present) {
HANDLE_CODE(tdm_pattern_cfg_r15.sf_assign_r15.unpack(bref));
HANDLE_CODE(unpack_integer(tdm_pattern_cfg_r15.harq_offset_r15, bref, (uint8_t)0u, (uint8_t)9u));
}
if (p_max_eutra_r15_present) {
HANDLE_CODE(unpack_integer(p_max_eutra_r15, bref, (int8_t)-30, (int8_t)33));
}
return SRSASN_SUCCESS;
}
void as_cfg_v1550_s::to_json(json_writer& j) const
{
j.start_obj();
if (tdm_pattern_cfg_r15_present) {
j.write_fieldname("tdm-PatternConfig-r15");
j.start_obj();
j.write_str("subframeAssignment-r15", tdm_pattern_cfg_r15.sf_assign_r15.to_string());
j.write_int("harq-Offset-r15", tdm_pattern_cfg_r15.harq_offset_r15);
j.end_obj();
}
if (p_max_eutra_r15_present) {
j.write_int("p-MaxEUTRA-r15", p_max_eutra_r15);
}
j.end_obj();
}
// AS-ConfigNR-r15 ::= SEQUENCE
SRSASN_CODE as_cfg_nr_r15_s::pack(bit_ref& bref) const
{
@ -195,6 +242,22 @@ void as_cfg_nr_r15_s::to_json(json_writer& j) const
j.end_obj();
}
// AS-ConfigNR-v1570 ::= SEQUENCE
SRSASN_CODE as_cfg_nr_v1570_s::pack(bit_ref& bref) const
{
return SRSASN_SUCCESS;
}
SRSASN_CODE as_cfg_nr_v1570_s::unpack(cbit_ref& bref)
{
return SRSASN_SUCCESS;
}
void as_cfg_nr_v1570_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("sourceSCG-ConfiguredNR-r15", "true");
j.end_obj();
}
// SCG-Config-r12 ::= SEQUENCE
SRSASN_CODE scg_cfg_r12_s::pack(bit_ref& bref) const
{
@ -434,6 +497,8 @@ SRSASN_CODE as_cfg_s::pack(bit_ref& bref) const
group_flags[1] |= source_scell_cfg_list_r10.is_present();
group_flags[2] |= source_cfg_scg_r12.is_present();
group_flags[3] |= as_cfg_nr_r15.is_present();
group_flags[4] |= as_cfg_v1550.is_present();
group_flags[5] |= as_cfg_nr_v1570.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -469,6 +534,22 @@ SRSASN_CODE as_cfg_s::pack(bit_ref& bref) const
HANDLE_CODE(as_cfg_nr_r15->pack(bref));
}
}
if (group_flags[4]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(as_cfg_v1550.is_present(), 1));
if (as_cfg_v1550.is_present()) {
HANDLE_CODE(as_cfg_v1550->pack(bref));
}
}
if (group_flags[5]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(as_cfg_nr_v1570.is_present(), 1));
if (as_cfg_nr_v1570.is_present()) {
HANDLE_CODE(as_cfg_nr_v1570->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -486,7 +567,7 @@ SRSASN_CODE as_cfg_s::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_integer(source_dl_carrier_freq, bref, (uint32_t)0u, (uint32_t)65535u));
if (ext) {
ext_groups_unpacker_guard group_flags(4);
ext_groups_unpacker_guard group_flags(6);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -528,6 +609,26 @@ SRSASN_CODE as_cfg_s::unpack(cbit_ref& bref)
HANDLE_CODE(as_cfg_nr_r15->unpack(bref));
}
}
if (group_flags[4]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool as_cfg_v1550_present;
HANDLE_CODE(bref.unpack(as_cfg_v1550_present, 1));
as_cfg_v1550.set_present(as_cfg_v1550_present);
if (as_cfg_v1550.is_present()) {
HANDLE_CODE(as_cfg_v1550->unpack(bref));
}
}
if (group_flags[5]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool as_cfg_nr_v1570_present;
HANDLE_CODE(bref.unpack(as_cfg_nr_v1570_present, 1));
as_cfg_nr_v1570.set_present(as_cfg_nr_v1570_present);
if (as_cfg_nr_v1570.is_present()) {
HANDLE_CODE(as_cfg_nr_v1570->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -571,6 +672,14 @@ void as_cfg_s::to_json(json_writer& j) const
j.write_fieldname("as-ConfigNR-r15");
as_cfg_nr_r15->to_json(j);
}
if (as_cfg_v1550.is_present()) {
j.write_fieldname("as-Config-v1550");
as_cfg_v1550->to_json(j);
}
if (as_cfg_nr_v1570.is_present()) {
j.write_fieldname("as-ConfigNR-v1570");
as_cfg_nr_v1570->to_json(j);
}
}
j.end_obj();
}

File diff suppressed because it is too large Load Diff

@ -9777,10 +9777,10 @@ void spucch_cfg_r15_c::to_json(json_writer& j) const
if (c.two_ant_port_activ_spucch_format1a1b_r15_present) {
j.write_str("twoAntennaPortActivatedSPUCCH-Format1a1b-r15", "true");
}
j.write_fieldname("twoAntennaPortActivatedSPUCCH-Format3-r15");
j.write_fieldname("dummy");
j.start_obj();
j.start_array("n3SPUCCH-AN-List-r15");
for (const auto& e1 : c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15) {
for (const auto& e1 : c.dummy.n3_spucch_an_list_r15) {
j.write_int(e1);
}
j.end_array();
@ -9804,8 +9804,7 @@ SRSASN_CODE spucch_cfg_r15_c::pack(bit_ref& bref) const
if (c.spucch_set_r15_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, c.spucch_set_r15, 1, 4));
}
HANDLE_CODE(pack_dyn_seq_of(
bref, c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15, 1, 4, integer_packer<uint16_t>(0, 549)));
HANDLE_CODE(pack_dyn_seq_of(bref, c.dummy.n3_spucch_an_list_r15, 1, 4, integer_packer<uint16_t>(0, 549)));
break;
default:
log_invalid_choice_id(type_, "spucch_cfg_r15_c");
@ -9827,8 +9826,7 @@ SRSASN_CODE spucch_cfg_r15_c::unpack(cbit_ref& bref)
if (c.spucch_set_r15_present) {
HANDLE_CODE(unpack_dyn_seq_of(c.spucch_set_r15, bref, 1, 4));
}
HANDLE_CODE(unpack_dyn_seq_of(
c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15, bref, 1, 4, integer_packer<uint16_t>(0, 549)));
HANDLE_CODE(unpack_dyn_seq_of(c.dummy.n3_spucch_an_list_r15, bref, 1, 4, integer_packer<uint16_t>(0, 549)));
break;
default:
log_invalid_choice_id(type_, "spucch_cfg_r15_c");
@ -9842,8 +9840,7 @@ bool spucch_cfg_r15_c::operator==(const spucch_cfg_r15_c& other) const
(not c.spucch_set_r15_present or c.spucch_set_r15 == other.c.spucch_set_r15) and
c.two_ant_port_activ_spucch_format1a1b_r15_present ==
other.c.two_ant_port_activ_spucch_format1a1b_r15_present and
c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15 ==
other.c.two_ant_port_activ_spucch_format3_r15.n3_spucch_an_list_r15;
c.dummy.n3_spucch_an_list_r15 == other.c.dummy.n3_spucch_an_list_r15;
}
// SRS-CC-SetIndex-r14 ::= SEQUENCE
@ -15742,6 +15739,81 @@ bool phys_cfg_ded_stti_r15_c::operator==(const phys_cfg_ded_stti_r15_c& other) c
(not c.short_tti_r15_present or c.short_tti_r15 == other.c.short_tti_r15);
}
// SPUCCH-Config-v1550 ::= CHOICE
void spucch_cfg_v1550_c::set(types::options e)
{
type_ = e;
}
void spucch_cfg_v1550_c::to_json(json_writer& j) const
{
j.start_obj();
switch (type_) {
case types::release:
break;
case types::setup:
j.write_fieldname("setup");
j.start_obj();
j.write_fieldname("twoAntennaPortActivatedSPUCCH-Format3-v1550");
j.start_obj();
j.start_array("n3SPUCCH-AN-List-v1550");
for (const auto& e1 : c.two_ant_port_activ_spucch_format3_v1550.n3_spucch_an_list_v1550) {
j.write_int(e1);
}
j.end_array();
j.end_obj();
j.end_obj();
break;
default:
log_invalid_choice_id(type_, "spucch_cfg_v1550_c");
}
j.end_obj();
}
SRSASN_CODE spucch_cfg_v1550_c::pack(bit_ref& bref) const
{
type_.pack(bref);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(pack_dyn_seq_of(bref,
c.two_ant_port_activ_spucch_format3_v1550.n3_spucch_an_list_v1550,
1,
4,
integer_packer<uint16_t>(0, 549)));
break;
default:
log_invalid_choice_id(type_, "spucch_cfg_v1550_c");
return SRSASN_ERROR_ENCODE_FAIL;
}
return SRSASN_SUCCESS;
}
SRSASN_CODE spucch_cfg_v1550_c::unpack(cbit_ref& bref)
{
types e;
e.unpack(bref);
set(e);
switch (type_) {
case types::release:
break;
case types::setup:
HANDLE_CODE(unpack_dyn_seq_of(c.two_ant_port_activ_spucch_format3_v1550.n3_spucch_an_list_v1550,
bref,
1,
4,
integer_packer<uint16_t>(0, 549)));
break;
default:
log_invalid_choice_id(type_, "spucch_cfg_v1550_c");
return SRSASN_ERROR_DECODE_FAIL;
}
return SRSASN_SUCCESS;
}
bool spucch_cfg_v1550_c::operator==(const spucch_cfg_v1550_c& other) const
{
return type() == other.type() and c.two_ant_port_activ_spucch_format3_v1550.n3_spucch_an_list_v1550 ==
other.c.two_ant_port_activ_spucch_format3_v1550.n3_spucch_an_list_v1550;
}
// SRS-TPC-PDCCH-Config-r14 ::= CHOICE
void srs_tpc_pdcch_cfg_r14_c::set(types::options e)
{
@ -17257,6 +17329,7 @@ SRSASN_CODE phys_cfg_ded_s::pack(bit_ref& bref) const
group_flags[10] |= ul_pwr_ctrl_ded_v1530.is_present();
group_flags[10] |= semi_static_cfi_cfg_r15.is_present();
group_flags[10] |= blind_pdsch_repeat_cfg_r15.is_present();
group_flags[11] |= spucch_cfg_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -17593,6 +17666,14 @@ SRSASN_CODE phys_cfg_ded_s::pack(bit_ref& bref) const
HANDLE_CODE(blind_pdsch_repeat_cfg_r15->pack(bref));
}
}
if (group_flags[11]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(spucch_cfg_v1550.is_present(), 1));
if (spucch_cfg_v1550.is_present()) {
HANDLE_CODE(spucch_cfg_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -17642,7 +17723,7 @@ SRSASN_CODE phys_cfg_ded_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(11);
ext_groups_unpacker_guard group_flags(12);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -18119,6 +18200,16 @@ SRSASN_CODE phys_cfg_ded_s::unpack(cbit_ref& bref)
HANDLE_CODE(blind_pdsch_repeat_cfg_r15->unpack(bref));
}
}
if (group_flags[11]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool spucch_cfg_v1550_present;
HANDLE_CODE(bref.unpack(spucch_cfg_v1550_present, 1));
spucch_cfg_v1550.set_present(spucch_cfg_v1550_present);
if (spucch_cfg_v1550.is_present()) {
HANDLE_CODE(spucch_cfg_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -18485,6 +18576,10 @@ void phys_cfg_ded_s::to_json(json_writer& j) const
j.write_fieldname("blindPDSCH-Repetition-Config-r15");
blind_pdsch_repeat_cfg_r15->to_json(j);
}
if (spucch_cfg_v1550.is_present()) {
j.write_fieldname("spucch-Config-v1550");
spucch_cfg_v1550->to_json(j);
}
}
j.end_obj();
}

@ -3624,6 +3624,42 @@ uint16_t wus_cfg_r15_s::time_offset_e_drx_long_r15_opts::to_number() const
return map_enum_number(options, 2, value, "wus_cfg_r15_s::time_offset_e_drx_long_r15_e_");
}
// WUS-Config-v1560 ::= SEQUENCE
SRSASN_CODE wus_cfg_v1560_s::pack(bit_ref& bref) const
{
HANDLE_CODE(pwr_boost_r15.pack(bref));
return SRSASN_SUCCESS;
}
SRSASN_CODE wus_cfg_v1560_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(pwr_boost_r15.unpack(bref));
return SRSASN_SUCCESS;
}
void wus_cfg_v1560_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("powerBoost-r15", pwr_boost_r15.to_string());
j.end_obj();
}
std::string wus_cfg_v1560_s::pwr_boost_r15_opts::to_string() const
{
static const char* options[] = {"dB0", "dB1dot8", "dB3", "dB4dot8"};
return convert_enum_idx(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_");
}
float wus_cfg_v1560_s::pwr_boost_r15_opts::to_number() const
{
static const float options[] = {0.0, 1.8, 3.0, 4.8};
return map_enum_number(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_");
}
std::string wus_cfg_v1560_s::pwr_boost_r15_opts::to_number_string() const
{
static const char* options[] = {"0", "1.8", "3", "4.8"};
return convert_enum_idx(options, 4, value, "wus_cfg_v1560_s::pwr_boost_r15_e_");
}
// RadioResourceConfigCommonSIB ::= SEQUENCE
SRSASN_CODE rr_cfg_common_sib_s::pack(bit_ref& bref) const
{
@ -3659,6 +3695,7 @@ SRSASN_CODE rr_cfg_common_sib_s::pack(bit_ref& bref) const
group_flags[5] |= wus_cfg_r15.is_present();
group_flags[5] |= high_speed_cfg_v1530.is_present();
group_flags[6] |= ul_pwr_ctrl_common_v1540.is_present();
group_flags[7] |= wus_cfg_v1560.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -3761,6 +3798,14 @@ SRSASN_CODE rr_cfg_common_sib_s::pack(bit_ref& bref) const
HANDLE_CODE(ul_pwr_ctrl_common_v1540->pack(bref));
}
}
if (group_flags[7]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(wus_cfg_v1560.is_present(), 1));
if (wus_cfg_v1560.is_present()) {
HANDLE_CODE(wus_cfg_v1560->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -3779,7 +3824,7 @@ SRSASN_CODE rr_cfg_common_sib_s::unpack(cbit_ref& bref)
HANDLE_CODE(ul_cp_len.unpack(bref));
if (ext) {
ext_groups_unpacker_guard group_flags(7);
ext_groups_unpacker_guard group_flags(8);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -3918,6 +3963,16 @@ SRSASN_CODE rr_cfg_common_sib_s::unpack(cbit_ref& bref)
HANDLE_CODE(ul_pwr_ctrl_common_v1540->unpack(bref));
}
}
if (group_flags[7]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool wus_cfg_v1560_present;
HANDLE_CODE(bref.unpack(wus_cfg_v1560_present, 1));
wus_cfg_v1560.set_present(wus_cfg_v1560_present);
if (wus_cfg_v1560.is_present()) {
HANDLE_CODE(wus_cfg_v1560->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -4016,6 +4071,10 @@ void rr_cfg_common_sib_s::to_json(json_writer& j) const
j.write_fieldname("uplinkPowerControlCommon-v1540");
ul_pwr_ctrl_common_v1540->to_json(j);
}
if (wus_cfg_v1560.is_present()) {
j.write_fieldname("wus-Config-v1560");
wus_cfg_v1560->to_json(j);
}
}
j.end_obj();
}

@ -401,7 +401,7 @@ SRSASN_CODE lc_ch_cfg_s::pack(bit_ref& bref) const
group_flags[2] |= bit_rate_query_prohibit_timer_r14_present;
group_flags[3] |= allowed_tti_lens_r15.is_present();
group_flags[3] |= lc_ch_sr_restrict_r15.is_present();
group_flags[3] |= chl_access_prio_r15.is_present();
group_flags[3] |= ch_access_prio_r15.is_present();
group_flags[3] |= lch_cell_restrict_r15_present;
group_flags.pack(bref);
@ -435,7 +435,7 @@ SRSASN_CODE lc_ch_cfg_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(allowed_tti_lens_r15.is_present(), 1));
HANDLE_CODE(bref.pack(lc_ch_sr_restrict_r15.is_present(), 1));
HANDLE_CODE(bref.pack(chl_access_prio_r15.is_present(), 1));
HANDLE_CODE(bref.pack(ch_access_prio_r15.is_present(), 1));
HANDLE_CODE(bref.pack(lch_cell_restrict_r15_present, 1));
if (allowed_tti_lens_r15.is_present()) {
HANDLE_CODE(allowed_tti_lens_r15->pack(bref));
@ -443,8 +443,8 @@ SRSASN_CODE lc_ch_cfg_s::pack(bit_ref& bref) const
if (lc_ch_sr_restrict_r15.is_present()) {
HANDLE_CODE(lc_ch_sr_restrict_r15->pack(bref));
}
if (chl_access_prio_r15.is_present()) {
HANDLE_CODE(chl_access_prio_r15->pack(bref));
if (ch_access_prio_r15.is_present()) {
HANDLE_CODE(ch_access_prio_r15->pack(bref));
}
if (lch_cell_restrict_r15_present) {
HANDLE_CODE(lch_cell_restrict_r15.pack(bref));
@ -506,9 +506,9 @@ SRSASN_CODE lc_ch_cfg_s::unpack(cbit_ref& bref)
bool lc_ch_sr_restrict_r15_present;
HANDLE_CODE(bref.unpack(lc_ch_sr_restrict_r15_present, 1));
lc_ch_sr_restrict_r15.set_present(lc_ch_sr_restrict_r15_present);
bool chl_access_prio_r15_present;
HANDLE_CODE(bref.unpack(chl_access_prio_r15_present, 1));
chl_access_prio_r15.set_present(chl_access_prio_r15_present);
bool ch_access_prio_r15_present;
HANDLE_CODE(bref.unpack(ch_access_prio_r15_present, 1));
ch_access_prio_r15.set_present(ch_access_prio_r15_present);
HANDLE_CODE(bref.unpack(lch_cell_restrict_r15_present, 1));
if (allowed_tti_lens_r15.is_present()) {
HANDLE_CODE(allowed_tti_lens_r15->unpack(bref));
@ -516,8 +516,8 @@ SRSASN_CODE lc_ch_cfg_s::unpack(cbit_ref& bref)
if (lc_ch_sr_restrict_r15.is_present()) {
HANDLE_CODE(lc_ch_sr_restrict_r15->unpack(bref));
}
if (chl_access_prio_r15.is_present()) {
HANDLE_CODE(chl_access_prio_r15->unpack(bref));
if (ch_access_prio_r15.is_present()) {
HANDLE_CODE(ch_access_prio_r15->unpack(bref));
}
if (lch_cell_restrict_r15_present) {
HANDLE_CODE(lch_cell_restrict_r15.unpack(bref));
@ -561,9 +561,9 @@ void lc_ch_cfg_s::to_json(json_writer& j) const
j.write_fieldname("logicalChannelSR-Restriction-r15");
lc_ch_sr_restrict_r15->to_json(j);
}
if (chl_access_prio_r15.is_present()) {
j.write_fieldname("channellAccessPriority-r15");
chl_access_prio_r15->to_json(j);
if (ch_access_prio_r15.is_present()) {
j.write_fieldname("channelAccessPriority-r15");
ch_access_prio_r15->to_json(j);
}
if (lch_cell_restrict_r15_present) {
j.write_str("lch-CellRestriction-r15", lch_cell_restrict_r15.to_string());
@ -592,8 +592,8 @@ bool lc_ch_cfg_s::operator==(const lc_ch_cfg_s& other) const
(not allowed_tti_lens_r15.is_present() or *allowed_tti_lens_r15 == *other.allowed_tti_lens_r15) and
lc_ch_sr_restrict_r15.is_present() == other.lc_ch_sr_restrict_r15.is_present() and
(not lc_ch_sr_restrict_r15.is_present() or *lc_ch_sr_restrict_r15 == *other.lc_ch_sr_restrict_r15) and
chl_access_prio_r15.is_present() == other.chl_access_prio_r15.is_present() and
(not chl_access_prio_r15.is_present() or *chl_access_prio_r15 == *other.chl_access_prio_r15) and
ch_access_prio_r15.is_present() == other.ch_access_prio_r15.is_present() and
(not ch_access_prio_r15.is_present() or *ch_access_prio_r15 == *other.ch_access_prio_r15) and
lch_cell_restrict_r15_present == other.lch_cell_restrict_r15_present and
(not lch_cell_restrict_r15_present or lch_cell_restrict_r15 == other.lch_cell_restrict_r15)));
}
@ -773,11 +773,11 @@ std::string lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_opts::to_string() const
return convert_enum_idx(options, 2, value, "lc_ch_cfg_s::lc_ch_sr_restrict_r15_c_::setup_e_");
}
void lc_ch_cfg_s::chl_access_prio_r15_c_::set(types::options e)
void lc_ch_cfg_s::ch_access_prio_r15_c_::set(types::options e)
{
type_ = e;
}
void lc_ch_cfg_s::chl_access_prio_r15_c_::to_json(json_writer& j) const
void lc_ch_cfg_s::ch_access_prio_r15_c_::to_json(json_writer& j) const
{
j.start_obj();
switch (type_) {
@ -787,11 +787,11 @@ void lc_ch_cfg_s::chl_access_prio_r15_c_::to_json(json_writer& j) const
j.write_int("setup", c);
break;
default:
log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_");
log_invalid_choice_id(type_, "lc_ch_cfg_s::ch_access_prio_r15_c_");
}
j.end_obj();
}
SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::pack(bit_ref& bref) const
SRSASN_CODE lc_ch_cfg_s::ch_access_prio_r15_c_::pack(bit_ref& bref) const
{
type_.pack(bref);
switch (type_) {
@ -801,12 +801,12 @@ SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::pack(bit_ref& bref) const
HANDLE_CODE(pack_integer(bref, c, (uint8_t)1u, (uint8_t)4u));
break;
default:
log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_");
log_invalid_choice_id(type_, "lc_ch_cfg_s::ch_access_prio_r15_c_");
return SRSASN_ERROR_ENCODE_FAIL;
}
return SRSASN_SUCCESS;
}
SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::unpack(cbit_ref& bref)
SRSASN_CODE lc_ch_cfg_s::ch_access_prio_r15_c_::unpack(cbit_ref& bref)
{
types e;
e.unpack(bref);
@ -818,12 +818,12 @@ SRSASN_CODE lc_ch_cfg_s::chl_access_prio_r15_c_::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_integer(c, bref, (uint8_t)1u, (uint8_t)4u));
break;
default:
log_invalid_choice_id(type_, "lc_ch_cfg_s::chl_access_prio_r15_c_");
log_invalid_choice_id(type_, "lc_ch_cfg_s::ch_access_prio_r15_c_");
return SRSASN_ERROR_DECODE_FAIL;
}
return SRSASN_SUCCESS;
}
bool lc_ch_cfg_s::chl_access_prio_r15_c_::operator==(const chl_access_prio_r15_c_& other) const
bool lc_ch_cfg_s::ch_access_prio_r15_c_::operator==(const ch_access_prio_r15_c_& other) const
{
return type() == other.type() and c == other.c;
}
@ -1331,7 +1331,7 @@ uint8_t crs_assist_info_r13_s::ant_ports_count_r13_opts::to_number() const
// CRS-AssistanceInfo-r15 ::= SEQUENCE
SRSASN_CODE crs_assist_info_r15_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_minus15_present, 1));
HANDLE_CODE(bref.pack(crs_intf_mitig_enabled_r15_present, 1));
HANDLE_CODE(pack_integer(bref, pci_r15, (uint16_t)0u, (uint16_t)503u));
@ -1339,7 +1339,7 @@ SRSASN_CODE crs_assist_info_r15_s::pack(bit_ref& bref) const
}
SRSASN_CODE crs_assist_info_r15_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_minus15_present, 1));
HANDLE_CODE(bref.unpack(crs_intf_mitig_enabled_r15_present, 1));
HANDLE_CODE(unpack_integer(pci_r15, bref, (uint16_t)0u, (uint16_t)503u));
@ -1349,15 +1349,14 @@ void crs_assist_info_r15_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_int("physCellId-r15", pci_r15);
if (crs_intf_mitig_enabled_minus15_present) {
j.write_str("crs-IntfMitigEnabled-15", "enabled");
if (crs_intf_mitig_enabled_r15_present) {
j.write_str("crs-IntfMitigEnabled-r15", "enabled");
}
j.end_obj();
}
bool crs_assist_info_r15_s::operator==(const crs_assist_info_r15_s& other) const
{
return pci_r15 == other.pci_r15 and
crs_intf_mitig_enabled_minus15_present == other.crs_intf_mitig_enabled_minus15_present;
return pci_r15 == other.pci_r15 and crs_intf_mitig_enabled_r15_present == other.crs_intf_mitig_enabled_r15_present;
}
// NeighCellsInfo-r12 ::= SEQUENCE
@ -3983,7 +3982,7 @@ SRSASN_CODE drb_to_add_mod_s::pack(bit_ref& bref) const
group_flags[2] |= lwa_wlan_ac_r14_present;
group_flags[3] |= rlc_cfg_v1510.is_present();
group_flags[4] |= rlc_cfg_v1530.is_present();
group_flags[4] |= rlc_bearer_cfg_dupl_r15.is_present();
group_flags[4] |= rlc_bearer_cfg_secondary_r15.is_present();
group_flags[4] |= lc_ch_id_r15_present;
group_flags.pack(bref);
@ -4044,13 +4043,13 @@ SRSASN_CODE drb_to_add_mod_s::pack(bit_ref& bref) const
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(rlc_cfg_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_secondary_r15.is_present(), 1));
HANDLE_CODE(bref.pack(lc_ch_id_r15_present, 1));
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->pack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->pack(bref));
}
if (lc_ch_id_r15_present) {
HANDLE_CODE(pack_integer(bref, lc_ch_id_r15, (uint8_t)32u, (uint8_t)38u));
@ -4156,15 +4155,15 @@ SRSASN_CODE drb_to_add_mod_s::unpack(cbit_ref& bref)
bool rlc_cfg_v1530_present;
HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1));
rlc_cfg_v1530.set_present(rlc_cfg_v1530_present);
bool rlc_bearer_cfg_dupl_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1));
rlc_bearer_cfg_dupl_r15.set_present(rlc_bearer_cfg_dupl_r15_present);
bool rlc_bearer_cfg_secondary_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_secondary_r15_present, 1));
rlc_bearer_cfg_secondary_r15.set_present(rlc_bearer_cfg_secondary_r15_present);
HANDLE_CODE(bref.unpack(lc_ch_id_r15_present, 1));
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->unpack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->unpack(bref));
}
if (lc_ch_id_r15_present) {
HANDLE_CODE(unpack_integer(lc_ch_id_r15, bref, (uint8_t)32u, (uint8_t)38u));
@ -4234,9 +4233,9 @@ void drb_to_add_mod_s::to_json(json_writer& j) const
j.write_fieldname("rlc-Config-v1530");
rlc_cfg_v1530->to_json(j);
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigDupl-r15");
rlc_bearer_cfg_dupl_r15->to_json(j);
if (rlc_bearer_cfg_secondary_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigSecondary-r15");
rlc_bearer_cfg_secondary_r15->to_json(j);
}
if (lc_ch_id_r15_present) {
j.write_int("logicalChannelIdentity-r15", lc_ch_id_r15);
@ -4274,8 +4273,9 @@ bool drb_to_add_mod_s::operator==(const drb_to_add_mod_s& other) const
(not rlc_cfg_v1510.is_present() or *rlc_cfg_v1510 == *other.rlc_cfg_v1510) and
rlc_cfg_v1530.is_present() == other.rlc_cfg_v1530.is_present() and
(not rlc_cfg_v1530.is_present() or *rlc_cfg_v1530 == *other.rlc_cfg_v1530) and
rlc_bearer_cfg_dupl_r15.is_present() == other.rlc_bearer_cfg_dupl_r15.is_present() and
(not rlc_bearer_cfg_dupl_r15.is_present() or *rlc_bearer_cfg_dupl_r15 == *other.rlc_bearer_cfg_dupl_r15) and
rlc_bearer_cfg_secondary_r15.is_present() == other.rlc_bearer_cfg_secondary_r15.is_present() and
(not rlc_bearer_cfg_secondary_r15.is_present() or
*rlc_bearer_cfg_secondary_r15 == *other.rlc_bearer_cfg_secondary_r15) and
lc_ch_id_r15_present == other.lc_ch_id_r15_present and
(not lc_ch_id_r15_present or lc_ch_id_r15 == other.lc_ch_id_r15)));
}
@ -5575,8 +5575,9 @@ SRSASN_CODE srb_to_add_mod_s::pack(bit_ref& bref) const
ext_groups_packer_guard group_flags;
group_flags[0] |= pdcp_ver_change_r15_present;
group_flags[0] |= rlc_cfg_v1530.is_present();
group_flags[0] |= rlc_bearer_cfg_dupl_r15.is_present();
group_flags[0] |= rlc_bearer_cfg_secondary_r15.is_present();
group_flags[0] |= srb_id_v1530_present;
group_flags[1] |= rlc_cfg_v1560.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -5584,18 +5585,26 @@ SRSASN_CODE srb_to_add_mod_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(pdcp_ver_change_r15_present, 1));
HANDLE_CODE(bref.pack(rlc_cfg_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_secondary_r15.is_present(), 1));
HANDLE_CODE(bref.pack(srb_id_v1530_present, 1));
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->pack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->pack(bref));
}
if (srb_id_v1530_present) {
HANDLE_CODE(pack_integer(bref, srb_id_v1530, (uint8_t)4u, (uint8_t)4u));
}
}
if (group_flags[1]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(rlc_cfg_v1560.is_present(), 1));
if (rlc_cfg_v1560.is_present()) {
HANDLE_CODE(rlc_cfg_v1560->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -5614,7 +5623,7 @@ SRSASN_CODE srb_to_add_mod_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(1);
ext_groups_unpacker_guard group_flags(2);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -5624,20 +5633,30 @@ SRSASN_CODE srb_to_add_mod_s::unpack(cbit_ref& bref)
bool rlc_cfg_v1530_present;
HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1));
rlc_cfg_v1530.set_present(rlc_cfg_v1530_present);
bool rlc_bearer_cfg_dupl_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1));
rlc_bearer_cfg_dupl_r15.set_present(rlc_bearer_cfg_dupl_r15_present);
bool rlc_bearer_cfg_secondary_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_secondary_r15_present, 1));
rlc_bearer_cfg_secondary_r15.set_present(rlc_bearer_cfg_secondary_r15_present);
HANDLE_CODE(bref.unpack(srb_id_v1530_present, 1));
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->unpack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->unpack(bref));
}
if (srb_id_v1530_present) {
HANDLE_CODE(unpack_integer(srb_id_v1530, bref, (uint8_t)4u, (uint8_t)4u));
}
}
if (group_flags[1]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool rlc_cfg_v1560_present;
HANDLE_CODE(bref.unpack(rlc_cfg_v1560_present, 1));
rlc_cfg_v1560.set_present(rlc_cfg_v1560_present);
if (rlc_cfg_v1560.is_present()) {
HANDLE_CODE(rlc_cfg_v1560->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -5661,13 +5680,17 @@ void srb_to_add_mod_s::to_json(json_writer& j) const
j.write_fieldname("rlc-Config-v1530");
rlc_cfg_v1530->to_json(j);
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigDupl-r15");
rlc_bearer_cfg_dupl_r15->to_json(j);
if (rlc_bearer_cfg_secondary_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigSecondary-r15");
rlc_bearer_cfg_secondary_r15->to_json(j);
}
if (srb_id_v1530_present) {
j.write_int("srb-Identity-v1530", srb_id_v1530);
}
if (rlc_cfg_v1560.is_present()) {
j.write_fieldname("rlc-Config-v1560");
rlc_cfg_v1560->to_json(j);
}
}
j.end_obj();
}
@ -5676,14 +5699,16 @@ bool srb_to_add_mod_s::operator==(const srb_to_add_mod_s& other) const
return ext == other.ext and srb_id == other.srb_id and rlc_cfg_present == other.rlc_cfg_present and
(not rlc_cfg_present or rlc_cfg == other.rlc_cfg) and lc_ch_cfg_present == other.lc_ch_cfg_present and
(not lc_ch_cfg_present or lc_ch_cfg == other.lc_ch_cfg) and
(not ext or
(pdcp_ver_change_r15_present == other.pdcp_ver_change_r15_present and
(not ext or (pdcp_ver_change_r15_present == other.pdcp_ver_change_r15_present and
rlc_cfg_v1530.is_present() == other.rlc_cfg_v1530.is_present() and
(not rlc_cfg_v1530.is_present() or *rlc_cfg_v1530 == *other.rlc_cfg_v1530) and
rlc_bearer_cfg_dupl_r15.is_present() == other.rlc_bearer_cfg_dupl_r15.is_present() and
(not rlc_bearer_cfg_dupl_r15.is_present() or *rlc_bearer_cfg_dupl_r15 == *other.rlc_bearer_cfg_dupl_r15) and
rlc_bearer_cfg_secondary_r15.is_present() == other.rlc_bearer_cfg_secondary_r15.is_present() and
(not rlc_bearer_cfg_secondary_r15.is_present() or
*rlc_bearer_cfg_secondary_r15 == *other.rlc_bearer_cfg_secondary_r15) and
srb_id_v1530_present == other.srb_id_v1530_present and
(not srb_id_v1530_present or srb_id_v1530 == other.srb_id_v1530)));
(not srb_id_v1530_present or srb_id_v1530 == other.srb_id_v1530) and
rlc_cfg_v1560.is_present() == other.rlc_cfg_v1560.is_present() and
(not rlc_cfg_v1560.is_present() or *rlc_cfg_v1560 == *other.rlc_cfg_v1560)));
}
void srb_to_add_mod_s::rlc_cfg_c_::set(types::options e)
@ -7988,8 +8013,8 @@ SRSASN_CODE rr_cfg_ded_s::pack(bit_ref& bref) const
group_flags[4] |= neigh_cells_crs_info_r13.is_present();
group_flags[4] |= rlf_timers_and_consts_r13.is_present();
group_flags[5] |= sps_cfg_v1430.is_present();
group_flags[6] |= srb_to_add_mod_ext_list_r15.is_present();
group_flags[6] |= srb_to_release_ext_list_r15_present;
group_flags[6] |= srb_to_add_mod_list_ext_r15.is_present();
group_flags[6] |= srb_to_release_list_ext_r15_present;
group_flags[6] |= sps_cfg_v1530.is_present();
group_flags[6] |= crs_intf_mitig_cfg_r15.is_present();
group_flags[6] |= neigh_cells_crs_info_r15.is_present();
@ -8054,19 +8079,19 @@ SRSASN_CODE rr_cfg_ded_s::pack(bit_ref& bref) const
if (group_flags[6]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(srb_to_add_mod_ext_list_r15.is_present(), 1));
HANDLE_CODE(bref.pack(srb_to_release_ext_list_r15_present, 1));
HANDLE_CODE(bref.pack(srb_to_add_mod_list_ext_r15.is_present(), 1));
HANDLE_CODE(bref.pack(srb_to_release_list_ext_r15_present, 1));
HANDLE_CODE(bref.pack(sps_cfg_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(crs_intf_mitig_cfg_r15.is_present(), 1));
HANDLE_CODE(bref.pack(neigh_cells_crs_info_r15.is_present(), 1));
HANDLE_CODE(bref.pack(drb_to_add_mod_list_r15.is_present(), 1));
HANDLE_CODE(bref.pack(drb_to_release_list_r15.is_present(), 1));
HANDLE_CODE(bref.pack(dummy.is_present(), 1));
if (srb_to_add_mod_ext_list_r15.is_present()) {
HANDLE_CODE(pack_fixed_seq_of(bref, &(*srb_to_add_mod_ext_list_r15)[0], srb_to_add_mod_ext_list_r15->size()));
if (srb_to_add_mod_list_ext_r15.is_present()) {
HANDLE_CODE(pack_fixed_seq_of(bref, &(*srb_to_add_mod_list_ext_r15)[0], srb_to_add_mod_list_ext_r15->size()));
}
if (srb_to_release_ext_list_r15_present) {
HANDLE_CODE(pack_integer(bref, srb_to_release_ext_list_r15, (uint8_t)4u, (uint8_t)4u));
if (srb_to_release_list_ext_r15_present) {
HANDLE_CODE(pack_integer(bref, srb_to_release_list_ext_r15, (uint8_t)4u, (uint8_t)4u));
}
if (sps_cfg_v1530.is_present()) {
HANDLE_CODE(sps_cfg_v1530->pack(bref));
@ -8200,10 +8225,10 @@ SRSASN_CODE rr_cfg_ded_s::unpack(cbit_ref& bref)
if (group_flags[6]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool srb_to_add_mod_ext_list_r15_present;
HANDLE_CODE(bref.unpack(srb_to_add_mod_ext_list_r15_present, 1));
srb_to_add_mod_ext_list_r15.set_present(srb_to_add_mod_ext_list_r15_present);
HANDLE_CODE(bref.unpack(srb_to_release_ext_list_r15_present, 1));
bool srb_to_add_mod_list_ext_r15_present;
HANDLE_CODE(bref.unpack(srb_to_add_mod_list_ext_r15_present, 1));
srb_to_add_mod_list_ext_r15.set_present(srb_to_add_mod_list_ext_r15_present);
HANDLE_CODE(bref.unpack(srb_to_release_list_ext_r15_present, 1));
bool sps_cfg_v1530_present;
HANDLE_CODE(bref.unpack(sps_cfg_v1530_present, 1));
sps_cfg_v1530.set_present(sps_cfg_v1530_present);
@ -8222,11 +8247,11 @@ SRSASN_CODE rr_cfg_ded_s::unpack(cbit_ref& bref)
bool dummy_present;
HANDLE_CODE(bref.unpack(dummy_present, 1));
dummy.set_present(dummy_present);
if (srb_to_add_mod_ext_list_r15.is_present()) {
HANDLE_CODE(unpack_fixed_seq_of(&(*srb_to_add_mod_ext_list_r15)[0], bref, srb_to_add_mod_ext_list_r15->size()));
if (srb_to_add_mod_list_ext_r15.is_present()) {
HANDLE_CODE(unpack_fixed_seq_of(&(*srb_to_add_mod_list_ext_r15)[0], bref, srb_to_add_mod_list_ext_r15->size()));
}
if (srb_to_release_ext_list_r15_present) {
HANDLE_CODE(unpack_integer(srb_to_release_ext_list_r15, bref, (uint8_t)4u, (uint8_t)4u));
if (srb_to_release_list_ext_r15_present) {
HANDLE_CODE(unpack_integer(srb_to_release_list_ext_r15, bref, (uint8_t)4u, (uint8_t)4u));
}
if (sps_cfg_v1530.is_present()) {
HANDLE_CODE(sps_cfg_v1530->unpack(bref));
@ -8325,15 +8350,15 @@ void rr_cfg_ded_s::to_json(json_writer& j) const
j.write_fieldname("sps-Config-v1430");
sps_cfg_v1430->to_json(j);
}
if (srb_to_add_mod_ext_list_r15.is_present()) {
j.start_array("srb-ToAddModExtList-r15");
for (const auto& e1 : *srb_to_add_mod_ext_list_r15) {
if (srb_to_add_mod_list_ext_r15.is_present()) {
j.start_array("srb-ToAddModListExt-r15");
for (const auto& e1 : *srb_to_add_mod_list_ext_r15) {
e1.to_json(j);
}
j.end_array();
}
if (srb_to_release_ext_list_r15_present) {
j.write_int("srb-ToReleaseExtList-r15", srb_to_release_ext_list_r15);
if (srb_to_release_list_ext_r15_present) {
j.write_int("srb-ToReleaseListExt-r15", srb_to_release_list_ext_r15);
}
if (sps_cfg_v1530.is_present()) {
j.write_fieldname("sps-Config-v1530");
@ -8488,10 +8513,10 @@ void rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::to_json(json_writer& j)
{
j.start_obj();
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
j.write_str("crs-IntfMitigNumPRBs-r15", c.to_string());
case types::crs_intf_mitig_num_prbs:
j.write_str("crs-IntfMitigNumPRBs", c.to_string());
break;
default:
log_invalid_choice_id(type_, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_");
@ -8502,9 +8527,9 @@ SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::pack(bit_ref& bre
{
type_.pack(bref);
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
case types::crs_intf_mitig_num_prbs:
HANDLE_CODE(c.pack(bref));
break;
default:
@ -8519,9 +8544,9 @@ SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::unpack(cbit_ref&
e.unpack(bref);
set(e);
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
case types::crs_intf_mitig_num_prbs:
HANDLE_CODE(c.unpack(bref));
break;
default:
@ -8531,17 +8556,17 @@ SRSASN_CODE rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::unpack(cbit_ref&
return SRSASN_SUCCESS;
}
std::string rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_r15_opts::to_string() const
std::string rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_opts::to_string() const
{
static const char* options[] = {"n6", "n24"};
return convert_enum_idx(
options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_r15_e_");
options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_e_");
}
uint8_t rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_r15_opts::to_number() const
uint8_t rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_opts::to_number() const
{
static const uint8_t options[] = {6, 24};
return map_enum_number(
options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_r15_e_");
options, 2, value, "rr_cfg_ded_s::crs_intf_mitig_cfg_r15_c_::setup_c_::crs_intf_mitig_num_prbs_e_");
}
// PDCCH-CandidateReductionValue-r14 ::= ENUMERATED
@ -11390,7 +11415,7 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const
group_flags[6] |= csi_rs_cfg_v1480.is_present();
group_flags[7] |= phys_cfg_ded_stti_r15.is_present();
group_flags[7] |= pdsch_cfg_ded_v1530.is_present();
group_flags[7] |= cqi_report_cfg_v1530.is_present();
group_flags[7] |= dummy.is_present();
group_flags[7] |= cqi_report_cfg_scell_r15.is_present();
group_flags[7] |= cqi_short_cfg_scell_r15.is_present();
group_flags[7] |= csi_rs_cfg_v1530.is_present();
@ -11399,6 +11424,7 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const
group_flags[7] |= pusch_cfg_ded_v1530.is_present();
group_flags[7] |= semi_static_cfi_cfg_r15.is_present();
group_flags[7] |= blind_pdsch_repeat_cfg_r15.is_present();
group_flags[8] |= spucch_cfg_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -11612,7 +11638,7 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(phys_cfg_ded_stti_r15.is_present(), 1));
HANDLE_CODE(bref.pack(pdsch_cfg_ded_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(cqi_report_cfg_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(dummy.is_present(), 1));
HANDLE_CODE(bref.pack(cqi_report_cfg_scell_r15.is_present(), 1));
HANDLE_CODE(bref.pack(cqi_short_cfg_scell_r15.is_present(), 1));
HANDLE_CODE(bref.pack(csi_rs_cfg_v1530.is_present(), 1));
@ -11627,8 +11653,8 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const
if (pdsch_cfg_ded_v1530.is_present()) {
HANDLE_CODE(pdsch_cfg_ded_v1530->pack(bref));
}
if (cqi_report_cfg_v1530.is_present()) {
HANDLE_CODE(cqi_report_cfg_v1530->pack(bref));
if (dummy.is_present()) {
HANDLE_CODE(dummy->pack(bref));
}
if (cqi_report_cfg_scell_r15.is_present()) {
HANDLE_CODE(cqi_report_cfg_scell_r15->pack(bref));
@ -11655,6 +11681,14 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::pack(bit_ref& bref) const
HANDLE_CODE(blind_pdsch_repeat_cfg_r15->pack(bref));
}
}
if (group_flags[8]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(spucch_cfg_v1550.is_present(), 1));
if (spucch_cfg_v1550.is_present()) {
HANDLE_CODE(spucch_cfg_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -11714,7 +11748,7 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(8);
ext_groups_unpacker_guard group_flags(9);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -12018,9 +12052,9 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::unpack(cbit_ref& bref)
bool pdsch_cfg_ded_v1530_present;
HANDLE_CODE(bref.unpack(pdsch_cfg_ded_v1530_present, 1));
pdsch_cfg_ded_v1530.set_present(pdsch_cfg_ded_v1530_present);
bool cqi_report_cfg_v1530_present;
HANDLE_CODE(bref.unpack(cqi_report_cfg_v1530_present, 1));
cqi_report_cfg_v1530.set_present(cqi_report_cfg_v1530_present);
bool dummy_present;
HANDLE_CODE(bref.unpack(dummy_present, 1));
dummy.set_present(dummy_present);
bool cqi_report_cfg_scell_r15_present;
HANDLE_CODE(bref.unpack(cqi_report_cfg_scell_r15_present, 1));
cqi_report_cfg_scell_r15.set_present(cqi_report_cfg_scell_r15_present);
@ -12051,8 +12085,8 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::unpack(cbit_ref& bref)
if (pdsch_cfg_ded_v1530.is_present()) {
HANDLE_CODE(pdsch_cfg_ded_v1530->unpack(bref));
}
if (cqi_report_cfg_v1530.is_present()) {
HANDLE_CODE(cqi_report_cfg_v1530->unpack(bref));
if (dummy.is_present()) {
HANDLE_CODE(dummy->unpack(bref));
}
if (cqi_report_cfg_scell_r15.is_present()) {
HANDLE_CODE(cqi_report_cfg_scell_r15->unpack(bref));
@ -12079,6 +12113,16 @@ SRSASN_CODE phys_cfg_ded_scell_r10_s::unpack(cbit_ref& bref)
HANDLE_CODE(blind_pdsch_repeat_cfg_r15->unpack(bref));
}
}
if (group_flags[8]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool spucch_cfg_v1550_present;
HANDLE_CODE(bref.unpack(spucch_cfg_v1550_present, 1));
spucch_cfg_v1550.set_present(spucch_cfg_v1550_present);
if (spucch_cfg_v1550.is_present()) {
HANDLE_CODE(spucch_cfg_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -12356,9 +12400,9 @@ void phys_cfg_ded_scell_r10_s::to_json(json_writer& j) const
j.write_fieldname("pdsch-ConfigDedicated-v1530");
pdsch_cfg_ded_v1530->to_json(j);
}
if (cqi_report_cfg_v1530.is_present()) {
j.write_fieldname("cqi-ReportConfig-v1530");
cqi_report_cfg_v1530->to_json(j);
if (dummy.is_present()) {
j.write_fieldname("dummy");
dummy->to_json(j);
}
if (cqi_report_cfg_scell_r15.is_present()) {
j.write_fieldname("cqi-ReportConfigSCell-r15");
@ -12392,6 +12436,10 @@ void phys_cfg_ded_scell_r10_s::to_json(json_writer& j) const
j.write_fieldname("blindPDSCH-Repetition-Config-r15");
blind_pdsch_repeat_cfg_r15->to_json(j);
}
if (spucch_cfg_v1550.is_present()) {
j.write_fieldname("spucch-Config-v1550");
spucch_cfg_v1550->to_json(j);
}
}
j.end_obj();
}
@ -12551,8 +12599,7 @@ bool phys_cfg_ded_scell_r10_s::operator==(const phys_cfg_ded_scell_r10_s& other)
(not phys_cfg_ded_stti_r15.is_present() or *phys_cfg_ded_stti_r15 == *other.phys_cfg_ded_stti_r15) and
pdsch_cfg_ded_v1530.is_present() == other.pdsch_cfg_ded_v1530.is_present() and
(not pdsch_cfg_ded_v1530.is_present() or *pdsch_cfg_ded_v1530 == *other.pdsch_cfg_ded_v1530) and
cqi_report_cfg_v1530.is_present() == other.cqi_report_cfg_v1530.is_present() and
(not cqi_report_cfg_v1530.is_present() or *cqi_report_cfg_v1530 == *other.cqi_report_cfg_v1530) and
dummy.is_present() == other.dummy.is_present() and (not dummy.is_present() or *dummy == *other.dummy) and
cqi_report_cfg_scell_r15.is_present() == other.cqi_report_cfg_scell_r15.is_present() and
(not cqi_report_cfg_scell_r15.is_present() or
*cqi_report_cfg_scell_r15 == *other.cqi_report_cfg_scell_r15) and
@ -12571,7 +12618,9 @@ bool phys_cfg_ded_scell_r10_s::operator==(const phys_cfg_ded_scell_r10_s& other)
(not semi_static_cfi_cfg_r15.is_present() or *semi_static_cfi_cfg_r15 == *other.semi_static_cfi_cfg_r15) and
blind_pdsch_repeat_cfg_r15.is_present() == other.blind_pdsch_repeat_cfg_r15.is_present() and
(not blind_pdsch_repeat_cfg_r15.is_present() or
*blind_pdsch_repeat_cfg_r15 == *other.blind_pdsch_repeat_cfg_r15)));
*blind_pdsch_repeat_cfg_r15 == *other.blind_pdsch_repeat_cfg_r15) and
spucch_cfg_v1550.is_present() == other.spucch_cfg_v1550.is_present() and
(not spucch_cfg_v1550.is_present() or *spucch_cfg_v1550 == *other.spucch_cfg_v1550)));
}
void phys_cfg_ded_scell_r10_s::pucch_scell_c_::set(types::options e)
@ -13965,7 +14014,8 @@ SRSASN_CODE drb_to_add_mod_scg_r12_s::pack(bit_ref& bref) const
group_flags[0] |= rlc_cfg_v1430.is_present();
group_flags[1] |= lc_ch_id_scg_r15_present;
group_flags[1] |= rlc_cfg_v1530.is_present();
group_flags[1] |= rlc_bearer_cfg_dupl_r15.is_present();
group_flags[1] |= rlc_bearer_cfg_secondary_r15.is_present();
group_flags[2] |= rlc_cfg_v1560.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -13981,15 +14031,23 @@ SRSASN_CODE drb_to_add_mod_scg_r12_s::pack(bit_ref& bref) const
HANDLE_CODE(bref.pack(lc_ch_id_scg_r15_present, 1));
HANDLE_CODE(bref.pack(rlc_cfg_v1530.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_dupl_r15.is_present(), 1));
HANDLE_CODE(bref.pack(rlc_bearer_cfg_secondary_r15.is_present(), 1));
if (lc_ch_id_scg_r15_present) {
HANDLE_CODE(pack_integer(bref, lc_ch_id_scg_r15, (uint8_t)32u, (uint8_t)38u));
}
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->pack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->pack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->pack(bref));
}
}
if (group_flags[2]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(rlc_cfg_v1560.is_present(), 1));
if (rlc_cfg_v1560.is_present()) {
HANDLE_CODE(rlc_cfg_v1560->pack(bref));
}
}
}
@ -14022,7 +14080,7 @@ SRSASN_CODE drb_to_add_mod_scg_r12_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(2);
ext_groups_unpacker_guard group_flags(3);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -14042,17 +14100,27 @@ SRSASN_CODE drb_to_add_mod_scg_r12_s::unpack(cbit_ref& bref)
bool rlc_cfg_v1530_present;
HANDLE_CODE(bref.unpack(rlc_cfg_v1530_present, 1));
rlc_cfg_v1530.set_present(rlc_cfg_v1530_present);
bool rlc_bearer_cfg_dupl_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_dupl_r15_present, 1));
rlc_bearer_cfg_dupl_r15.set_present(rlc_bearer_cfg_dupl_r15_present);
bool rlc_bearer_cfg_secondary_r15_present;
HANDLE_CODE(bref.unpack(rlc_bearer_cfg_secondary_r15_present, 1));
rlc_bearer_cfg_secondary_r15.set_present(rlc_bearer_cfg_secondary_r15_present);
if (lc_ch_id_scg_r15_present) {
HANDLE_CODE(unpack_integer(lc_ch_id_scg_r15, bref, (uint8_t)32u, (uint8_t)38u));
}
if (rlc_cfg_v1530.is_present()) {
HANDLE_CODE(rlc_cfg_v1530->unpack(bref));
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_dupl_r15->unpack(bref));
if (rlc_bearer_cfg_secondary_r15.is_present()) {
HANDLE_CODE(rlc_bearer_cfg_secondary_r15->unpack(bref));
}
}
if (group_flags[2]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool rlc_cfg_v1560_present;
HANDLE_CODE(bref.unpack(rlc_cfg_v1560_present, 1));
rlc_cfg_v1560.set_present(rlc_cfg_v1560_present);
if (rlc_cfg_v1560.is_present()) {
HANDLE_CODE(rlc_cfg_v1560->unpack(bref));
}
}
}
@ -14093,9 +14161,13 @@ void drb_to_add_mod_scg_r12_s::to_json(json_writer& j) const
j.write_fieldname("rlc-Config-v1530");
rlc_cfg_v1530->to_json(j);
}
if (rlc_bearer_cfg_dupl_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigDupl-r15");
rlc_bearer_cfg_dupl_r15->to_json(j);
if (rlc_bearer_cfg_secondary_r15.is_present()) {
j.write_fieldname("rlc-BearerConfigSecondary-r15");
rlc_bearer_cfg_secondary_r15->to_json(j);
}
if (rlc_cfg_v1560.is_present()) {
j.write_fieldname("rlc-Config-v1560");
rlc_cfg_v1560->to_json(j);
}
}
j.end_obj();
@ -14677,6 +14749,7 @@ SRSASN_CODE rr_cfg_ded_scg_r12_s::pack(bit_ref& bref) const
group_flags[0] |= drb_to_add_mod_list_scg_r15.is_present();
group_flags[1] |= srb_to_add_mod_list_scg_r15.is_present();
group_flags[1] |= srb_to_release_list_scg_r15.is_present();
group_flags[2] |= drb_to_release_list_scg_r15.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -14699,6 +14772,14 @@ SRSASN_CODE rr_cfg_ded_scg_r12_s::pack(bit_ref& bref) const
HANDLE_CODE(pack_dyn_seq_of(bref, *srb_to_release_list_scg_r15, 1, 2, integer_packer<uint8_t>(1, 2)));
}
}
if (group_flags[2]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(drb_to_release_list_scg_r15.is_present(), 1));
if (drb_to_release_list_scg_r15.is_present()) {
HANDLE_CODE(pack_dyn_seq_of(bref, *drb_to_release_list_scg_r15, 1, 15, integer_packer<uint8_t>(1, 32)));
}
}
}
return SRSASN_SUCCESS;
}
@ -14720,7 +14801,7 @@ SRSASN_CODE rr_cfg_ded_scg_r12_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(2);
ext_groups_unpacker_guard group_flags(3);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -14749,6 +14830,16 @@ SRSASN_CODE rr_cfg_ded_scg_r12_s::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_dyn_seq_of(*srb_to_release_list_scg_r15, bref, 1, 2, integer_packer<uint8_t>(1, 2)));
}
}
if (group_flags[2]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool drb_to_release_list_scg_r15_present;
HANDLE_CODE(bref.unpack(drb_to_release_list_scg_r15_present, 1));
drb_to_release_list_scg_r15.set_present(drb_to_release_list_scg_r15_present);
if (drb_to_release_list_scg_r15.is_present()) {
HANDLE_CODE(unpack_dyn_seq_of(*drb_to_release_list_scg_r15, bref, 1, 15, integer_packer<uint8_t>(1, 32)));
}
}
}
return SRSASN_SUCCESS;
}
@ -14792,6 +14883,13 @@ void rr_cfg_ded_scg_r12_s::to_json(json_writer& j) const
}
j.end_array();
}
if (drb_to_release_list_scg_r15.is_present()) {
j.start_array("drb-ToReleaseListSCG-r15");
for (const auto& e1 : *drb_to_release_list_scg_r15) {
j.write_int(e1);
}
j.end_array();
}
}
j.end_obj();
}

@ -449,10 +449,10 @@ void sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::to_json(json_writer& j) c
{
j.start_obj();
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
j.write_str("crs-IntfMitigNumPRBs-r15", c.to_string());
case types::crs_intf_mitig_num_prbs:
j.write_str("crs-IntfMitigNumPRBs", c.to_string());
break;
default:
log_invalid_choice_id(type_, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_");
@ -463,9 +463,9 @@ SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::pack(bit_ref& bref
{
type_.pack(bref);
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
case types::crs_intf_mitig_num_prbs:
HANDLE_CODE(c.pack(bref));
break;
default:
@ -480,9 +480,9 @@ SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::unpack(cbit_ref& b
e.unpack(bref);
set(e);
switch (type_) {
case types::crs_intf_mitig_enabled_minus15:
case types::crs_intf_mitig_enabled:
break;
case types::crs_intf_mitig_num_prbs_r15:
case types::crs_intf_mitig_num_prbs:
HANDLE_CODE(c.unpack(bref));
break;
default:
@ -492,17 +492,17 @@ SRSASN_CODE sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::unpack(cbit_ref& b
return SRSASN_SUCCESS;
}
std::string sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_r15_opts::to_string() const
std::string sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_opts::to_string() const
{
static const char* options[] = {"n6", "n24"};
return convert_enum_idx(
options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_r15_e_");
options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_e_");
}
uint8_t sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_r15_opts::to_number() const
uint8_t sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_opts::to_number() const
{
static const uint8_t options[] = {6, 24};
return map_enum_number(
options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_r15_e_");
options, 2, value, "sib_type1_v1530_ies_s::crs_intf_mitig_cfg_r15_c_::crs_intf_mitig_num_prbs_e_");
}
std::string sib_type1_v1530_ies_s::cell_barred_crs_r15_opts::to_string() const
@ -583,6 +583,18 @@ void cell_sel_info_ce1_v1360_s::to_json(json_writer& j) const
j.end_obj();
}
// SI-Periodicity-r12 ::= ENUMERATED
std::string si_periodicity_r12_opts::to_string() const
{
static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"};
return convert_enum_idx(options, 7, value, "si_periodicity_r12_e");
}
uint16_t si_periodicity_r12_opts::to_number() const
{
static const uint16_t options[] = {8, 16, 32, 64, 128, 256, 512};
return map_enum_number(options, 7, value, "si_periodicity_r12_e");
}
// SystemInformationBlockType1-v1450-IEs ::= SEQUENCE
SRSASN_CODE sib_type1_v1450_ies_s::pack(bit_ref& bref) const
{
@ -2472,17 +2484,6 @@ void sched_info_s::to_json(json_writer& j) const
j.end_obj();
}
std::string sched_info_s::si_periodicity_opts::to_string() const
{
static const char* options[] = {"rf8", "rf16", "rf32", "rf64", "rf128", "rf256", "rf512"};
return convert_enum_idx(options, 7, value, "sched_info_s::si_periodicity_e_");
}
uint16_t sched_info_s::si_periodicity_opts::to_number() const
{
static const uint16_t options[] = {8, 16, 32, 64, 128, 256, 512};
return map_enum_number(options, 7, value, "sched_info_s::si_periodicity_e_");
}
// SystemInformationBlockType1-v920-IEs ::= SEQUENCE
SRSASN_CODE sib_type1_v920_ies_s::pack(bit_ref& bref) const
{

File diff suppressed because it is too large Load Diff

@ -279,6 +279,43 @@ SRSASN_CODE init_ue_id_minus5_gc_c::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
// RRCEarlyDataRequest-v1590-IEs ::= SEQUENCE
SRSASN_CODE rrc_early_data_request_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_early_data_request_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void rrc_early_data_request_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// ReestabUE-Identity ::= SEQUENCE
SRSASN_CODE reestab_ue_id_s::pack(bit_ref& bref) const
{
@ -728,6 +765,9 @@ SRSASN_CODE rrc_early_data_request_r15_ies_s::pack(bit_ref& bref) const
HANDLE_CODE(s_tmsi_r15.pack(bref));
HANDLE_CODE(establishment_cause_r15.pack(bref));
HANDLE_CODE(ded_info_nas_r15.pack(bref));
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -738,6 +778,9 @@ SRSASN_CODE rrc_early_data_request_r15_ies_s::unpack(cbit_ref& bref)
HANDLE_CODE(s_tmsi_r15.unpack(bref));
HANDLE_CODE(establishment_cause_r15.unpack(bref));
HANDLE_CODE(ded_info_nas_r15.unpack(bref));
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -750,15 +793,14 @@ void rrc_early_data_request_r15_ies_s::to_json(json_writer& j) const
j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string());
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
std::string rrc_early_data_request_r15_ies_s::establishment_cause_r15_opts::to_string() const
{
static const char* options[] = {"mo-Data-r15", "delayTolerantAccess-r15"};
static const char* options[] = {"mo-Data", "delayTolerantAccess"};
return convert_enum_idx(options, 2, value, "rrc_early_data_request_r15_ies_s::establishment_cause_r15_e_");
}

@ -221,7 +221,7 @@ void rrc_conn_setup_complete_v1540_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (gummei_type_v1540_present) {
j.write_str("gummei-Type-v1540", "mappedFrom5G");
j.write_str("gummei-Type-v1540", "mappedFrom5G-v1540");
}
if (guami_type_r15_present) {
j.write_str("guami-Type-r15", guami_type_r15.to_string());
@ -2165,40 +2165,6 @@ void ue_info_resp_v1250_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// FailureReportSCG-v12d0 ::= SEQUENCE
SRSASN_CODE fail_report_scg_v12d0_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(meas_result_neigh_cells_v12d0_present, 1));
if (meas_result_neigh_cells_v12d0_present) {
HANDLE_CODE(pack_dyn_seq_of(bref, meas_result_neigh_cells_v12d0, 1, 8));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE fail_report_scg_v12d0_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(meas_result_neigh_cells_v12d0_present, 1));
if (meas_result_neigh_cells_v12d0_present) {
HANDLE_CODE(unpack_dyn_seq_of(meas_result_neigh_cells_v12d0, bref, 1, 8));
}
return SRSASN_SUCCESS;
}
void fail_report_scg_v12d0_s::to_json(json_writer& j) const
{
j.start_obj();
if (meas_result_neigh_cells_v12d0_present) {
j.start_array("measResultNeighCells-v12d0");
for (const auto& e1 : meas_result_neigh_cells_v12d0) {
e1.to_json(j);
}
j.end_array();
}
j.end_obj();
}
// IDC-SubframePattern-r11 ::= CHOICE
void idc_sf_pattern_r11_c::destroy_()
{
@ -4410,44 +4376,6 @@ SRSASN_CODE rstd_inter_freq_info_r10_s::meas_prs_offset_r15_c_::unpack(cbit_ref&
return SRSASN_SUCCESS;
}
// SCGFailureInformation-v12d0-IEs ::= SEQUENCE
SRSASN_CODE scg_fail_info_v12d0_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(fail_report_scg_v12d0_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (fail_report_scg_v12d0_present) {
HANDLE_CODE(fail_report_scg_v12d0.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_fail_info_v12d0_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(fail_report_scg_v12d0_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (fail_report_scg_v12d0_present) {
HANDLE_CODE(fail_report_scg_v12d0.unpack(bref));
}
return SRSASN_SUCCESS;
}
void scg_fail_info_v12d0_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (fail_report_scg_v12d0_present) {
j.write_fieldname("failureReportSCG-v12d0");
fail_report_scg_v12d0.to_json(j);
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// SL-CommTxResourceReq-r12 ::= SEQUENCE
SRSASN_CODE sl_comm_tx_res_req_r12_s::pack(bit_ref& bref) const
{
@ -5070,6 +4998,43 @@ void mbms_interest_ind_v1310_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// MeasReportAppLayer-v1590-IEs ::= SEQUENCE
SRSASN_CODE meas_report_app_layer_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE meas_report_app_layer_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void meas_report_app_layer_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// ProximityIndication-v930-IEs ::= SEQUENCE
SRSASN_CODE proximity_ind_v930_ies_s::pack(bit_ref& bref) const
{
@ -6119,8 +6084,45 @@ void registered_mme_s::to_json(json_writer& j) const
j.end_obj();
}
// SCGFailureInformation-v1310-IEs ::= SEQUENCE
SRSASN_CODE scg_fail_info_v1310_ies_s::pack(bit_ref& bref) const
// SCGFailureInformation-v12d0a-IEs ::= SEQUENCE
SRSASN_CODE scg_fail_info_v12d0a_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_fail_info_v12d0a_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void scg_fail_info_v12d0a_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// SCGFailureInformationNR-v1590-IEs ::= SEQUENCE
SRSASN_CODE scg_fail_info_nr_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
@ -6131,7 +6133,7 @@ SRSASN_CODE scg_fail_info_v1310_ies_s::pack(bit_ref& bref) const
return SRSASN_SUCCESS;
}
SRSASN_CODE scg_fail_info_v1310_ies_s::unpack(cbit_ref& bref)
SRSASN_CODE scg_fail_info_nr_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
@ -6142,7 +6144,7 @@ SRSASN_CODE scg_fail_info_v1310_ies_s::unpack(cbit_ref& bref)
return SRSASN_SUCCESS;
}
void scg_fail_info_v1310_ies_s::to_json(json_writer& j) const
void scg_fail_info_nr_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
@ -7216,14 +7218,17 @@ void mbms_interest_ind_r11_ies_s::to_json(json_writer& j) const
SRSASN_CODE meas_report_app_layer_r15_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(meas_report_app_layer_container_r15_present, 1));
HANDLE_CODE(bref.pack(service_type_present, 1));
HANDLE_CODE(bref.pack(service_type_r15_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (meas_report_app_layer_container_r15_present) {
HANDLE_CODE(meas_report_app_layer_container_r15.pack(bref));
}
if (service_type_present) {
HANDLE_CODE(service_type.pack(bref));
if (service_type_r15_present) {
HANDLE_CODE(service_type_r15.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
@ -7231,14 +7236,17 @@ SRSASN_CODE meas_report_app_layer_r15_ies_s::pack(bit_ref& bref) const
SRSASN_CODE meas_report_app_layer_r15_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(meas_report_app_layer_container_r15_present, 1));
HANDLE_CODE(bref.unpack(service_type_present, 1));
HANDLE_CODE(bref.unpack(service_type_r15_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (meas_report_app_layer_container_r15_present) {
HANDLE_CODE(meas_report_app_layer_container_r15.unpack(bref));
}
if (service_type_present) {
HANDLE_CODE(service_type.unpack(bref));
if (service_type_r15_present) {
HANDLE_CODE(service_type_r15.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
@ -7249,21 +7257,20 @@ void meas_report_app_layer_r15_ies_s::to_json(json_writer& j) const
if (meas_report_app_layer_container_r15_present) {
j.write_str("measReportAppLayerContainer-r15", meas_report_app_layer_container_r15.to_string());
}
if (service_type_present) {
j.write_str("serviceType", service_type.to_string());
if (service_type_r15_present) {
j.write_str("serviceType-r15", service_type_r15.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
std::string meas_report_app_layer_r15_ies_s::service_type_opts::to_string() const
std::string meas_report_app_layer_r15_ies_s::service_type_r15_opts::to_string() const
{
static const char* options[] = {"qoe", "qoemtsi", "spare6", "spare5", "spare4", "spare3", "spare2", "spare1"};
return convert_enum_idx(options, 8, value, "meas_report_app_layer_r15_ies_s::service_type_e_");
return convert_enum_idx(options, 8, value, "meas_report_app_layer_r15_ies_s::service_type_r15_e_");
}
// ProximityIndication-r9-IEs ::= SEQUENCE
@ -7727,6 +7734,9 @@ SRSASN_CODE scg_fail_info_nr_r15_ies_s::pack(bit_ref& bref) const
if (fail_report_scg_nr_r15_present) {
HANDLE_CODE(fail_report_scg_nr_r15.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -7738,6 +7748,9 @@ SRSASN_CODE scg_fail_info_nr_r15_ies_s::unpack(cbit_ref& bref)
if (fail_report_scg_nr_r15_present) {
HANDLE_CODE(fail_report_scg_nr_r15.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -7750,8 +7763,7 @@ void scg_fail_info_nr_r15_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
@ -8564,9 +8576,6 @@ void fail_info_r15_s::to_json(json_writer& j) const
j.write_fieldname("failedLogicalChannelInfo-r15");
failed_lc_ch_info_r15.to_json(j);
}
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
j.end_obj();
}

@ -170,6 +170,42 @@ std::string carrier_freq_nb_r13_s::carrier_freq_offset_r13_opts::to_number_strin
return convert_enum_idx(options, 21, value, "carrier_freq_nb_r13_s::carrier_freq_offset_r13_e_");
}
// CarrierFreq-NB-v1550 ::= SEQUENCE
SRSASN_CODE carrier_freq_nb_v1550_s::pack(bit_ref& bref) const
{
HANDLE_CODE(carrier_freq_offset_v1550.pack(bref));
return SRSASN_SUCCESS;
}
SRSASN_CODE carrier_freq_nb_v1550_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(carrier_freq_offset_v1550.unpack(bref));
return SRSASN_SUCCESS;
}
void carrier_freq_nb_v1550_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("carrierFreqOffset-v1550", carrier_freq_offset_v1550.to_string());
j.end_obj();
}
std::string carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_string() const
{
static const char* options[] = {"v-8dot5", "v-4dot5", "v3dot5", "v7dot5"};
return convert_enum_idx(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_");
}
float carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_number() const
{
static const float options[] = {-8.5, -4.5, 3.5, 7.5};
return map_enum_number(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_");
}
std::string carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_opts::to_number_string() const
{
static const char* options[] = {"-8.5", "-4.5", "3.5", "7.5"};
return convert_enum_idx(options, 4, value, "carrier_freq_nb_v1550_s::carrier_freq_offset_v1550_e_");
}
// DL-AM-RLC-NB-r13 ::= SEQUENCE
SRSASN_CODE dl_am_rlc_nb_r13_s::pack(bit_ref& bref) const
{
@ -491,6 +527,7 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::pack(bit_ref& bref) const
ext_groups_packer_guard group_flags;
group_flags[0] |= nrs_pwr_offset_non_anchor_v1330_present;
group_flags[1] |= dl_gap_non_anchor_v1530.is_present();
group_flags[2] |= dl_carrier_freq_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -509,6 +546,14 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::pack(bit_ref& bref) const
HANDLE_CODE(dl_gap_non_anchor_v1530->pack(bref));
}
}
if (group_flags[2]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(dl_carrier_freq_v1550.is_present(), 1));
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -535,7 +580,7 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(2);
ext_groups_unpacker_guard group_flags(3);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -556,6 +601,16 @@ SRSASN_CODE dl_carrier_cfg_ded_nb_r13_s::unpack(cbit_ref& bref)
HANDLE_CODE(dl_gap_non_anchor_v1530->unpack(bref));
}
}
if (group_flags[2]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool dl_carrier_freq_v1550_present;
HANDLE_CODE(bref.unpack(dl_carrier_freq_v1550_present, 1));
dl_carrier_freq_v1550.set_present(dl_carrier_freq_v1550_present);
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -590,6 +645,10 @@ void dl_carrier_cfg_ded_nb_r13_s::to_json(json_writer& j) const
j.write_fieldname("dl-GapNonAnchor-v1530");
dl_gap_non_anchor_v1530->to_json(j);
}
if (dl_carrier_freq_v1550.is_present()) {
j.write_fieldname("dl-CarrierFreq-v1550");
dl_carrier_freq_v1550->to_json(j);
}
}
j.end_obj();
}
@ -3202,6 +3261,20 @@ SRSASN_CODE as_cfg_nb_s::pack(bit_ref& bref) const
HANDLE_CODE(source_ue_id_r13.pack(bref));
HANDLE_CODE(source_dl_carrier_freq_r13.pack(bref));
if (ext) {
ext_groups_packer_guard group_flags;
group_flags[0] |= source_dl_carrier_freq_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(source_dl_carrier_freq_v1550.is_present(), 1));
if (source_dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(source_dl_carrier_freq_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
SRSASN_CODE as_cfg_nb_s::unpack(cbit_ref& bref)
@ -3212,6 +3285,21 @@ SRSASN_CODE as_cfg_nb_s::unpack(cbit_ref& bref)
HANDLE_CODE(source_ue_id_r13.unpack(bref));
HANDLE_CODE(source_dl_carrier_freq_r13.unpack(bref));
if (ext) {
ext_groups_unpacker_guard group_flags(1);
group_flags.unpack(bref);
if (group_flags[0]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool source_dl_carrier_freq_v1550_present;
HANDLE_CODE(bref.unpack(source_dl_carrier_freq_v1550_present, 1));
source_dl_carrier_freq_v1550.set_present(source_dl_carrier_freq_v1550_present);
if (source_dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(source_dl_carrier_freq_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
void as_cfg_nb_s::to_json(json_writer& j) const
@ -3224,6 +3312,12 @@ void as_cfg_nb_s::to_json(json_writer& j) const
j.write_str("sourceUE-Identity-r13", source_ue_id_r13.to_string());
j.write_fieldname("sourceDl-CarrierFreq-r13");
source_dl_carrier_freq_r13.to_json(j);
if (ext) {
if (source_dl_carrier_freq_v1550.is_present()) {
j.write_fieldname("sourceDL-CarrierFreq-v1550");
source_dl_carrier_freq_v1550->to_json(j);
}
}
j.end_obj();
}
@ -5690,6 +5784,51 @@ uint8_t nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_cbra_start_
options, 16, value, "nprach_params_tdd_nb_r15_s::nprach_params_r15_s_::nprach_num_cbra_start_subcarriers_r15_e_");
}
// NPRACH-ParametersTDD-NB-v1550 ::= SEQUENCE
SRSASN_CODE nprach_params_tdd_nb_v1550_s::pack(bit_ref& bref) const
{
HANDLE_CODE(max_num_preamb_attempt_ce_v1550.pack(bref));
HANDLE_CODE(num_repeats_per_preamb_attempt_v1550.pack(bref));
return SRSASN_SUCCESS;
}
SRSASN_CODE nprach_params_tdd_nb_v1550_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(max_num_preamb_attempt_ce_v1550.unpack(bref));
HANDLE_CODE(num_repeats_per_preamb_attempt_v1550.unpack(bref));
return SRSASN_SUCCESS;
}
void nprach_params_tdd_nb_v1550_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_str("maxNumPreambleAttemptCE-v1550", max_num_preamb_attempt_ce_v1550.to_string());
j.write_str("numRepetitionsPerPreambleAttempt-v1550", num_repeats_per_preamb_attempt_v1550.to_string());
j.end_obj();
}
std::string nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_opts::to_string() const
{
static const char* options[] = {"n3", "n4", "n5", "n6", "n7", "n8", "n10", "spare1"};
return convert_enum_idx(options, 8, value, "nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_e_");
}
uint8_t nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_opts::to_number() const
{
static const uint8_t options[] = {3, 4, 5, 6, 7, 8, 10};
return map_enum_number(options, 7, value, "nprach_params_tdd_nb_v1550_s::max_num_preamb_attempt_ce_v1550_e_");
}
std::string nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_opts::to_string() const
{
static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128", "n256", "n512", "n1024"};
return convert_enum_idx(options, 11, value, "nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_e_");
}
uint16_t nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_opts::to_number() const
{
static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};
return map_enum_number(options, 11, value, "nprach_params_tdd_nb_v1550_s::num_repeats_per_preamb_attempt_v1550_e_");
}
// PagingWeight-NB-r14 ::= ENUMERATED
std::string paging_weight_nb_r14_opts::to_string() const
{
@ -5854,6 +5993,7 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::pack(bit_ref& bref) const
if (ext) {
ext_groups_packer_guard group_flags;
group_flags[0] |= dl_gap_non_anchor_v1530.is_present();
group_flags[1] |= dl_carrier_freq_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -5864,6 +6004,14 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::pack(bit_ref& bref) const
HANDLE_CODE(dl_gap_non_anchor_v1530->pack(bref));
}
}
if (group_flags[1]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(dl_carrier_freq_v1550.is_present(), 1));
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -5888,7 +6036,7 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(1);
ext_groups_unpacker_guard group_flags(2);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -5901,6 +6049,16 @@ SRSASN_CODE dl_carrier_cfg_common_nb_r14_s::unpack(cbit_ref& bref)
HANDLE_CODE(dl_gap_non_anchor_v1530->unpack(bref));
}
}
if (group_flags[1]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool dl_carrier_freq_v1550_present;
HANDLE_CODE(bref.unpack(dl_carrier_freq_v1550_present, 1));
dl_carrier_freq_v1550.set_present(dl_carrier_freq_v1550_present);
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -5931,6 +6089,10 @@ void dl_carrier_cfg_common_nb_r14_s::to_json(json_writer& j) const
j.write_fieldname("dl-GapNonAnchor-v1530");
dl_gap_non_anchor_v1530->to_json(j);
}
if (dl_carrier_freq_v1550.is_present()) {
j.write_fieldname("dl-CarrierFreq-v1550");
dl_carrier_freq_v1550->to_json(j);
}
}
j.end_obj();
}
@ -6637,6 +6799,7 @@ SRSASN_CODE inter_freq_carrier_freq_info_nb_r13_s::pack(bit_ref& bref) const
group_flags[1] |= ce_authorisation_offset_r14_present;
group_flags[2] |= nsss_rrm_cfg_r15.is_present();
group_flags[2] |= inter_freq_neigh_cell_list_v1530.is_present();
group_flags[3] |= dl_carrier_freq_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -6671,6 +6834,14 @@ SRSASN_CODE inter_freq_carrier_freq_info_nb_r13_s::pack(bit_ref& bref) const
HANDLE_CODE(pack_dyn_seq_of(bref, *inter_freq_neigh_cell_list_v1530, 1, 16));
}
}
if (group_flags[3]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(dl_carrier_freq_v1550.is_present(), 1));
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -6706,7 +6877,7 @@ SRSASN_CODE inter_freq_carrier_freq_info_nb_r13_s::unpack(cbit_ref& bref)
}
if (ext) {
ext_groups_unpacker_guard group_flags(3);
ext_groups_unpacker_guard group_flags(4);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -6745,6 +6916,16 @@ SRSASN_CODE inter_freq_carrier_freq_info_nb_r13_s::unpack(cbit_ref& bref)
HANDLE_CODE(unpack_dyn_seq_of(*inter_freq_neigh_cell_list_v1530, bref, 1, 16));
}
}
if (group_flags[3]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool dl_carrier_freq_v1550_present;
HANDLE_CODE(bref.unpack(dl_carrier_freq_v1550_present, 1));
dl_carrier_freq_v1550.set_present(dl_carrier_freq_v1550_present);
if (dl_carrier_freq_v1550.is_present()) {
HANDLE_CODE(dl_carrier_freq_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -6805,6 +6986,10 @@ void inter_freq_carrier_freq_info_nb_r13_s::to_json(json_writer& j) const
}
j.end_array();
}
if (dl_carrier_freq_v1550.is_present()) {
j.write_fieldname("dl-CarrierFreq-v1550");
dl_carrier_freq_v1550->to_json(j);
}
}
j.end_obj();
}
@ -7051,7 +7236,7 @@ SRSASN_CODE nprach_cfg_sib_nb_v1530_s::pack(bit_ref& bref) const
if (tdd_params_r15_present) {
HANDLE_CODE(tdd_params_r15.nprach_preamb_format_r15.pack(bref));
HANDLE_CODE(tdd_params_r15.num_repeats_per_preamb_attempt_r15.pack(bref));
HANDLE_CODE(tdd_params_r15.dummy.pack(bref));
HANDLE_CODE(pack_dyn_seq_of(bref, tdd_params_r15.nprach_params_list_tdd_r15, 1, 3));
}
if (fmt2_params_r15_present) {
@ -7083,7 +7268,7 @@ SRSASN_CODE nprach_cfg_sib_nb_v1530_s::unpack(cbit_ref& bref)
if (tdd_params_r15_present) {
HANDLE_CODE(tdd_params_r15.nprach_preamb_format_r15.unpack(bref));
HANDLE_CODE(tdd_params_r15.num_repeats_per_preamb_attempt_r15.unpack(bref));
HANDLE_CODE(tdd_params_r15.dummy.unpack(bref));
HANDLE_CODE(unpack_dyn_seq_of(tdd_params_r15.nprach_params_list_tdd_r15, bref, 1, 3));
}
if (fmt2_params_r15_present) {
@ -7114,7 +7299,7 @@ void nprach_cfg_sib_nb_v1530_s::to_json(json_writer& j) const
j.write_fieldname("tdd-Parameters-r15");
j.start_obj();
j.write_str("nprach-PreambleFormat-r15", tdd_params_r15.nprach_preamb_format_r15.to_string());
j.write_str("numRepetitionsPerPreambleAttempt-r15", tdd_params_r15.num_repeats_per_preamb_attempt_r15.to_string());
j.write_str("dummy", tdd_params_r15.dummy.to_string());
j.start_array("nprach-ParametersListTDD-r15");
for (const auto& e1 : tdd_params_r15.nprach_params_list_tdd_r15) {
e1.to_json(j);
@ -7171,17 +7356,42 @@ std::string nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::nprach_preamb_format_r
options, 5, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::nprach_preamb_format_r15_e_");
}
std::string nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::num_repeats_per_preamb_attempt_r15_opts::to_string() const
std::string nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_opts::to_string() const
{
static const char* options[] = {"n1", "n2", "n4", "n8", "n16", "n32", "n64", "n128", "n256", "n512", "n1024"};
return convert_enum_idx(
options, 11, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::num_repeats_per_preamb_attempt_r15_e_");
return convert_enum_idx(options, 11, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_e_");
}
uint16_t nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::num_repeats_per_preamb_attempt_r15_opts::to_number() const
uint16_t nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_opts::to_number() const
{
static const uint16_t options[] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};
return map_enum_number(
options, 11, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::num_repeats_per_preamb_attempt_r15_e_");
return map_enum_number(options, 11, value, "nprach_cfg_sib_nb_v1530_s::tdd_params_r15_s_::dummy_e_");
}
// NPRACH-ConfigSIB-NB-v1550 ::= SEQUENCE
SRSASN_CODE nprach_cfg_sib_nb_v1550_s::pack(bit_ref& bref) const
{
HANDLE_CODE(pack_dyn_seq_of(bref, tdd_params_v1550.nprach_params_list_tdd_v1550, 1, 3));
return SRSASN_SUCCESS;
}
SRSASN_CODE nprach_cfg_sib_nb_v1550_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(unpack_dyn_seq_of(tdd_params_v1550.nprach_params_list_tdd_v1550, bref, 1, 3));
return SRSASN_SUCCESS;
}
void nprach_cfg_sib_nb_v1550_s::to_json(json_writer& j) const
{
j.start_obj();
j.write_fieldname("tdd-Parameters-v1550");
j.start_obj();
j.start_array("nprach-ParametersListTDD-v1550");
for (const auto& e1 : tdd_params_v1550.nprach_params_list_tdd_v1550) {
e1.to_json(j);
}
j.end_array();
j.end_obj();
j.end_obj();
}
// NPRACH-ProbabilityAnchor-NB-r14 ::= SEQUENCE
@ -8301,6 +8511,7 @@ SRSASN_CODE rr_cfg_common_sib_nb_r13_s::pack(bit_ref& bref) const
group_flags[2] |= nprach_cfg_v1530.is_present();
group_flags[2] |= dl_gap_v1530.is_present();
group_flags[2] |= wus_cfg_r15.is_present();
group_flags[3] |= nprach_cfg_v1550.is_present();
group_flags.pack(bref);
if (group_flags[0]) {
@ -8335,6 +8546,14 @@ SRSASN_CODE rr_cfg_common_sib_nb_r13_s::pack(bit_ref& bref) const
HANDLE_CODE(wus_cfg_r15->pack(bref));
}
}
if (group_flags[3]) {
varlength_field_pack_guard varlen_scope(bref, false);
HANDLE_CODE(bref.pack(nprach_cfg_v1550.is_present(), 1));
if (nprach_cfg_v1550.is_present()) {
HANDLE_CODE(nprach_cfg_v1550->pack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -8355,7 +8574,7 @@ SRSASN_CODE rr_cfg_common_sib_nb_r13_s::unpack(cbit_ref& bref)
HANDLE_CODE(ul_pwr_ctrl_common_r13.unpack(bref));
if (ext) {
ext_groups_unpacker_guard group_flags(3);
ext_groups_unpacker_guard group_flags(4);
group_flags.unpack(bref);
if (group_flags[0]) {
@ -8400,6 +8619,16 @@ SRSASN_CODE rr_cfg_common_sib_nb_r13_s::unpack(cbit_ref& bref)
HANDLE_CODE(wus_cfg_r15->unpack(bref));
}
}
if (group_flags[3]) {
varlength_field_unpack_guard varlen_scope(bref, false);
bool nprach_cfg_v1550_present;
HANDLE_CODE(bref.unpack(nprach_cfg_v1550_present, 1));
nprach_cfg_v1550.set_present(nprach_cfg_v1550_present);
if (nprach_cfg_v1550.is_present()) {
HANDLE_CODE(nprach_cfg_v1550->unpack(bref));
}
}
}
return SRSASN_SUCCESS;
}
@ -8445,6 +8674,10 @@ void rr_cfg_common_sib_nb_r13_s::to_json(json_writer& j) const
j.write_fieldname("wus-Config-r15");
wus_cfg_r15->to_json(j);
}
if (nprach_cfg_v1550.is_present()) {
j.write_fieldname("nprach-Config-v1550");
nprach_cfg_v1550->to_json(j);
}
}
j.end_obj();
}
@ -11827,6 +12060,43 @@ void rrc_conn_reest_nb_v1430_ies_s::to_json(json_writer& j) const
j.end_obj();
}
// RRCEarlyDataComplete-NB-v1590-IEs ::= SEQUENCE
SRSASN_CODE rrc_early_data_complete_nb_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_early_data_complete_nb_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void rrc_early_data_complete_nb_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// RedirectedCarrierInfo-NB-v1430 ::= SEQUENCE
SRSASN_CODE redirected_carrier_info_nb_v1430_s::pack(bit_ref& bref) const
{
@ -12045,6 +12315,9 @@ SRSASN_CODE rrc_early_data_complete_nb_r15_ies_s::pack(bit_ref& bref) const
if (redirected_carrier_info_ext_r15_present) {
HANDLE_CODE(redirected_carrier_info_ext_r15.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -12068,6 +12341,9 @@ SRSASN_CODE rrc_early_data_complete_nb_r15_ies_s::unpack(cbit_ref& bref)
if (redirected_carrier_info_ext_r15_present) {
HANDLE_CODE(redirected_carrier_info_ext_r15.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -12090,8 +12366,7 @@ void rrc_early_data_complete_nb_r15_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
@ -13191,6 +13466,78 @@ void dl_ccch_msg_nb_s::to_json(json_writer& j) const
j.end_array();
}
// RRCConnectionRelease-NB-v15b0-IEs ::= SEQUENCE
SRSASN_CODE rrc_conn_release_nb_v15b0_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(no_last_cell_upd_r15_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_conn_release_nb_v15b0_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(no_last_cell_upd_r15_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
return SRSASN_SUCCESS;
}
void rrc_conn_release_nb_v15b0_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (no_last_cell_upd_r15_present) {
j.write_str("noLastCellUpdate-r15", "true");
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// RRCConnectionRelease-NB-v1550-IEs ::= SEQUENCE
SRSASN_CODE rrc_conn_release_nb_v1550_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(redirected_carrier_info_v1550_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (redirected_carrier_info_v1550_present) {
HANDLE_CODE(redirected_carrier_info_v1550.pack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_conn_release_nb_v1550_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(redirected_carrier_info_v1550_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (redirected_carrier_info_v1550_present) {
HANDLE_CODE(redirected_carrier_info_v1550.unpack(bref));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void rrc_conn_release_nb_v1550_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (redirected_carrier_info_v1550_present) {
j.write_fieldname("redirectedCarrierInfo-v1550");
redirected_carrier_info_v1550.to_json(j);
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
non_crit_ext.to_json(j);
}
j.end_obj();
}
// RRCConnectionRelease-NB-v1530-IEs ::= SEQUENCE
SRSASN_CODE rrc_conn_release_nb_v1530_ies_s::pack(bit_ref& bref) const
{
@ -13201,6 +13548,9 @@ SRSASN_CODE rrc_conn_release_nb_v1530_ies_s::pack(bit_ref& bref) const
if (next_hop_chaining_count_r15_present) {
HANDLE_CODE(pack_integer(bref, next_hop_chaining_count_r15, (uint8_t)0u, (uint8_t)7u));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -13213,6 +13563,9 @@ SRSASN_CODE rrc_conn_release_nb_v1530_ies_s::unpack(cbit_ref& bref)
if (next_hop_chaining_count_r15_present) {
HANDLE_CODE(unpack_integer(next_hop_chaining_count_r15, bref, (uint8_t)0u, (uint8_t)7u));
}
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -13227,8 +13580,7 @@ void rrc_conn_release_nb_v1530_ies_s::to_json(json_writer& j) const
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
@ -18027,6 +18379,43 @@ std::string rrc_conn_setup_complete_nb_s::crit_exts_c_::types_opts::to_string()
return convert_enum_idx(options, 2, value, "rrc_conn_setup_complete_nb_s::crit_exts_c_::types");
}
// RRCEarlyDataRequest-NB-v1590-IEs ::= SEQUENCE
SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::pack(bit_ref& bref) const
{
HANDLE_CODE(bref.pack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.pack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
SRSASN_CODE rrc_early_data_request_nb_v1590_ies_s::unpack(cbit_ref& bref)
{
HANDLE_CODE(bref.unpack(late_non_crit_ext_present, 1));
HANDLE_CODE(bref.unpack(non_crit_ext_present, 1));
if (late_non_crit_ext_present) {
HANDLE_CODE(late_non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
void rrc_early_data_request_nb_v1590_ies_s::to_json(json_writer& j) const
{
j.start_obj();
if (late_non_crit_ext_present) {
j.write_str("lateNonCriticalExtension", late_non_crit_ext.to_string());
}
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
}
j.end_obj();
}
// RRCEarlyDataRequest-NB-r15-IEs ::= SEQUENCE
SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::pack(bit_ref& bref) const
{
@ -18039,6 +18428,9 @@ SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::pack(bit_ref& bref) const
HANDLE_CODE(cqi_npdcch_r15.pack(bref));
}
HANDLE_CODE(ded_info_nas_r15.pack(bref));
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.pack(bref));
}
return SRSASN_SUCCESS;
}
@ -18053,6 +18445,9 @@ SRSASN_CODE rrc_early_data_request_nb_r15_ies_s::unpack(cbit_ref& bref)
HANDLE_CODE(cqi_npdcch_r15.unpack(bref));
}
HANDLE_CODE(ded_info_nas_r15.unpack(bref));
if (non_crit_ext_present) {
HANDLE_CODE(non_crit_ext.unpack(bref));
}
return SRSASN_SUCCESS;
}
@ -18068,15 +18463,14 @@ void rrc_early_data_request_nb_r15_ies_s::to_json(json_writer& j) const
j.write_str("dedicatedInfoNAS-r15", ded_info_nas_r15.to_string());
if (non_crit_ext_present) {
j.write_fieldname("nonCriticalExtension");
j.start_obj();
j.end_obj();
non_crit_ext.to_json(j);
}
j.end_obj();
}
std::string rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_opts::to_string() const
{
static const char* options[] = {"mo-Data-r15", "mo-ExceptionData-r15", "delayTolerantAccess-r15", "spare1"};
static const char* options[] = {"mo-Data", "mo-ExceptionData", "delayTolerantAccess", "spare1"};
return convert_enum_idx(options, 4, value, "rrc_early_data_request_nb_r15_ies_s::establishment_cause_r15_e_");
}

@ -259,7 +259,7 @@ int test_bcch_dl_sch_msg2()
sib_type1_s& sib1 = bcch_msg.msg.c1().sib_type1();
TESTASSERT(not sib1.p_max_present);
TESTASSERT(sib1.sched_info_list.size() == 1);
TESTASSERT(sib1.sched_info_list[0].si_periodicity.value == sched_info_s::si_periodicity_e_::rf16);
TESTASSERT(sib1.sched_info_list[0].si_periodicity.value == si_periodicity_r12_e::rf16);
TESTASSERT(sib1.sched_info_list[0].sib_map_info.size() == 1);
TESTASSERT(sib1.sched_info_list[0].sib_map_info[0] == sib_type_e::sib_type13_v920);

@ -1248,7 +1248,7 @@ void rrc::handle_sib1()
// Print SIB scheduling info
for (uint32_t i = 0; i < sib1->sched_info_list.size(); ++i) {
sched_info_s::si_periodicity_e_ p = sib1->sched_info_list[i].si_periodicity;
si_periodicity_r12_e p = sib1->sched_info_list[i].si_periodicity;
for (uint32_t j = 0; j < sib1->sched_info_list[i].sib_map_info.size(); ++j) {
sib_type_e t = sib1->sched_info_list[i].sib_map_info[j];
rrc_log->debug("SIB scheduling info, sib_type=%d, si_periodicity=%d\n", t.to_number(), p.to_number());

Loading…
Cancel
Save