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

55826 lines
1.8 MiB

/*
* Copyright 2013-2019 Software Radio Systems Limited
*
* This file is part of srsLTE.
*
* srsLTE is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* srsLTE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* A copy of the GNU Affero General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
/*******************************************************************************
*
* 3GPP TS ASN1 RRC v15.4.0 (2018-12)
*
******************************************************************************/
#ifndef SRSASN1_RRC_H
#define SRSASN1_RRC_H
#include "asn1_utils.h"
#include <cstdio>
#include <stdarg.h>
namespace asn1 {
namespace rrc {
/*******************************************************************************
* Functions for external logging
******************************************************************************/
extern srslte::log* rrc_log_ptr;
void rrc_log_register_handler(srslte::log* ctx);
void rrc_log_print(srslte::LOG_LEVEL_ENUM log_level, const char* format, ...);
void log_invalid_access_choice_id(uint32_t val, uint32_t choice_id);
void assert_choice_type(uint32_t val, uint32_t choice_id);
void assert_choice_type(const std::string& access_type,
const std::string& current_type,
const std::string& choice_type);
const char* convert_enum_idx(const char* array[], uint32_t nof_types, uint32_t enum_val, const char* enum_type);
template <class ItemType>
ItemType convert_enum_idx(ItemType* array, uint32_t nof_types, uint32_t enum_val, const char* enum_type)
{
if (enum_val >= nof_types) {
if (enum_val == nof_types) {
rrc_log_print(LOG_LEVEL_ERROR, "The enum of type %s was not initialized.\n", enum_type);
} else {
rrc_log_print(
LOG_LEVEL_ERROR, "The provided enum value=%d of type %s cannot be converted.\n", enum_val, enum_type);
}
return 0;
}
return array[enum_val];
}
/*******************************************************************************
* Constant Definitions
******************************************************************************/
#define ASN1_RRC_MAX_ACCESS_CAT_MINUS1_R15 63
#define ASN1_RRC_MAX_ACDC_CAT_R13 16
#define ASN1_RRC_MAX_AVAIL_NARROW_BANDS_R13 16
#define ASN1_RRC_MAX_BAND_COMB_R10 128
#define ASN1_RRC_MAX_BAND_COMB_R11 256
#define ASN1_RRC_MAX_BAND_COMB_R13 384
#define ASN1_RRC_MAX_BANDS 64
#define ASN1_RRC_MAX_BANDS_NR_R15 1024
#define ASN1_RRC_MAX_BW_CLASS_R10 16
#define ASN1_RRC_MAX_BW_COMB_SET_R10 32
#define ASN1_RRC_MAX_BARR_INFO_SET_R15 8
#define ASN1_RRC_MAX_BT_ID_REPORT_R15 32
#define ASN1_RRC_MAX_BT_NAME_R15 4
#define ASN1_RRC_MAX_CBR_LEVEL_R14 16
#define ASN1_RRC_MAX_CBR_LEVEL_MINUS1_R14 15
#define ASN1_RRC_MAX_CBR_REPORT_R14 72
#define ASN1_RRC_MAX_CDMA_BAND_CLASS 32
#define ASN1_RRC_MAX_CE_LEVEL_R13 4
#define ASN1_RRC_MAX_CELL_BLACK 16
#define ASN1_RRC_MAX_CELL_HISTORY_R12 16
#define ASN1_RRC_MAX_CELL_INFO_GERAN_R9 32
#define ASN1_RRC_MAX_CELL_INFO_UTRA_R9 16
#define ASN1_RRC_MAX_CELL_MEAS_IDLE_R15 8
#define ASN1_RRC_MAX_COMB_IDC_R11 128
#define ASN1_RRC_MAX_CSI_IM_R11 3
#define ASN1_RRC_MAX_CSI_IM_R12 4
#define ASN1_RRC_MIN_CSI_IM_R13 5
#define ASN1_RRC_MAX_CSI_IM_R13 24
#define ASN1_RRC_MAX_CSI_IM_V1310 20
#define ASN1_RRC_MAX_CSI_PROC_R11 4
#define ASN1_RRC_MAX_CSI_RS_NZP_R11 3
#define ASN1_RRC_MIN_CSI_RS_NZP_R13 4
#define ASN1_RRC_MAX_CSI_RS_NZP_R13 24
#define ASN1_RRC_MAX_CSI_RS_NZP_V1310 21
#define ASN1_RRC_MAX_CSI_RS_ZP_R11 4
#define ASN1_RRC_MAX_CQI_PROC_EXT_R11 3
#define ASN1_RRC_MAX_FREQ_UTRA_TDD_R10 6
#define ASN1_RRC_MAX_CELL_INTER 16
#define ASN1_RRC_MAX_CELL_INTRA 16
#define ASN1_RRC_MAX_CELL_LIST_GERAN 3
#define ASN1_RRC_MAX_CELL_MEAS 32
#define ASN1_RRC_MAX_CELL_REPORT 8
#define ASN1_RRC_MAX_CELL_SFTD 3
#define ASN1_RRC_MAX_CFG_SPS_R14 8
#define ASN1_RRC_MAX_CFG_SPS_R15 6
#define ASN1_RRC_MAX_CSI_RS_MEAS_R12 96
#define ASN1_RRC_MAX_DRB 11
#define ASN1_RRC_MAX_DRB_EXT_R15 4
#define ASN1_RRC_MAX_DRB_R15 15
#define ASN1_RRC_MAX_DS_DUR_R12 5
#define ASN1_RRC_MAX_DS_ZTP_CSI_RS_R12 5
#define ASN1_RRC_MAX_EARFCN 65535
#define ASN1_RRC_MAX_EARFCN_PLUS1 65536
#define ASN1_RRC_MAX_EARFCN2 262143
#define ASN1_RRC_MAX_EPDCCH_SET_R11 2
#define ASN1_RRC_MAX_FBI 64
#define ASN1_RRC_MAX_FBI_NR_R15 1024
#define ASN1_RRC_MAX_FBI_PLUS1 65
#define ASN1_RRC_MAX_FBI2 256
#define ASN1_RRC_MAX_FEATURE_SETS_R15 256
#define ASN1_RRC_MAX_PER_CC_FEATURE_SETS_R15 32
#define ASN1_RRC_MAX_FREQ 8
#define ASN1_RRC_MAX_FREQ_IDC_R11 32
#define ASN1_RRC_MAX_FREQ_IDLE_R15 8
#define ASN1_RRC_MAX_FREQ_MBMS_R11 5
#define ASN1_RRC_MAX_FREQ_NR_R15 5
#define ASN1_RRC_MAX_FREQ_V2X_R14 8
#define ASN1_RRC_MAX_FREQ_V2X_MINUS1_R14 7
#define ASN1_RRC_MAX_GERAN_SI 10
#define ASN1_RRC_MAX_GNFG 16
#define ASN1_RRC_MAX_IDLE_MEAS_CARRIERS_R15 3
#define ASN1_RRC_MAX_LCG_R13 4
#define ASN1_RRC_MAX_LOG_MEAS_REPORT_R10 520
#define ASN1_RRC_MAX_MBSFN_ALLOCS 8
#define ASN1_RRC_MAX_MBSFN_AREA 8
#define ASN1_RRC_MAX_MBSFN_AREA_MINUS1 7
#define ASN1_RRC_MAX_MBMS_SERVICE_LIST_PER_UE_R13 15
#define ASN1_RRC_MAX_MEAS_ID 32
#define ASN1_RRC_MAX_MEAS_ID_PLUS1 33
#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_NS_PMAX_R10 8
#define ASN1_RRC_MAX_NAICS_ENTRIES_R12 8
#define ASN1_RRC_MAX_NEIGH_CELL_R12 8
#define ASN1_RRC_MAX_NEIGH_CELL_SCPTM_R13 8
#define ASN1_RRC_MAX_NROF_S_NSSAI_R15 8
#define ASN1_RRC_MAX_OBJ_ID 32
#define ASN1_RRC_MAX_OBJ_ID_PLUS1_R13 33
#define ASN1_RRC_MAX_OBJ_ID_R13 64
#define ASN1_RRC_MAX_P_A_PER_NEIGH_CELL_R12 3
#define ASN1_RRC_MAX_PAGE_REC 16
#define ASN1_RRC_MAX_PCI_RANGE_R9 4
#define ASN1_RRC_MAX_PLMN_R11 6
#define ASN1_RRC_MAX_PLMN_MINUS1_R14 5
#define ASN1_RRC_MAX_PLMN_R15 8
#define ASN1_RRC_MAX_PLMN_NR_R15 12
#define ASN1_RRC_MAX_PN_OFFSET 511
#define ASN1_RRC_MAX_PMCH_PER_MBSFN 15
#define ASN1_RRC_MAX_PSSCH_TX_CFG_R14 16
#define ASN1_RRC_MAX_QUANT_SETS_NR_R15 2
#define ASN1_RRC_MAX_QCI_R13 6
#define ASN1_RRC_MAX_RAT_CAP 8
#define ASN1_RRC_MAX_RE_MAP_QCL_R11 4
#define ASN1_RRC_MAX_REPORT_CFG_ID 32
#define ASN1_RRC_MAX_RESERV_PERIOD_R14 16
#define ASN1_RRC_MAX_RS_IDX_R15 64
#define ASN1_RRC_MAX_RS_IDX_MINUS1_R15 63
#define ASN1_RRC_MAX_RS_IDX_CELL_QUAL_R15 16
#define ASN1_RRC_MAX_RS_IDX_REPORT_R15 32
#define ASN1_RRC_MAX_RSTD_FREQ_R10 3
#define ASN1_RRC_MAX_SAI_MBMS_R11 64
#define ASN1_RRC_MAX_SCELL_R10 4
#define ASN1_RRC_MAX_SCELL_R13 31
#define ASN1_RRC_MAX_SCELL_GROUPS_R15 4
#define ASN1_RRC_MAX_SC_MTCH_R13 1023
#define ASN1_RRC_MAX_SC_MTCH_BR_R14 128
#define ASN1_RRC_MAX_SL_COMM_RX_POOL_NFREQ_R13 32
#define ASN1_RRC_MAX_SL_COMM_RX_POOL_PRECONF_V1310 12
#define ASN1_RRC_MAX_SL_TX_POOL_R12_PLUS1_R13 5
#define ASN1_RRC_MAX_SL_TX_POOL_V1310 4
#define ASN1_RRC_MAX_SL_TX_POOL_R13 8
#define ASN1_RRC_MAX_SL_COMM_TX_POOL_PRECONF_V1310 7
#define ASN1_RRC_MAX_SL_DEST_R12 16
#define ASN1_RRC_MAX_SL_DISC_CELLS_R13 16
#define ASN1_RRC_MAX_SL_DISC_PWR_CLASS_R12 3
#define ASN1_RRC_MAX_SL_DISC_RX_POOL_PRECONF_R13 16
#define ASN1_RRC_MAX_SL_DISC_SYS_INFO_REPORT_FREQ_R13 8
#define ASN1_RRC_MAX_SL_DISC_TX_POOL_PRECONF_R13 4
#define ASN1_RRC_MAX_SL_GP_R13 8
#define ASN1_RRC_MAX_SL_POOL_TO_MEASURE_R14 72
#define ASN1_RRC_MAX_SL_PRIO_R13 8
#define ASN1_RRC_MAX_SL_RX_POOL_R12 16
#define ASN1_RRC_MAX_SL_RELIABILITY_R15 8
#define ASN1_RRC_MAX_SL_SYNC_CFG_R12 16
#define ASN1_RRC_MAX_SL_TF_IDX_PAIR_R12 64
#define ASN1_RRC_MAX_SL_TX_POOL_R12 4
#define ASN1_RRC_MAX_SL_V2X_RX_POOL_R14 16
#define ASN1_RRC_MAX_SL_V2X_RX_POOL_PRECONF_R14 16
#define ASN1_RRC_MAX_SL_V2X_TX_POOL_R14 8
#define ASN1_RRC_MAX_SL_V2X_TX_POOL_PRECONF_R14 8
#define ASN1_RRC_MAX_SL_V2X_SYNC_CFG_R14 16
#define ASN1_RRC_MAX_SL_V2X_CBR_CFG_R14 4
#define ASN1_RRC_MAX_SL_V2X_CBR_CFG_MINUS1_R14 3
#define ASN1_RRC_MAX_SL_V2X_TX_CFG_R14 64
#define ASN1_RRC_MAX_SL_V2X_TX_CFG_MINUS1_R14 63
#define ASN1_RRC_MAX_SL_V2X_CBR_CFG2_R14 8
#define ASN1_RRC_MAX_SL_V2X_CBR_CFG2_MINUS1_R14 7
#define ASN1_RRC_MAX_SL_V2X_TX_CFG2_R14 128
#define ASN1_RRC_MAX_SL_V2X_TX_CFG2_MINUS1_R14 127
#define ASN1_RRC_MAX_STAG_R11 3
#define ASN1_RRC_MAX_SERV_CELL_R10 5
#define ASN1_RRC_MAX_SERV_CELL_R13 32
#define ASN1_RRC_MAX_SERV_CELL_NR_R15 16
#define ASN1_RRC_MAX_SERVICE_COUNT 16
#define ASN1_RRC_MAX_SERVICE_COUNT_MINUS1 15
#define ASN1_RRC_MAX_SESSION_PER_PMCH 29
#define ASN1_RRC_MAX_SESSION_PER_PMCH_MINUS1 28
#define ASN1_RRC_MAX_SIB 32
#define ASN1_RRC_MAX_SIB_MINUS1 31
#define ASN1_RRC_MAX_SI_MSG 32
#define ASN1_RRC_MAX_SIMUL_BANDS_R10 64
#define ASN1_RRC_MAX_SF_PATTERN_IDC_R11 8
#define ASN1_RRC_MAX_TRAFFIC_PATTERN_R14 8
#define ASN1_RRC_MAX_UTRA_FDD_CARRIER 16
#define ASN1_RRC_MAX_UTRA_TDD_CARRIER 16
#define ASN1_RRC_MAX_WAY_POINT_R15 20
#define ASN1_RRC_MAX_WLAN_ID_R12 16
#define ASN1_RRC_MAX_WLAN_BANDS_R13 8
#define ASN1_RRC_MAX_WLAN_ID_R13 32
#define ASN1_RRC_MAX_WLAN_CHS_R13 16
#define ASN1_RRC_MAX_WLAN_CARRIER_INFO_R13 8
#define ASN1_RRC_MAX_WLAN_ID_REPORT_R14 32
#define ASN1_RRC_MAX_WLAN_NAME_R15 4
#define ASN1_RRC_MAX_LOG_MEAS_R10 4060
#define ASN1_RRC_MAX_REESTAB_INFO 32
#define ASN1_RRC_MAX_NPRACH_RES_NB_R13 3
#define ASN1_RRC_MAX_NON_ANCHOR_CARRIERS_NB_R14 15
#define ASN1_RRC_MAX_DRB_NB_R13 2
#define ASN1_RRC_MAX_NEIGH_CELL_SCPTM_NB_R14 8
#define ASN1_RRC_MAX_NS_PMAX_NB_R13 4
#define ASN1_RRC_MAX_SC_MTCH_NB_R14 64
#define ASN1_RRC_MAX_SI_MSG_NB_R13 8
/*******************************************************************************
* Struct Definitions
******************************************************************************/
// PHICH-Config ::= SEQUENCE
struct phich_cfg_s {
struct phich_dur_opts {
enum options { normal, extended, nulltype } value;
std::string to_string() const;
};
typedef enumerated<phich_dur_opts> phich_dur_e_;
struct phich_res_opts {
enum options { one_sixth, half, one, two, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<phich_res_opts> phich_res_e_;
// member variables
phich_dur_e_ phich_dur;
phich_res_e_ phich_res;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MasterInformationBlock ::= SEQUENCE
struct mib_s {
struct dl_bw_opts {
enum options { n6, n15, n25, n50, n75, n100, 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_;
// member variables
dl_bw_e_ dl_bw;
phich_cfg_s phich_cfg;
fixed_bitstring<8> sys_frame_num;
uint8_t sched_info_sib1_br_r13 = 0;
bool sys_info_unchanged_br_r15 = false;
fixed_bitstring<4> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-BCH-MessageType ::= MasterInformationBlock
typedef mib_s bcch_bch_msg_type_s;
// BCCH-BCH-Message ::= SEQUENCE
struct bcch_bch_msg_s {
bcch_bch_msg_type_s msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MasterInformationBlock-MBMS-r14 ::= SEQUENCE
struct mib_mbms_r14_s {
struct dl_bw_mbms_r14_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dl_bw_mbms_r14_opts> dl_bw_mbms_r14_e_;
// member variables
dl_bw_mbms_r14_e_ dl_bw_mbms_r14;
fixed_bitstring<6> sys_frame_num_r14;
uint8_t add_non_mbsfn_sfs_r14 = 0;
fixed_bitstring<13> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-BCH-MessageType-MBMS-r14 ::= MasterInformationBlock-MBMS-r14
typedef mib_mbms_r14_s bcch_bch_msg_type_mbms_r14_s;
// BCCH-BCH-Message-MBMS ::= SEQUENCE
struct bcch_bch_msg_mbms_s {
bcch_bch_msg_type_mbms_r14_s msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// GNSS-ID-r15 ::= SEQUENCE
struct gnss_id_r15_s {
struct gnss_id_r15_opts {
enum options { gps, sbas, qzss, galileo, glonass, bds, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<gnss_id_r15_opts, true> gnss_id_r15_e_;
// member variables
bool ext = false;
gnss_id_r15_e_ gnss_id_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MCC ::= SEQUENCE (SIZE (3)) OF INTEGER (0..9)
using mcc_l = std::array<uint8_t, 3>;
// MNC ::= SEQUENCE (SIZE (2..3)) OF INTEGER (0..9)
using mnc_l = bounded_array<uint8_t, 3>;
// SBAS-ID-r15 ::= SEQUENCE
struct sbas_id_r15_s {
struct sbas_id_r15_opts {
enum options { waas, egnos, msas, gagan, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<sbas_id_r15_opts, true> sbas_id_r15_e_;
// member variables
bool ext = false;
sbas_id_r15_e_ sbas_id_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-Identity ::= SEQUENCE
struct plmn_id_s {
bool mcc_present = false;
mcc_l mcc;
mnc_l mnc;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PosSIB-Type-r15 ::= SEQUENCE
struct pos_sib_type_r15_s {
struct pos_sib_type_r15_opts {
enum options {
pos_sib_type1_minus1,
pos_sib_type1_minus2,
pos_sib_type1_minus3,
pos_sib_type1_minus4,
pos_sib_type1_minus5,
pos_sib_type1_minus6,
pos_sib_type1_minus7,
pos_sib_type2_minus1,
pos_sib_type2_minus2,
pos_sib_type2_minus3,
pos_sib_type2_minus4,
pos_sib_type2_minus5,
pos_sib_type2_minus6,
pos_sib_type2_minus7,
pos_sib_type2_minus8,
pos_sib_type2_minus9,
pos_sib_type2_minus10,
pos_sib_type2_minus11,
pos_sib_type2_minus12,
pos_sib_type2_minus13,
pos_sib_type2_minus14,
pos_sib_type2_minus15,
pos_sib_type2_minus16,
pos_sib_type2_minus17,
pos_sib_type2_minus18,
pos_sib_type2_minus19,
pos_sib_type3_minus1,
// ...
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<pos_sib_type_r15_opts, true> pos_sib_type_r15_e_;
// member variables
bool ext = false;
bool encrypted_r15_present = false;
bool gnss_id_r15_present = false;
bool sbas_id_r15_present = false;
gnss_id_r15_s gnss_id_r15;
sbas_id_r15_s sbas_id_r15;
pos_sib_type_r15_e_ pos_sib_type_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityInfo-r15 ::= SEQUENCE
struct plmn_id_info_r15_s {
struct plmn_id_minus5_gc_r15_c_ {
struct types_opts {
enum options { plmn_id_r15, plmn_idx_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
plmn_id_minus5_gc_r15_c_() = default;
plmn_id_minus5_gc_r15_c_(const plmn_id_minus5_gc_r15_c_& other);
plmn_id_minus5_gc_r15_c_& operator=(const plmn_id_minus5_gc_r15_c_& other);
~plmn_id_minus5_gc_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
plmn_id_s& plmn_id_r15()
{
assert_choice_type("plmn-Identity-r15", type_.to_string(), "plmn-Identity-5GC-r15");
return c.get<plmn_id_s>();
}
uint8_t& plmn_idx_r15()
{
assert_choice_type("plmn-Index-r15", type_.to_string(), "plmn-Identity-5GC-r15");
return c.get<uint8_t>();
}
const plmn_id_s& plmn_id_r15() const
{
assert_choice_type("plmn-Identity-r15", type_.to_string(), "plmn-Identity-5GC-r15");
return c.get<plmn_id_s>();
}
const uint8_t& plmn_idx_r15() const
{
assert_choice_type("plmn-Index-r15", type_.to_string(), "plmn-Identity-5GC-r15");
return c.get<uint8_t>();
}
plmn_id_s& set_plmn_id_r15()
{
set(types::plmn_id_r15);
return c.get<plmn_id_s>();
}
uint8_t& set_plmn_idx_r15()
{
set(types::plmn_idx_r15);
return c.get<uint8_t>();
}
private:
types type_;
choice_buffer_t<plmn_id_s> c;
void destroy_();
};
struct cell_reserved_for_oper_r15_opts {
enum options { reserved, not_reserved, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_reserved_for_oper_r15_opts> cell_reserved_for_oper_r15_e_;
struct cell_reserved_for_oper_crs_r15_opts {
enum options { reserved, not_reserved, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_reserved_for_oper_crs_r15_opts> cell_reserved_for_oper_crs_r15_e_;
// member variables
plmn_id_minus5_gc_r15_c_ plmn_id_minus5_gc_r15;
cell_reserved_for_oper_r15_e_ cell_reserved_for_oper_r15;
cell_reserved_for_oper_crs_r15_e_ cell_reserved_for_oper_crs_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PosSIB-MappingInfo-r15 ::= SEQUENCE (SIZE (1..32)) OF PosSIB-Type-r15
using pos_sib_map_info_r15_l = dyn_array<pos_sib_type_r15_s>;
// CellIdentity-5GC-r15 ::= CHOICE
struct cell_id_minus5_gc_r15_c {
struct types_opts {
enum options { cell_id_r15, cell_id_idx_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cell_id_minus5_gc_r15_c() = default;
cell_id_minus5_gc_r15_c(const cell_id_minus5_gc_r15_c& other);
cell_id_minus5_gc_r15_c& operator=(const cell_id_minus5_gc_r15_c& other);
~cell_id_minus5_gc_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<28>& cell_id_r15()
{
assert_choice_type("cellIdentity-r15", type_.to_string(), "CellIdentity-5GC-r15");
return c.get<fixed_bitstring<28> >();
}
uint8_t& cell_id_idx_r15()
{
assert_choice_type("cellId-Index-r15", type_.to_string(), "CellIdentity-5GC-r15");
return c.get<uint8_t>();
}
const fixed_bitstring<28>& cell_id_r15() const
{
assert_choice_type("cellIdentity-r15", type_.to_string(), "CellIdentity-5GC-r15");
return c.get<fixed_bitstring<28> >();
}
const uint8_t& cell_id_idx_r15() const
{
assert_choice_type("cellId-Index-r15", type_.to_string(), "CellIdentity-5GC-r15");
return c.get<uint8_t>();
}
fixed_bitstring<28>& set_cell_id_r15()
{
set(types::cell_id_r15);
return c.get<fixed_bitstring<28> >();
}
uint8_t& set_cell_id_idx_r15()
{
set(types::cell_id_idx_r15);
return c.get<uint8_t>();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<28> > c;
void destroy_();
};
// PLMN-IdentityInfo-v1530 ::= SEQUENCE
struct plmn_id_info_v1530_s {
struct cell_reserved_for_oper_crs_r15_opts {
enum options { reserved, not_reserved, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_reserved_for_oper_crs_r15_opts> cell_reserved_for_oper_crs_r15_e_;
// member variables
cell_reserved_for_oper_crs_r15_e_ cell_reserved_for_oper_crs_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList-r15 ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo-r15
using plmn_id_list_r15_l = dyn_array<plmn_id_info_r15_s>;
// PosSchedulingInfo-r15 ::= SEQUENCE
struct pos_sched_info_r15_s {
struct pos_si_periodicity_r15_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<pos_si_periodicity_r15_opts> pos_si_periodicity_r15_e_;
// member variables
pos_si_periodicity_r15_e_ pos_si_periodicity_r15;
pos_sib_map_info_r15_l pos_sib_map_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellAccessRelatedInfo-5GC-r15 ::= SEQUENCE
struct cell_access_related_info_minus5_gc_r15_s {
bool ran_area_code_r15_present = false;
plmn_id_list_r15_l plmn_id_list_r15;
uint16_t ran_area_code_r15 = 0;
fixed_bitstring<24> tac_minus5_gc_r15;
cell_id_minus5_gc_r15_c cell_id_minus5_gc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfoCE-v1530 ::= SEQUENCE
struct cell_sel_info_ce_v1530_s {
struct pwr_class14dbm_offset_r15_opts {
enum options { db_minus6, db_minus3, db3, db6, db9, db12, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<pwr_class14dbm_offset_r15_opts> pwr_class14dbm_offset_r15_e_;
// member variables
pwr_class14dbm_offset_r15_e_ pwr_class14dbm_offset_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MCS-PSSCH-Range-r15 ::= SEQUENCE
struct mcs_pssch_range_r15_s {
uint8_t min_mcs_pssch_r15 = 0;
uint8_t max_mcs_pssch_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityInfo ::= SEQUENCE
struct plmn_id_info_s {
struct cell_reserved_for_oper_opts {
enum options { reserved, not_reserved, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_reserved_for_oper_opts> cell_reserved_for_oper_e_;
// member variables
plmn_id_s plmn_id;
cell_reserved_for_oper_e_ cell_reserved_for_oper;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList-v1530 ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo-v1530
using plmn_id_list_v1530_l = dyn_array<plmn_id_info_v1530_s>;
// PosSchedulingInfoList-r15 ::= SEQUENCE (SIZE (1..32)) OF PosSchedulingInfo-r15
using pos_sched_info_list_r15_l = dyn_array<pos_sched_info_r15_s>;
// SL-PriorityList-r13 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..8)
using sl_prio_list_r13_l = bounded_array<uint8_t, 8>;
// SL-TxPower-r14 ::= CHOICE
struct sl_tx_pwr_r14_c {
struct types_opts {
enum options { minusinfinity_r14, tx_pwr_r14, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sl_tx_pwr_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
int8_t& tx_pwr_r14()
{
assert_choice_type("txPower-r14", type_.to_string(), "SL-TxPower-r14");
return c;
}
const int8_t& tx_pwr_r14() const
{
assert_choice_type("txPower-r14", type_.to_string(), "SL-TxPower-r14");
return c;
}
int8_t& set_tx_pwr_r14()
{
set(types::tx_pwr_r14);
return c;
}
private:
types type_;
int8_t c;
};
// Alpha-r12 ::= ENUMERATED
struct alpha_r12_opts {
enum options { al0, al04, al05, al06, al07, al08, al09, al1, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<alpha_r12_opts> alpha_r12_e;
// PLMN-IdentityList ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo
using plmn_id_list_l = dyn_array<plmn_id_info_s>;
// SL-MinT2Value-r15 ::= SEQUENCE
struct sl_min_t2_value_r15_s {
sl_prio_list_r13_l prio_list_r15;
uint8_t min_t2_value_r15 = 10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PPPP-TxConfigIndex-r14 ::= SEQUENCE
struct sl_pppp_tx_cfg_idx_r14_s {
using tx_cfg_idx_list_r14_l_ = bounded_array<uint8_t, 16>;
// member variables
uint8_t prio_thres_r14 = 1;
uint8_t default_tx_cfg_idx_r14 = 0;
uint8_t cbr_cfg_idx_r14 = 0;
tx_cfg_idx_list_r14_l_ tx_cfg_idx_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PPPP-TxConfigIndex-v1530 ::= SEQUENCE
struct sl_pppp_tx_cfg_idx_v1530_s {
using mcs_pssch_range_list_r15_l_ = dyn_array<mcs_pssch_range_r15_s>;
// member variables
bool mcs_pssch_range_list_r15_present = false;
mcs_pssch_range_list_r15_l_ mcs_pssch_range_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PSSCH-TxParameters-r14 ::= SEQUENCE
struct sl_pssch_tx_params_r14_s {
struct allowed_retx_num_pssch_r14_opts {
enum options { n0, n1, both, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<allowed_retx_num_pssch_r14_opts> allowed_retx_num_pssch_r14_e_;
// member variables
bool max_tx_pwr_r14_present = false;
uint8_t min_mcs_pssch_r14 = 0;
uint8_t max_mcs_pssch_r14 = 0;
uint8_t min_sub_ch_num_pssch_r14 = 1;
uint8_t max_subch_num_pssch_r14 = 1;
allowed_retx_num_pssch_r14_e_ allowed_retx_num_pssch_r14;
sl_tx_pwr_r14_c max_tx_pwr_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PSSCH-TxParameters-v1530 ::= SEQUENCE
struct sl_pssch_tx_params_v1530_s {
uint8_t min_mcs_pssch_r15 = 0;
uint8_t max_mcs_pssch_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-RestrictResourceReservationPeriod-r14 ::= ENUMERATED
struct sl_restrict_res_reserv_period_r14_opts {
enum options {
v0dot2,
v0dot5,
v1,
v2,
v3,
v4,
v5,
v6,
v7,
v8,
v9,
v10,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<sl_restrict_res_reserv_period_r14_opts> sl_restrict_res_reserv_period_r14_e;
// SL-TypeTxSync-r14 ::= ENUMERATED
struct sl_type_tx_sync_r14_opts {
enum options { gnss, enb, ue, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sl_type_tx_sync_r14_opts> sl_type_tx_sync_r14_e;
// 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 {
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_;
struct types_opts {
enum options { crs_intf_mitig_enabled_minus15, crs_intf_mitig_num_prbs_r15, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
crs_intf_mitig_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15()
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
const crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15() const
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
crs_intf_mitig_num_prbs_r15_e_& set_crs_intf_mitig_num_prbs_r15()
{
set(types::crs_intf_mitig_num_prbs_r15);
return c;
}
private:
types type_;
crs_intf_mitig_num_prbs_r15_e_ c;
};
struct cell_barred_crs_r15_opts {
enum options { barred, not_barred, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_barred_crs_r15_opts> cell_barred_crs_r15_e_;
struct cell_access_related_info_minus5_gc_r15_s_ {
struct cell_barred_minus5_gc_r15_opts {
enum options { barred, not_barred, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_barred_minus5_gc_r15_opts> cell_barred_minus5_gc_r15_e_;
struct cell_barred_minus5_gc_crs_r15_opts {
enum options { barred, not_barred, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_barred_minus5_gc_crs_r15_opts> cell_barred_minus5_gc_crs_r15_e_;
using cell_access_related_info_list_minus5_gc_r15_l_ = dyn_array<cell_access_related_info_minus5_gc_r15_s>;
// member variables
cell_barred_minus5_gc_r15_e_ cell_barred_minus5_gc_r15;
cell_barred_minus5_gc_crs_r15_e_ cell_barred_minus5_gc_crs_r15;
cell_access_related_info_list_minus5_gc_r15_l_ cell_access_related_info_list_minus5_gc_r15;
};
// member variables
bool hsdn_cell_r15_present = false;
bool cell_sel_info_ce_v1530_present = false;
bool crs_intf_mitig_cfg_r15_present = false;
bool plmn_id_list_v1530_present = false;
bool pos_sched_info_list_r15_present = false;
bool cell_access_related_info_minus5_gc_r15_present = false;
bool ims_emergency_support5_gc_r15_present = false;
bool ecall_over_ims_support5_gc_r15_present = false;
bool non_crit_ext_present = false;
cell_sel_info_ce_v1530_s cell_sel_info_ce_v1530;
crs_intf_mitig_cfg_r15_c_ crs_intf_mitig_cfg_r15;
cell_barred_crs_r15_e_ cell_barred_crs_r15;
plmn_id_list_v1530_l plmn_id_list_v1530;
pos_sched_info_list_r15_l pos_sched_info_list_r15;
cell_access_related_info_minus5_gc_r15_s_ cell_access_related_info_minus5_gc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TDD-Config-v1450 ::= SEQUENCE
struct tdd_cfg_v1450_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellAccessRelatedInfo-r14 ::= SEQUENCE
struct cell_access_related_info_r14_s {
plmn_id_list_l plmn_id_list_r14;
fixed_bitstring<16> tac_r14;
fixed_bitstring<28> cell_id_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfoCE1-v1360 ::= SEQUENCE
struct cell_sel_info_ce1_v1360_s {
int8_t delta_rx_lev_min_ce1_v1360 = -8;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NS-PmaxValue-v10l0 ::= SEQUENCE
struct ns_pmax_value_v10l0_s {
bool add_spec_emission_v10l0_present = false;
uint16_t add_spec_emission_v10l0 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CBR-PPPP-TxConfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r14
using sl_cbr_pppp_tx_cfg_list_r14_l = dyn_array<sl_pppp_tx_cfg_idx_r14_s>;
// SL-CBR-PPPP-TxConfigList-v1530 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-v1530
using sl_cbr_pppp_tx_cfg_list_v1530_l = dyn_array<sl_pppp_tx_cfg_idx_v1530_s>;
// SL-CP-Len-r12 ::= ENUMERATED
struct sl_cp_len_r12_opts {
enum options { normal, extended, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sl_cp_len_r12_opts> sl_cp_len_r12_e;
// SL-MinT2ValueList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-MinT2Value-r15
using sl_min_t2_value_list_r15_l = dyn_array<sl_min_t2_value_r15_s>;
// SL-OffsetIndicator-r12 ::= CHOICE
struct sl_offset_ind_r12_c {
struct types_opts {
enum options { small_r12, large_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sl_offset_ind_r12_c() = default;
sl_offset_ind_r12_c(const sl_offset_ind_r12_c& other);
sl_offset_ind_r12_c& operator=(const sl_offset_ind_r12_c& other);
~sl_offset_ind_r12_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& small_r12()
{
assert_choice_type("small-r12", type_.to_string(), "SL-OffsetIndicator-r12");
return c.get<uint16_t>();
}
uint16_t& large_r12()
{
assert_choice_type("large-r12", type_.to_string(), "SL-OffsetIndicator-r12");
return c.get<uint16_t>();
}
const uint16_t& small_r12() const
{
assert_choice_type("small-r12", type_.to_string(), "SL-OffsetIndicator-r12");
return c.get<uint16_t>();
}
const uint16_t& large_r12() const
{
assert_choice_type("large-r12", type_.to_string(), "SL-OffsetIndicator-r12");
return c.get<uint16_t>();
}
uint16_t& set_small_r12()
{
set(types::small_r12);
return c.get<uint16_t>();
}
uint16_t& set_large_r12()
{
set(types::large_r12);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// SL-P2X-ResourceSelectionConfig-r14 ::= SEQUENCE
struct sl_p2_x_res_sel_cfg_r14_s {
bool partial_sensing_r14_present = false;
bool random_sel_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PSSCH-TxConfig-r14 ::= SEQUENCE
struct sl_pssch_tx_cfg_r14_s {
struct thres_ue_speed_r14_opts {
enum options { kmph60, kmph80, kmph100, kmph120, kmph140, kmph160, kmph180, kmph200, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<thres_ue_speed_r14_opts> thres_ue_speed_r14_e_;
// member variables
bool ext = false;
bool type_tx_sync_r14_present = false;
sl_type_tx_sync_r14_e type_tx_sync_r14;
thres_ue_speed_r14_e_ thres_ue_speed_r14;
sl_pssch_tx_params_r14_s params_above_thres_r14;
sl_pssch_tx_params_r14_s params_below_thres_r14;
// ...
// group 0
copy_ptr<sl_pssch_tx_params_v1530_s> params_above_thres_v1530;
copy_ptr<sl_pssch_tx_params_v1530_s> params_below_thres_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-RestrictResourceReservationPeriodList-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-RestrictResourceReservationPeriod-r14
using sl_restrict_res_reserv_period_list_r14_l = bounded_array<sl_restrict_res_reserv_period_r14_e, 16>;
// SL-SyncAllowed-r14 ::= SEQUENCE
struct sl_sync_allowed_r14_s {
bool gnss_sync_r14_present = false;
bool enb_sync_r14_present = false;
bool ue_sync_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TxParameters-r12 ::= SEQUENCE
struct sl_tx_params_r12_s {
alpha_r12_e alpha_r12;
int8_t p0_r12 = -126;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SubframeBitmapSL-r12 ::= CHOICE
struct sf_bitmap_sl_r12_c {
struct types_opts {
enum options { bs4_r12, bs8_r12, bs12_r12, bs16_r12, bs30_r12, bs40_r12, bs42_r12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sf_bitmap_sl_r12_c() = default;
sf_bitmap_sl_r12_c(const sf_bitmap_sl_r12_c& other);
sf_bitmap_sl_r12_c& operator=(const sf_bitmap_sl_r12_c& other);
~sf_bitmap_sl_r12_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<4>& bs4_r12()
{
assert_choice_type("bs4-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<8>& bs8_r12()
{
assert_choice_type("bs8-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<12>& bs12_r12()
{
assert_choice_type("bs12-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<12> >();
}
fixed_bitstring<16>& bs16_r12()
{
assert_choice_type("bs16-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<30>& bs30_r12()
{
assert_choice_type("bs30-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<30> >();
}
fixed_bitstring<40>& bs40_r12()
{
assert_choice_type("bs40-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<42>& bs42_r12()
{
assert_choice_type("bs42-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<42> >();
}
const fixed_bitstring<4>& bs4_r12() const
{
assert_choice_type("bs4-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<8>& bs8_r12() const
{
assert_choice_type("bs8-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<12>& bs12_r12() const
{
assert_choice_type("bs12-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<12> >();
}
const fixed_bitstring<16>& bs16_r12() const
{
assert_choice_type("bs16-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<30>& bs30_r12() const
{
assert_choice_type("bs30-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<30> >();
}
const fixed_bitstring<40>& bs40_r12() const
{
assert_choice_type("bs40-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<40> >();
}
const fixed_bitstring<42>& bs42_r12() const
{
assert_choice_type("bs42-r12", type_.to_string(), "SubframeBitmapSL-r12");
return c.get<fixed_bitstring<42> >();
}
fixed_bitstring<4>& set_bs4_r12()
{
set(types::bs4_r12);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<8>& set_bs8_r12()
{
set(types::bs8_r12);
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<12>& set_bs12_r12()
{
set(types::bs12_r12);
return c.get<fixed_bitstring<12> >();
}
fixed_bitstring<16>& set_bs16_r12()
{
set(types::bs16_r12);
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<30>& set_bs30_r12()
{
set(types::bs30_r12);
return c.get<fixed_bitstring<30> >();
}
fixed_bitstring<40>& set_bs40_r12()
{
set(types::bs40_r12);
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<42>& set_bs42_r12()
{
set(types::bs42_r12);
return c.get<fixed_bitstring<42> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<42> > c;
void destroy_();
};
// SubframeBitmapSL-r14 ::= CHOICE
struct sf_bitmap_sl_r14_c {
struct types_opts {
enum options { bs10_r14, bs16_r14, bs20_r14, bs30_r14, bs40_r14, bs50_r14, bs60_r14, bs100_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
sf_bitmap_sl_r14_c() = default;
sf_bitmap_sl_r14_c(const sf_bitmap_sl_r14_c& other);
sf_bitmap_sl_r14_c& operator=(const sf_bitmap_sl_r14_c& other);
~sf_bitmap_sl_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<10>& bs10_r14()
{
assert_choice_type("bs10-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<16>& bs16_r14()
{
assert_choice_type("bs16-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<20>& bs20_r14()
{
assert_choice_type("bs20-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<20> >();
}
fixed_bitstring<30>& bs30_r14()
{
assert_choice_type("bs30-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<30> >();
}
fixed_bitstring<40>& bs40_r14()
{
assert_choice_type("bs40-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<50>& bs50_r14()
{
assert_choice_type("bs50-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<50> >();
}
fixed_bitstring<60>& bs60_r14()
{
assert_choice_type("bs60-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<60> >();
}
fixed_bitstring<100>& bs100_r14()
{
assert_choice_type("bs100-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<100> >();
}
const fixed_bitstring<10>& bs10_r14() const
{
assert_choice_type("bs10-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<10> >();
}
const fixed_bitstring<16>& bs16_r14() const
{
assert_choice_type("bs16-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<20>& bs20_r14() const
{
assert_choice_type("bs20-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<20> >();
}
const fixed_bitstring<30>& bs30_r14() const
{
assert_choice_type("bs30-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<30> >();
}
const fixed_bitstring<40>& bs40_r14() const
{
assert_choice_type("bs40-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<40> >();
}
const fixed_bitstring<50>& bs50_r14() const
{
assert_choice_type("bs50-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<50> >();
}
const fixed_bitstring<60>& bs60_r14() const
{
assert_choice_type("bs60-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<60> >();
}
const fixed_bitstring<100>& bs100_r14() const
{
assert_choice_type("bs100-r14", type_.to_string(), "SubframeBitmapSL-r14");
return c.get<fixed_bitstring<100> >();
}
fixed_bitstring<10>& set_bs10_r14()
{
set(types::bs10_r14);
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<16>& set_bs16_r14()
{
set(types::bs16_r14);
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<20>& set_bs20_r14()
{
set(types::bs20_r14);
return c.get<fixed_bitstring<20> >();
}
fixed_bitstring<30>& set_bs30_r14()
{
set(types::bs30_r14);
return c.get<fixed_bitstring<30> >();
}
fixed_bitstring<40>& set_bs40_r14()
{
set(types::bs40_r14);
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<50>& set_bs50_r14()
{
set(types::bs50_r14);
return c.get<fixed_bitstring<50> >();
}
fixed_bitstring<60>& set_bs60_r14()
{
set(types::bs60_r14);
return c.get<fixed_bitstring<60> >();
}
fixed_bitstring<100>& set_bs100_r14()
{
set(types::bs100_r14);
return c.get<fixed_bitstring<100> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<100> > c;
void destroy_();
};
// SystemInformationBlockType1-v1450-IEs ::= SEQUENCE
struct sib_type1_v1450_ies_s {
bool tdd_cfg_v1450_present = false;
bool non_crit_ext_present = false;
tdd_cfg_v1450_s tdd_cfg_v1450;
sib_type1_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TDD-Config ::= SEQUENCE
struct tdd_cfg_s {
struct sf_assign_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_opts> sf_assign_e_;
struct special_sf_patterns_opts {
enum options { ssp0, ssp1, ssp2, ssp3, ssp4, ssp5, ssp6, ssp7, ssp8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<special_sf_patterns_opts> special_sf_patterns_e_;
// member variables
sf_assign_e_ sf_assign;
special_sf_patterns_e_ special_sf_patterns;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TDD-Config-v1430 ::= SEQUENCE
struct tdd_cfg_v1430_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandclassCDMA2000 ::= ENUMERATED
struct bandclass_cdma2000_opts {
enum options {
bc0,
bc1,
bc2,
bc3,
bc4,
bc5,
bc6,
bc7,
bc8,
bc9,
bc10,
bc11,
bc12,
bc13,
bc14,
bc15,
bc16,
bc17,
bc18_v9a0,
bc19_v9a0,
bc20_v9a0,
bc21_v9a0,
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<bandclass_cdma2000_opts, true> bandclass_cdma2000_e;
// InterFreqCarrierFreqInfo-v1360 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1360_s {
bool cell_sel_info_ce1_v1360_present = false;
cell_sel_info_ce1_v1360_s cell_sel_info_ce1_v1360;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NS-PmaxList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-v10l0
using ns_pmax_list_v10l0_l = dyn_array<ns_pmax_value_v10l0_s>;
// NS-PmaxValue-r10 ::= SEQUENCE
struct ns_pmax_value_r10_s {
bool add_pmax_r10_present = false;
int8_t add_pmax_r10 = -30;
uint8_t add_spec_emission = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdList-r13 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..503)
using pci_list_r13_l = bounded_array<uint16_t, 16>;
// SL-CommResourcePoolV2X-r14 ::= SEQUENCE
struct sl_comm_res_pool_v2x_r14_s {
struct size_subch_r14_opts {
enum options {
n4,
n5,
n6,
n8,
n9,
n10,
n12,
n15,
n16,
n18,
n20,
n25,
n30,
n48,
n50,
n72,
n75,
n96,
n100,
spare13,
spare12,
spare11,
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<size_subch_r14_opts> size_subch_r14_e_;
struct num_subch_r14_opts {
enum options { n1, n3, n5, n8, n10, n15, n20, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_subch_r14_opts> num_subch_r14_e_;
struct rx_params_ncell_r14_s_ {
bool tdd_cfg_r14_present = false;
tdd_cfg_s tdd_cfg_r14;
uint8_t sync_cfg_idx_r14 = 0;
};
// member variables
bool ext = false;
bool sl_offset_ind_r14_present = false;
bool start_rb_pscch_pool_r14_present = false;
bool rx_params_ncell_r14_present = false;
bool data_tx_params_r14_present = false;
bool zone_id_r14_present = false;
bool thresh_s_rssi_cbr_r14_present = false;
bool pool_report_id_r14_present = false;
bool cbr_pssch_tx_cfg_list_r14_present = false;
bool res_sel_cfg_p2_x_r14_present = false;
bool sync_allowed_r14_present = false;
bool restrict_res_reserv_period_r14_present = false;
sl_offset_ind_r12_c sl_offset_ind_r14;
sf_bitmap_sl_r14_c sl_sf_r14;
bool adjacency_pscch_pssch_r14 = false;
size_subch_r14_e_ size_subch_r14;
num_subch_r14_e_ num_subch_r14;
uint8_t start_rb_subch_r14 = 0;
uint8_t start_rb_pscch_pool_r14 = 0;
rx_params_ncell_r14_s_ rx_params_ncell_r14;
sl_tx_params_r12_s data_tx_params_r14;
uint8_t zone_id_r14 = 0;
uint8_t thresh_s_rssi_cbr_r14 = 0;
uint8_t pool_report_id_r14 = 1;
sl_cbr_pppp_tx_cfg_list_r14_l cbr_pssch_tx_cfg_list_r14;
sl_p2_x_res_sel_cfg_r14_s res_sel_cfg_p2_x_r14;
sl_sync_allowed_r14_s sync_allowed_r14;
sl_restrict_res_reserv_period_list_r14_l restrict_res_reserv_period_r14;
// ...
// group 0
copy_ptr<sl_min_t2_value_list_r15_l> sl_min_t2_value_list_r15;
copy_ptr<sl_cbr_pppp_tx_cfg_list_v1530_l> cbr_pssch_tx_cfg_list_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PSSCH-TxConfigList-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-PSSCH-TxConfig-r14
using sl_pssch_tx_cfg_list_r14_l = dyn_array<sl_pssch_tx_cfg_r14_s>;
// SL-PoolSelectionConfig-r12 ::= SEQUENCE
struct sl_pool_sel_cfg_r12_s {
uint8_t thresh_low_r12 = 0;
uint8_t thresh_high_r12 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-SyncConfigNFreq-r13 ::= SEQUENCE
struct sl_sync_cfg_nfreq_r13_s {
struct async_params_r13_s_ {
sl_cp_len_r12_e sync_cp_len_r13;
uint8_t sync_offset_ind_r13 = 0;
uint8_t slssid_r13 = 0;
};
struct tx_params_r13_s_ {
bool sync_info_reserved_r13_present = false;
bool sync_tx_periodic_r13_present = false;
sl_tx_params_r12_s sync_tx_params_r13;
uint8_t sync_tx_thresh_ic_r13 = 0;
fixed_bitstring<19> sync_info_reserved_r13;
};
struct rx_params_r13_s_ {
struct disc_sync_win_r13_opts {
enum options { w1, w2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<disc_sync_win_r13_opts> disc_sync_win_r13_e_;
// member variables
disc_sync_win_r13_e_ disc_sync_win_r13;
};
// member variables
bool ext = false;
bool async_params_r13_present = false;
bool tx_params_r13_present = false;
bool rx_params_r13_present = false;
async_params_r13_s_ async_params_r13;
tx_params_r13_s_ tx_params_r13;
rx_params_r13_s_ rx_params_r13;
// ...
// group 0
bool sync_offset_ind_v1430_present = false;
bool gnss_sync_r14_present = false;
uint8_t sync_offset_ind_v1430 = 40;
// group 1
bool sync_offset_ind2_r14_present = false;
bool sync_offset_ind3_r14_present = false;
uint8_t sync_offset_ind2_r14 = 0;
uint8_t sync_offset_ind3_r14 = 0;
// group 2
bool slss_tx_disabled_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TF-ResourceConfig-r12 ::= SEQUENCE
struct sl_tf_res_cfg_r12_s {
uint8_t prb_num_r12 = 1;
uint8_t prb_start_r12 = 0;
uint8_t prb_end_r12 = 0;
sl_offset_ind_r12_c offset_ind_r12;
sf_bitmap_sl_r12_c sf_bitmap_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-ThresPSSCH-RSRP-List-r14 ::= SEQUENCE (SIZE (64)) OF INTEGER (0..66)
using sl_thres_pssch_rsrp_list_r14_l = std::array<uint8_t, 64>;
// SystemInformationBlockType1-v1430-IEs ::= SEQUENCE
struct sib_type1_v1430_ies_s {
using cell_access_related_info_list_r14_l_ = dyn_array<cell_access_related_info_r14_s>;
// member variables
bool ecall_over_ims_support_r14_present = false;
bool tdd_cfg_v1430_present = false;
bool cell_access_related_info_list_r14_present = false;
bool non_crit_ext_present = false;
tdd_cfg_v1430_s tdd_cfg_v1430;
cell_access_related_info_list_r14_l_ cell_access_related_info_list_r14;
sib_type1_v1450_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TDD-Config-v1130 ::= SEQUENCE
struct tdd_cfg_v1130_s {
struct special_sf_patterns_v1130_opts {
enum options { ssp7, ssp9, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<special_sf_patterns_v1130_opts> special_sf_patterns_v1130_e_;
// member variables
special_sf_patterns_v1130_e_ special_sf_patterns_v1130;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassInfoCDMA2000 ::= SEQUENCE
struct band_class_info_cdma2000_s {
bool ext = false;
bool cell_resel_prio_present = false;
bandclass_cdma2000_e band_class;
uint8_t cell_resel_prio = 0;
uint8_t thresh_x_high = 0;
uint8_t thresh_x_low = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfoCE1-r13 ::= SEQUENCE
struct cell_sel_info_ce1_r13_s {
bool q_qual_min_rsrq_ce1_r13_present = false;
int8_t q_rx_lev_min_ce1_r13 = -70;
int8_t q_qual_min_rsrq_ce1_r13 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqList-v13a0 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360
using inter_freq_carrier_freq_list_v13a0_l = dyn_array<inter_freq_carrier_freq_info_v1360_s>;
// MultiBandInfoList-v10l0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-v10l0
using multi_band_info_list_v10l0_l = dyn_array<ns_pmax_list_v10l0_l>;
// NS-PmaxList-r10 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxValue-r10
using ns_pmax_list_r10_l = dyn_array<ns_pmax_value_r10_s>;
// NeighCellsPerBandclassCDMA2000-r11 ::= SEQUENCE
struct neigh_cells_per_bandclass_cdma2000_r11_s {
using pci_list_r11_l_ = dyn_array<uint16_t>;
// member variables
uint16_t arfcn = 0;
pci_list_r11_l_ pci_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..511)
using pci_list_cdma2000_l = bounded_array<uint16_t, 16>;
// PhysCellIdListCDMA2000-v920 ::= SEQUENCE (SIZE (0..24)) OF INTEGER (0..511)
using pci_list_cdma2000_v920_l = bounded_array<uint16_t, 24>;
// SL-CommRxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-CommResourcePoolV2X-r14
using sl_comm_rx_pool_list_v2x_r14_l = dyn_array<sl_comm_res_pool_v2x_r14_s>;
// SL-CommTxPoolListV2X-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-CommResourcePoolV2X-r14
using sl_comm_tx_pool_list_v2x_r14_l = dyn_array<sl_comm_res_pool_v2x_r14_s>;
// SL-CommTxPoolSensingConfig-r14 ::= SEQUENCE
struct sl_comm_tx_pool_sensing_cfg_r14_s {
struct prob_res_keep_r14_opts {
enum options { v0, v0dot2, v0dot4, v0dot6, v0dot8, spare3, spare2, spare1, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<prob_res_keep_r14_opts> prob_res_keep_r14_e_;
struct p2x_sensing_cfg_r14_s_ {
uint8_t min_num_candidate_sf_r14 = 1;
fixed_bitstring<10> gap_candidate_sensing_r14;
};
struct sl_reselect_after_r14_opts {
enum options {
n1,
n2,
n3,
n4,
n5,
n6,
n7,
n8,
n9,
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<sl_reselect_after_r14_opts> sl_reselect_after_r14_e_;
// member variables
bool restrict_res_reserv_period_r14_present = false;
bool p2x_sensing_cfg_r14_present = false;
bool sl_reselect_after_r14_present = false;
sl_pssch_tx_cfg_list_r14_l pssch_tx_cfg_list_r14;
sl_thres_pssch_rsrp_list_r14_l thres_pssch_rsrp_list_r14;
sl_restrict_res_reserv_period_list_r14_l restrict_res_reserv_period_r14;
prob_res_keep_r14_e_ prob_res_keep_r14;
p2x_sensing_cfg_r14_s_ p2x_sensing_cfg_r14;
sl_reselect_after_r14_e_ sl_reselect_after_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
struct setup_opts {
enum options { release, setup, nulltype } value;
std::string to_string() const;
};
typedef enumerated<setup_opts> setup_e;
// SL-DiscResourcePool-r12 ::= SEQUENCE
struct sl_disc_res_pool_r12_s {
struct disc_period_r12_opts {
enum options { rf32, rf64, rf128, rf256, rf512, rf1024, rf16_v1310, spare, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<disc_period_r12_opts> disc_period_r12_e_;
struct tx_params_r12_s_ {
struct ue_sel_res_cfg_r12_s_ {
struct pool_sel_r12_c_ {
struct types_opts {
enum options { rsrp_based_r12, random_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pool_sel_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_pool_sel_cfg_r12_s& rsrp_based_r12()
{
assert_choice_type("rsrpBased-r12", type_.to_string(), "poolSelection-r12");
return c;
}
const sl_pool_sel_cfg_r12_s& rsrp_based_r12() const
{
assert_choice_type("rsrpBased-r12", type_.to_string(), "poolSelection-r12");
return c;
}
sl_pool_sel_cfg_r12_s& set_rsrp_based_r12()
{
set(types::rsrp_based_r12);
return c;
}
private:
types type_;
sl_pool_sel_cfg_r12_s c;
};
struct tx_probability_r12_opts {
enum options { p25, p50, p75, p100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_probability_r12_opts> tx_probability_r12_e_;
// member variables
pool_sel_r12_c_ pool_sel_r12;
tx_probability_r12_e_ tx_probability_r12;
};
// member variables
bool ue_sel_res_cfg_r12_present = false;
sl_tx_params_r12_s tx_params_general_r12;
ue_sel_res_cfg_r12_s_ ue_sel_res_cfg_r12;
};
struct rx_params_r12_s_ {
bool tdd_cfg_r12_present = false;
tdd_cfg_s tdd_cfg_r12;
uint8_t sync_cfg_idx_r12 = 0;
};
struct disc_period_v1310_c_ {
struct setup_opts {
enum options { rf4, rf6, rf7, rf8, rf12, rf14, rf24, rf28, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
disc_period_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "discPeriod-v1310");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "discPeriod-v1310");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
struct rx_params_add_neigh_freq_r13_c_ {
struct setup_s_ {
pci_list_r13_l pci_r13;
};
typedef setup_e types;
// choice methods
rx_params_add_neigh_freq_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "rxParamsAddNeighFreq-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "rxParamsAddNeighFreq-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct tx_params_add_neigh_freq_r13_c_ {
struct setup_s_ {
struct freq_info_s_ {
struct ul_bw_opts {
enum options { n6, n15, n25, n50, n75, n100, 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_carrier_freq_present = false;
bool ul_bw_present = false;
uint32_t ul_carrier_freq = 0;
ul_bw_e_ ul_bw;
uint8_t add_spec_emission = 1;
};
// member variables
bool p_max_present = false;
bool tdd_cfg_r13_present = false;
bool tdd_cfg_v1130_present = false;
bool sync_cfg_idx_r13_present = false;
pci_list_r13_l pci_r13;
int8_t p_max = -30;
tdd_cfg_s tdd_cfg_r13;
tdd_cfg_v1130_s tdd_cfg_v1130;
freq_info_s_ freq_info;
int8_t ref_sig_pwr = -60;
uint8_t sync_cfg_idx_r13 = 0;
};
typedef setup_e types;
// choice methods
tx_params_add_neigh_freq_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct tx_params_add_neigh_freq_v1370_c_ {
struct setup_s_ {
struct freq_info_v1370_s_ {
uint16_t add_spec_emission_v1370 = 33;
};
// member variables
freq_info_v1370_s_ freq_info_v1370;
};
typedef setup_e types;
// choice methods
tx_params_add_neigh_freq_v1370_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-v1370");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "txParamsAddNeighFreq-v1370");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool tx_params_r12_present = false;
bool rx_params_r12_present = false;
sl_cp_len_r12_e cp_len_r12;
disc_period_r12_e_ disc_period_r12;
uint8_t num_retx_r12 = 0;
uint8_t num_repeat_r12 = 1;
sl_tf_res_cfg_r12_s tf_res_cfg_r12;
tx_params_r12_s_ tx_params_r12;
rx_params_r12_s_ rx_params_r12;
// ...
// group 0
copy_ptr<disc_period_v1310_c_> disc_period_v1310;
copy_ptr<rx_params_add_neigh_freq_r13_c_> rx_params_add_neigh_freq_r13;
copy_ptr<tx_params_add_neigh_freq_r13_c_> tx_params_add_neigh_freq_r13;
// group 1
copy_ptr<tx_params_add_neigh_freq_v1370_c_> tx_params_add_neigh_freq_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-SyncConfigListNFreqV2X-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfigNFreq-r13
using sl_sync_cfg_list_nfreq_v2x_r14_l = dyn_array<sl_sync_cfg_nfreq_r13_s>;
// SL-ZoneConfig-r14 ::= SEQUENCE
struct sl_zone_cfg_r14_s {
struct zone_len_r14_opts {
enum options { m5, m10, m20, m50, m100, m200, m500, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<zone_len_r14_opts> zone_len_r14_e_;
struct zone_width_r14_opts {
enum options { m5, m10, m20, m50, m100, m200, m500, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<zone_width_r14_opts> zone_width_r14_e_;
// member variables
zone_len_r14_e_ zone_len_r14;
zone_width_r14_e_ zone_width_r14;
uint8_t zone_id_longi_mod_r14 = 1;
uint8_t zone_id_lati_mod_r14 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v1360-IEs ::= SEQUENCE
struct sib_type1_v1360_ies_s {
bool cell_sel_info_ce1_v1360_present = false;
bool non_crit_ext_present = false;
cell_sel_info_ce1_v1360_s cell_sel_info_ce1_v1360;
sib_type1_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF BandClassInfoCDMA2000
using band_class_list_cdma2000_l = dyn_array<band_class_info_cdma2000_s>;
// InterFreqCarrierFreqInfo-v10l0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v10l0_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MultiBandInfo-v9e0 ::= SEQUENCE
struct multi_band_info_v9e0_s {
bool freq_band_ind_v9e0_present = false;
uint16_t freq_band_ind_v9e0 = 65;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MultiBandInfoList-v10j0 ::= SEQUENCE (SIZE (1..8)) OF NS-PmaxList-r10
using multi_band_info_list_v10j0_l = dyn_array<ns_pmax_list_r10_l>;
// NeighCellCDMA2000-r11 ::= SEQUENCE
struct neigh_cell_cdma2000_r11_s {
using neigh_freq_info_list_r11_l_ = dyn_array<neigh_cells_per_bandclass_cdma2000_r11_s>;
// member variables
bandclass_cdma2000_e band_class;
neigh_freq_info_list_r11_l_ neigh_freq_info_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellsPerBandclassCDMA2000 ::= SEQUENCE
struct neigh_cells_per_bandclass_cdma2000_s {
uint16_t arfcn = 0;
pci_list_cdma2000_l pci_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellsPerBandclassCDMA2000-v920 ::= SEQUENCE
struct neigh_cells_per_bandclass_cdma2000_v920_s {
pci_list_cdma2000_v920_l pci_list_v920;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdRange ::= SEQUENCE
struct pci_range_s {
struct range_opts {
enum options {
n4,
n8,
n12,
n16,
n24,
n32,
n48,
n64,
n84,
n96,
n128,
n168,
n252,
n504,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<range_opts> range_e_;
// member variables
bool range_present = false;
uint16_t start = 0;
range_e_ range;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Q-OffsetRange ::= ENUMERATED
struct q_offset_range_opts {
enum options {
db_minus24,
db_minus22,
db_minus20,
db_minus18,
db_minus16,
db_minus14,
db_minus12,
db_minus10,
db_minus8,
db_minus6,
db_minus5,
db_minus4,
db_minus3,
db_minus2,
db_minus1,
db0,
db1,
db2,
db3,
db4,
db5,
db6,
db8,
db10,
db12,
db14,
db16,
db18,
db20,
db22,
db24,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<q_offset_range_opts> q_offset_range_e;
// RedistributionNeighCell-r13 ::= SEQUENCE
struct redist_neigh_cell_r13_s {
uint16_t pci_r13 = 0;
uint8_t redist_factor_cell_r13 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxPoolList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-DiscResourcePool-r12
using sl_disc_tx_pool_list_r12_l = dyn_array<sl_disc_res_pool_r12_s>;
// SL-DiscTxPowerInfo-r12 ::= SEQUENCE
struct sl_disc_tx_pwr_info_r12_s {
bool ext = false;
int8_t disc_max_tx_pwr_r12 = -30;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-FreqSelectionConfig-r15 ::= SEQUENCE
struct sl_v2x_freq_sel_cfg_r15_s {
bool thresh_cbr_freq_resel_r15_present = false;
bool thresh_cbr_freq_keeping_r15_present = false;
sl_prio_list_r13_l prio_list_r15;
uint8_t thresh_cbr_freq_resel_r15 = 0;
uint8_t thresh_cbr_freq_keeping_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-InterFreqUE-Config-r14 ::= SEQUENCE
struct sl_v2x_inter_freq_ue_cfg_r14_s {
bool ext = false;
bool pci_list_r14_present = false;
bool type_tx_sync_r14_present = false;
bool v2x_sync_cfg_r14_present = false;
bool v2x_comm_rx_pool_r14_present = false;
bool v2x_comm_tx_pool_normal_r14_present = false;
bool p2x_comm_tx_pool_normal_r14_present = false;
bool v2x_comm_tx_pool_exceptional_r14_present = false;
bool v2x_res_sel_cfg_r14_present = false;
bool zone_cfg_r14_present = false;
bool offset_dfn_r14_present = false;
pci_list_r13_l pci_list_r14;
sl_type_tx_sync_r14_e type_tx_sync_r14;
sl_sync_cfg_list_nfreq_v2x_r14_l v2x_sync_cfg_r14;
sl_comm_rx_pool_list_v2x_r14_l v2x_comm_rx_pool_r14;
sl_comm_tx_pool_list_v2x_r14_l v2x_comm_tx_pool_normal_r14;
sl_comm_tx_pool_list_v2x_r14_l p2x_comm_tx_pool_normal_r14;
sl_comm_res_pool_v2x_r14_s v2x_comm_tx_pool_exceptional_r14;
sl_comm_tx_pool_sensing_cfg_r14_s v2x_res_sel_cfg_r14;
sl_zone_cfg_r14_s zone_cfg_r14;
uint16_t offset_dfn_r14 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SchedulingInfo-BR-r13 ::= SEQUENCE
struct sched_info_br_r13_s {
struct si_tbs_r13_opts {
enum options { b152, b208, b256, b328, b408, b504, b600, b712, b808, b936, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<si_tbs_r13_opts> si_tbs_r13_e_;
// member variables
uint8_t si_nb_r13 = 1;
si_tbs_r13_e_ si_tbs_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecondaryPreRegistrationZoneIdListHRPD ::= SEQUENCE (SIZE (1..2)) OF INTEGER (0..255)
using secondary_pre_regist_zone_id_list_hrpd_l = bounded_array<uint16_t, 2>;
// SpeedStateScaleFactors ::= SEQUENCE
struct speed_state_scale_factors_s {
struct sf_medium_opts {
enum options { odot25, odot5, odot75, ldot0, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<sf_medium_opts> sf_medium_e_;
struct sf_high_opts {
enum options { odot25, odot5, odot75, ldot0, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<sf_high_opts> sf_high_e_;
// member variables
sf_medium_e_ sf_medium;
sf_high_e_ sf_high;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v1350-IEs ::= SEQUENCE
struct sib_type1_v1350_ies_s {
bool cell_sel_info_ce1_r13_present = false;
bool non_crit_ext_present = false;
cell_sel_info_ce1_r13_s cell_sel_info_ce1_r13;
sib_type1_v1360_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v13a0-IEs ::= SEQUENCE
struct sib_type5_v13a0_ies_s {
bool late_non_crit_ext_present = false;
bool inter_freq_carrier_freq_list_v13a0_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
inter_freq_carrier_freq_list_v13a0_l inter_freq_carrier_freq_list_v13a0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AC-BarringConfig1XRTT-r9 ::= SEQUENCE
struct ac_barr_cfg1_xrtt_r9_s {
uint8_t ac_barr0to9_r9 = 0;
uint8_t ac_barr10_r9 = 0;
uint8_t ac_barr11_r9 = 0;
uint8_t ac_barr12_r9 = 0;
uint8_t ac_barr13_r9 = 0;
uint8_t ac_barr14_r9 = 0;
uint8_t ac_barr15_r9 = 0;
uint8_t ac_barr_msg_r9 = 0;
uint8_t ac_barr_reg_r9 = 0;
uint8_t ac_barr_emg_r9 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AllowedMeasBandwidth ::= ENUMERATED
struct allowed_meas_bw_opts {
enum options { mbw6, mbw15, mbw25, mbw50, mbw75, mbw100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<allowed_meas_bw_opts> allowed_meas_bw_e;
// BandIndicatorGERAN ::= ENUMERATED
struct band_ind_geran_opts {
enum options { dcs1800, pcs1900, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<band_ind_geran_opts> band_ind_geran_e;
// BarringPerACDC-Category-r13 ::= SEQUENCE
struct barr_per_acdc_category_r13_s {
struct acdc_barr_cfg_r13_s_ {
struct ac_barr_factor_r13_opts {
enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<ac_barr_factor_r13_opts> ac_barr_factor_r13_e_;
struct ac_barr_time_r13_opts {
enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<ac_barr_time_r13_opts> ac_barr_time_r13_e_;
// member variables
ac_barr_factor_r13_e_ ac_barr_factor_r13;
ac_barr_time_r13_e_ ac_barr_time_r13;
};
// member variables
bool acdc_barr_cfg_r13_present = false;
uint8_t acdc_category_r13 = 1;
acdc_barr_cfg_r13_s_ acdc_barr_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFB-RegistrationParam1XRTT ::= SEQUENCE
struct csfb_regist_param1_xrtt_s {
fixed_bitstring<15> sid;
fixed_bitstring<16> nid;
bool multiple_sid = false;
bool multiple_nid = false;
bool home_reg = false;
bool foreign_sid_reg = false;
bool foreign_nid_reg = false;
bool param_reg = false;
bool pwr_up_reg = false;
fixed_bitstring<7> regist_period;
fixed_bitstring<12> regist_zone;
fixed_bitstring<3> total_zone;
fixed_bitstring<3> zone_timer;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFB-RegistrationParam1XRTT-v920 ::= SEQUENCE
struct csfb_regist_param1_xrtt_v920_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellList-r15 ::= SEQUENCE (SIZE (1..8)) OF PhysCellIdRange
using cell_list_r15_l = dyn_array<pci_range_s>;
// CellReselectionParametersCDMA2000-r11 ::= SEQUENCE
struct cell_resel_params_cdma2000_r11_s {
using neigh_cell_list_r11_l_ = dyn_array<neigh_cell_cdma2000_r11_s>;
// member variables
bool t_resel_cdma2000_sf_present = false;
band_class_list_cdma2000_l band_class_list;
neigh_cell_list_r11_l_ neigh_cell_list_r11;
uint8_t t_resel_cdma2000 = 0;
speed_state_scale_factors_s t_resel_cdma2000_sf;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfoCE-r13 ::= SEQUENCE
struct cell_sel_info_ce_r13_s {
bool q_qual_min_rsrq_ce_r13_present = false;
int8_t q_rx_lev_min_ce_r13 = -70;
int8_t q_qual_min_rsrq_ce_r13 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfoNFreq-r13 ::= SEQUENCE
struct cell_sel_info_nfreq_r13_s {
struct q_hyst_r13_opts {
enum options {
db0,
db1,
db2,
db3,
db4,
db5,
db6,
db8,
db10,
db12,
db14,
db16,
db18,
db20,
db22,
db24,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<q_hyst_r13_opts> q_hyst_r13_e_;
// member variables
bool q_rx_lev_min_offset_present = false;
int8_t q_rx_lev_min_r13 = -70;
uint8_t q_rx_lev_min_offset = 1;
q_hyst_r13_e_ q_hyst_r13;
int8_t q_rx_lev_min_resel_r13 = -70;
uint8_t t_resel_eutra_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ExplicitListOfARFCNs ::= SEQUENCE (SIZE (0..31)) OF INTEGER (0..1023)
using explicit_list_of_arfcns_l = bounded_array<uint16_t, 31>;
// InterFreqCarrierFreqInfo-v10j0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v10j0_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqNeighCellInfo ::= SEQUENCE
struct inter_freq_neigh_cell_info_s {
uint16_t pci = 0;
q_offset_range_e q_offset_cell;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MultiBandInfoList-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MultiBandInfo-v9e0
using multi_band_info_list_v9e0_l = dyn_array<multi_band_info_v9e0_s>;
// NS-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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellsPerBandclassListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000
using neigh_cells_per_bandclass_list_cdma2000_l = dyn_array<neigh_cells_per_bandclass_cdma2000_s>;
// NeighCellsPerBandclassListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellsPerBandclassCDMA2000-v920
using neigh_cells_per_bandclass_list_cdma2000_v920_l = dyn_array<neigh_cells_per_bandclass_cdma2000_v920_s>;
// PLMN-IdentityInfo2-r12 ::= CHOICE
struct plmn_id_info2_r12_c {
struct types_opts {
enum options { plmn_idx_r12, plmn_id_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
plmn_id_info2_r12_c() = default;
plmn_id_info2_r12_c(const plmn_id_info2_r12_c& other);
plmn_id_info2_r12_c& operator=(const plmn_id_info2_r12_c& other);
~plmn_id_info2_r12_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& plmn_idx_r12()
{
assert_choice_type("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<uint8_t>();
}
plmn_id_s& plmn_id_r12()
{
assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
const uint8_t& plmn_idx_r12() const
{
assert_choice_type("plmn-Index-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<uint8_t>();
}
const plmn_id_s& plmn_id_r12() const
{
assert_choice_type("plmnIdentity-r12", type_.to_string(), "PLMN-IdentityInfo2-r12");
return c.get<plmn_id_s>();
}
uint8_t& set_plmn_idx_r12()
{
set(types::plmn_idx_r12);
return c.get<uint8_t>();
}
plmn_id_s& set_plmn_id_r12()
{
set(types::plmn_id_r12);
return c.get<plmn_id_s>();
}
private:
types type_;
choice_buffer_t<plmn_id_s> c;
void destroy_();
};
// PRACH-ParametersCE-r13 ::= SEQUENCE
struct prach_params_ce_r13_s {
struct prach_start_sf_r13_opts {
enum options { sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<prach_start_sf_r13_opts> prach_start_sf_r13_e_;
struct max_num_preamb_attempt_ce_r13_opts {
enum options { n3, n4, n5, n6, n7, n8, n10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_preamb_attempt_ce_r13_opts> max_num_preamb_attempt_ce_r13_e_;
struct num_repeat_per_preamb_attempt_r13_opts {
enum options { n1, n2, n4, n8, n16, n32, n64, n128, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_repeat_per_preamb_attempt_r13_opts> num_repeat_per_preamb_attempt_r13_e_;
using mpdcch_nbs_to_monitor_r13_l_ = bounded_array<uint8_t, 2>;
struct mpdcch_num_repeat_ra_r13_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mpdcch_num_repeat_ra_r13_opts> mpdcch_num_repeat_ra_r13_e_;
struct prach_hop_cfg_r13_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<prach_hop_cfg_r13_opts> prach_hop_cfg_r13_e_;
// member variables
bool prach_start_sf_r13_present = false;
bool max_num_preamb_attempt_ce_r13_present = false;
uint8_t prach_cfg_idx_r13 = 0;
uint8_t prach_freq_offset_r13 = 0;
prach_start_sf_r13_e_ prach_start_sf_r13;
max_num_preamb_attempt_ce_r13_e_ max_num_preamb_attempt_ce_r13;
num_repeat_per_preamb_attempt_r13_e_ num_repeat_per_preamb_attempt_r13;
mpdcch_nbs_to_monitor_r13_l_ mpdcch_nbs_to_monitor_r13;
mpdcch_num_repeat_ra_r13_e_ mpdcch_num_repeat_ra_r13;
prach_hop_cfg_r13_e_ prach_hop_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PreRegistrationInfoHRPD ::= SEQUENCE
struct pre_regist_info_hrpd_s {
bool pre_regist_zone_id_present = false;
bool secondary_pre_regist_zone_id_list_present = false;
bool pre_regist_allowed = false;
uint16_t pre_regist_zone_id = 0;
secondary_pre_regist_zone_id_list_hrpd_l secondary_pre_regist_zone_id_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-CE-LevelInfo-r13 ::= SEQUENCE
struct rach_ce_level_info_r13_s {
struct preamb_map_info_r13_s_ {
uint8_t first_preamb_r13 = 0;
uint8_t last_preamb_r13 = 0;
};
struct ra_resp_win_size_r13_opts {
enum options { sf20, sf50, sf80, sf120, sf180, sf240, sf320, sf400, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<ra_resp_win_size_r13_opts> ra_resp_win_size_r13_e_;
struct mac_contention_resolution_timer_r13_opts {
enum options { sf80, sf100, sf120, sf160, sf200, sf240, sf480, sf960, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mac_contention_resolution_timer_r13_opts> mac_contention_resolution_timer_r13_e_;
struct rar_hop_cfg_r13_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<rar_hop_cfg_r13_opts> rar_hop_cfg_r13_e_;
struct edt_params_r15_s_ {
struct edt_tbs_r15_opts {
enum options { b328, b408, b504, b600, b712, b808, b936, b1000or456, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<edt_tbs_r15_opts> edt_tbs_r15_e_;
struct mac_contention_resolution_timer_r15_opts {
enum options { sf240, sf480, sf960, sf1920, sf3840, sf5760, sf7680, sf10240, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mac_contention_resolution_timer_r15_opts> mac_contention_resolution_timer_r15_e_;
// member variables
bool mac_contention_resolution_timer_r15_present = false;
uint8_t edt_last_preamb_r15 = 0;
bool edt_small_tbs_enabled_r15 = false;
edt_tbs_r15_e_ edt_tbs_r15;
mac_contention_resolution_timer_r15_e_ mac_contention_resolution_timer_r15;
};
// member variables
bool ext = false;
preamb_map_info_r13_s_ preamb_map_info_r13;
ra_resp_win_size_r13_e_ ra_resp_win_size_r13;
mac_contention_resolution_timer_r13_e_ mac_contention_resolution_timer_r13;
rar_hop_cfg_r13_e_ rar_hop_cfg_r13;
// ...
// group 0
copy_ptr<edt_params_r15_s_> edt_params_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RedistributionNeighCellList-r13 ::= SEQUENCE (SIZE (1..16)) OF RedistributionNeighCell-r13
using redist_neigh_cell_list_r13_l = dyn_array<redist_neigh_cell_r13_s>;
// SL-AllowedCarrierFreqList-r15 ::= SEQUENCE
struct sl_allowed_carrier_freq_list_r15_s {
using allowed_carrier_freq_set1_l_ = bounded_array<uint32_t, 8>;
using allowed_carrier_freq_set2_l_ = bounded_array<uint32_t, 8>;
// member variables
allowed_carrier_freq_set1_l_ allowed_carrier_freq_set1;
allowed_carrier_freq_set2_l_ allowed_carrier_freq_set2;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DestinationInfoList-r12 ::= SEQUENCE (SIZE (1..16)) OF BIT STRING (SIZE (24))
using sl_dest_info_list_r12_l = bounded_array<fixed_bitstring<24>, 16>;
// SL-DiscRxPoolList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-DiscResourcePool-r12
using sl_disc_rx_pool_list_r12_l = dyn_array<sl_disc_res_pool_r12_s>;
// SL-DiscTxPowerInfoList-r12 ::= SEQUENCE (SIZE (3)) OF SL-DiscTxPowerInfo-r12
using sl_disc_tx_pwr_info_list_r12_l = std::array<sl_disc_tx_pwr_info_r12_s, 3>;
// SL-DiscTxResourcesInterFreq-r13 ::= CHOICE
struct sl_disc_tx_res_inter_freq_r13_c {
struct types_opts {
enum options {
acquire_si_from_carrier_r13,
disc_tx_pool_common_r13,
request_ded_r13,
no_tx_on_carrier_r13,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sl_disc_tx_res_inter_freq_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_disc_tx_pool_list_r12_l& disc_tx_pool_common_r13()
{
assert_choice_type("discTxPoolCommon-r13", type_.to_string(), "SL-DiscTxResourcesInterFreq-r13");
return c;
}
const sl_disc_tx_pool_list_r12_l& disc_tx_pool_common_r13() const
{
assert_choice_type("discTxPoolCommon-r13", type_.to_string(), "SL-DiscTxResourcesInterFreq-r13");
return c;
}
sl_disc_tx_pool_list_r12_l& set_disc_tx_pool_common_r13()
{
set(types::disc_tx_pool_common_r13);
return c;
}
private:
types type_;
sl_disc_tx_pool_list_r12_l c;
};
// 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>;
// SL-V2X-FreqSelectionConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-V2X-FreqSelectionConfig-r15
using sl_v2x_freq_sel_cfg_list_r15_l = dyn_array<sl_v2x_freq_sel_cfg_r15_s>;
// SL-V2X-UE-ConfigList-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-V2X-InterFreqUE-Config-r14
using sl_v2x_ue_cfg_list_r14_l = dyn_array<sl_v2x_inter_freq_ue_cfg_r14_s>;
// SchedulingInfoList-BR-r13 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-BR-r13
using sched_info_list_br_r13_l = dyn_array<sched_info_br_r13_s>;
// SystemInfoValueTagList-r13 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (0..3)
using sys_info_value_tag_list_r13_l = bounded_array<uint8_t, 32>;
// SystemInformationBlockType1-v1320-IEs ::= SEQUENCE
struct sib_type1_v1320_ies_s {
struct freq_hop_params_dl_r13_s_ {
struct mpdcch_pdsch_hop_nb_r13_opts {
enum options { nb2, nb4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mpdcch_pdsch_hop_nb_r13_opts> mpdcch_pdsch_hop_nb_r13_e_;
struct interv_dl_hop_cfg_common_mode_a_r13_c_ {
struct interv_fdd_r13_opts {
enum options { int1, int2, int4, int8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int1, int5, int10, int20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
interv_dl_hop_cfg_common_mode_a_r13_c_() = default;
interv_dl_hop_cfg_common_mode_a_r13_c_(const interv_dl_hop_cfg_common_mode_a_r13_c_& other);
interv_dl_hop_cfg_common_mode_a_r13_c_& operator=(const interv_dl_hop_cfg_common_mode_a_r13_c_& other);
~interv_dl_hop_cfg_common_mode_a_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeA-r13");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct interv_dl_hop_cfg_common_mode_b_r13_c_ {
struct interv_fdd_r13_opts {
enum options { int2, int4, int8, int16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int5, int10, int20, int40, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
interv_dl_hop_cfg_common_mode_b_r13_c_() = default;
interv_dl_hop_cfg_common_mode_b_r13_c_(const interv_dl_hop_cfg_common_mode_b_r13_c_& other);
interv_dl_hop_cfg_common_mode_b_r13_c_& operator=(const interv_dl_hop_cfg_common_mode_b_r13_c_& other);
~interv_dl_hop_cfg_common_mode_b_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-DLHoppingConfigCommonModeB-r13");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool mpdcch_pdsch_hop_nb_r13_present = false;
bool interv_dl_hop_cfg_common_mode_a_r13_present = false;
bool interv_dl_hop_cfg_common_mode_b_r13_present = false;
bool mpdcch_pdsch_hop_offset_r13_present = false;
mpdcch_pdsch_hop_nb_r13_e_ mpdcch_pdsch_hop_nb_r13;
interv_dl_hop_cfg_common_mode_a_r13_c_ interv_dl_hop_cfg_common_mode_a_r13;
interv_dl_hop_cfg_common_mode_b_r13_c_ interv_dl_hop_cfg_common_mode_b_r13;
uint8_t mpdcch_pdsch_hop_offset_r13 = 1;
};
// member variables
bool freq_hop_params_dl_r13_present = false;
bool non_crit_ext_present = false;
freq_hop_params_dl_r13_s_ freq_hop_params_dl_r13;
sib_type1_v1350_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v10m0-IEs ::= SEQUENCE
struct sib_type2_v10m0_ies_s {
struct freq_info_v10l0_s_ {
uint16_t add_spec_emission_v10l0 = 33;
};
using multi_band_info_list_v10l0_l_ = bounded_array<uint16_t, 8>;
// member variables
bool freq_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
bool non_crit_ext_present = false;
freq_info_v10l0_s_ freq_info_v10l0;
multi_band_info_list_v10l0_l_ multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v10l0-IEs ::= SEQUENCE
struct sib_type5_v10l0_ies_s {
using inter_freq_carrier_freq_list_v10l0_l_ = dyn_array<inter_freq_carrier_freq_info_v10l0_s>;
// member variables
bool inter_freq_carrier_freq_list_v10l0_present = false;
bool non_crit_ext_present = false;
inter_freq_carrier_freq_list_v10l0_l_ inter_freq_carrier_freq_list_v10l0;
sib_type5_v13a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemTimeInfoCDMA2000 ::= SEQUENCE
struct sys_time_info_cdma2000_s {
struct cdma_sys_time_c_ {
struct types_opts {
enum options { sync_sys_time, async_sys_time, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cdma_sys_time_c_() = default;
cdma_sys_time_c_(const cdma_sys_time_c_& other);
cdma_sys_time_c_& operator=(const cdma_sys_time_c_& other);
~cdma_sys_time_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<39>& sync_sys_time()
{
assert_choice_type("synchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<39> >();
}
fixed_bitstring<49>& async_sys_time()
{
assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
const fixed_bitstring<39>& sync_sys_time() const
{
assert_choice_type("synchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<39> >();
}
const fixed_bitstring<49>& async_sys_time() const
{
assert_choice_type("asynchronousSystemTime", type_.to_string(), "cdma-SystemTime");
return c.get<fixed_bitstring<49> >();
}
fixed_bitstring<39>& set_sync_sys_time()
{
set(types::sync_sys_time);
return c.get<fixed_bitstring<39> >();
}
fixed_bitstring<49>& set_async_sys_time()
{
set(types::async_sys_time);
return c.get<fixed_bitstring<49> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<49> > c;
void destroy_();
};
// member variables
bool cdma_eutra_synchronisation = false;
cdma_sys_time_c_ cdma_sys_time;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UAC-BarringPerCat-r15 ::= SEQUENCE
struct uac_barr_per_cat_r15_s {
uint8_t access_category_r15 = 1;
uint8_t uac_barr_info_set_idx_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AC-BarringConfig ::= SEQUENCE
struct ac_barr_cfg_s {
struct ac_barr_factor_opts {
enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<ac_barr_factor_opts> ac_barr_factor_e_;
struct ac_barr_time_opts {
enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<ac_barr_time_opts> ac_barr_time_e_;
// member variables
ac_barr_factor_e_ ac_barr_factor;
ac_barr_time_e_ ac_barr_time;
fixed_bitstring<5> ac_barr_for_special_ac;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BarringPerACDC-CategoryList-r13 ::= SEQUENCE (SIZE (1..16)) OF BarringPerACDC-Category-r13
using barr_per_acdc_category_list_r13_l = dyn_array<barr_per_acdc_category_r13_s>;
// CarrierFreqsGERAN ::= SEQUENCE
struct carrier_freqs_geran_s {
struct following_arfcns_c_ {
struct equally_spaced_arfcns_s_ {
uint8_t arfcn_spacing = 1;
uint8_t nof_following_arfcns = 0;
};
struct types_opts {
enum options { explicit_list_of_arfcns, equally_spaced_arfcns, variable_bit_map_of_arfcns, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
following_arfcns_c_() = default;
following_arfcns_c_(const following_arfcns_c_& other);
following_arfcns_c_& operator=(const following_arfcns_c_& other);
~following_arfcns_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
explicit_list_of_arfcns_l& explicit_list_of_arfcns()
{
assert_choice_type("explicitListOfARFCNs", type_.to_string(), "followingARFCNs");
return c.get<explicit_list_of_arfcns_l>();
}
equally_spaced_arfcns_s_& equally_spaced_arfcns()
{
assert_choice_type("equallySpacedARFCNs", type_.to_string(), "followingARFCNs");
return c.get<equally_spaced_arfcns_s_>();
}
dyn_octstring& variable_bit_map_of_arfcns()
{
assert_choice_type("variableBitMapOfARFCNs", type_.to_string(), "followingARFCNs");
return c.get<dyn_octstring>();
}
const explicit_list_of_arfcns_l& explicit_list_of_arfcns() const
{
assert_choice_type("explicitListOfARFCNs", type_.to_string(), "followingARFCNs");
return c.get<explicit_list_of_arfcns_l>();
}
const equally_spaced_arfcns_s_& equally_spaced_arfcns() const
{
assert_choice_type("equallySpacedARFCNs", type_.to_string(), "followingARFCNs");
return c.get<equally_spaced_arfcns_s_>();
}
const dyn_octstring& variable_bit_map_of_arfcns() const
{
assert_choice_type("variableBitMapOfARFCNs", type_.to_string(), "followingARFCNs");
return c.get<dyn_octstring>();
}
explicit_list_of_arfcns_l& set_explicit_list_of_arfcns()
{
set(types::explicit_list_of_arfcns);
return c.get<explicit_list_of_arfcns_l>();
}
equally_spaced_arfcns_s_& set_equally_spaced_arfcns()
{
set(types::equally_spaced_arfcns);
return c.get<equally_spaced_arfcns_s_>();
}
dyn_octstring& set_variable_bit_map_of_arfcns()
{
set(types::variable_bit_map_of_arfcns);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring, equally_spaced_arfcns_s_, explicit_list_of_arfcns_l> c;
void destroy_();
};
// member variables
uint16_t start_arfcn = 0;
band_ind_geran_e band_ind;
following_arfcns_c_ following_arfcns;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellReselectionSubPriority-r13 ::= ENUMERATED
struct cell_resel_sub_prio_r13_opts {
enum options { odot2, odot4, odot6, odot8, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<cell_resel_sub_prio_r13_opts> cell_resel_sub_prio_r13_e;
// CellSelectionInfo-v1250 ::= SEQUENCE
struct cell_sel_info_v1250_s {
int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DeltaFList-PUCCH ::= SEQUENCE
struct delta_flist_pucch_s {
struct delta_f_pucch_format1_opts {
enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format1_opts> delta_f_pucch_format1_e_;
struct delta_f_pucch_format1b_opts {
enum options { delta_f1, delta_f3, delta_f5, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format1b_opts> delta_f_pucch_format1b_e_;
struct delta_f_pucch_format2_opts {
enum options { delta_f_minus2, delta_f0, delta_f1, delta_f2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format2_opts> delta_f_pucch_format2_e_;
struct delta_f_pucch_format2a_opts {
enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format2a_opts> delta_f_pucch_format2a_e_;
struct delta_f_pucch_format2b_opts {
enum options { delta_f_minus2, delta_f0, delta_f2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format2b_opts> delta_f_pucch_format2b_e_;
// member variables
delta_f_pucch_format1_e_ delta_f_pucch_format1;
delta_f_pucch_format1b_e_ delta_f_pucch_format1b;
delta_f_pucch_format2_e_ delta_f_pucch_format2;
delta_f_pucch_format2a_e_ delta_f_pucch_format2a;
delta_f_pucch_format2b_e_ delta_f_pucch_format2b;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EDT-PRACH-ParametersCE-r15 ::= SEQUENCE
struct edt_prach_params_ce_r15_s {
struct edt_prach_params_ce_r15_s_ {
struct prach_start_sf_r15_opts {
enum options { sf2, sf4, sf8, sf16, sf32, sf64, sf128, sf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<prach_start_sf_r15_opts> prach_start_sf_r15_e_;
using mpdcch_nbs_to_monitor_r15_l_ = bounded_array<uint8_t, 2>;
// member variables
bool prach_start_sf_r15_present = false;
uint8_t prach_cfg_idx_r15 = 0;
uint8_t prach_freq_offset_r15 = 0;
prach_start_sf_r15_e_ prach_start_sf_r15;
mpdcch_nbs_to_monitor_r15_l_ mpdcch_nbs_to_monitor_r15;
};
// member variables
bool edt_prach_params_ce_r15_present = false;
edt_prach_params_ce_r15_s_ edt_prach_params_ce_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FilterCoefficient ::= ENUMERATED
struct filt_coef_opts {
enum options {
fc0,
fc1,
fc2,
fc3,
fc4,
fc5,
fc6,
fc7,
fc8,
fc9,
fc11,
fc13,
fc15,
fc17,
fc19,
spare1,
/*...*/ nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<filt_coef_opts, true> filt_coef_e;
// InterFreqBlackCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using inter_freq_black_cell_list_l = dyn_array<pci_range_s>;
// InterFreqCarrierFreqInfo-v9e0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v9e0_s {
bool dl_carrier_freq_v9e0_present = false;
bool multi_band_info_list_v9e0_present = false;
uint32_t dl_carrier_freq_v9e0 = 65536;
multi_band_info_list_v9e0_l multi_band_info_list_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF InterFreqNeighCellInfo
using inter_freq_neigh_cell_list_l = dyn_array<inter_freq_neigh_cell_info_s>;
// InterFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using inter_freq_neigh_hsdn_cell_list_r15_l = dyn_array<pci_range_s>;
// MBMS-SAI-List-r11 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (0..65535)
using mbms_sai_list_r11_l = dyn_array<uint32_t>;
// MTC-SSB-NR-r15 ::= SEQUENCE
struct mtc_ssb_nr_r15_s {
struct periodicity_and_offset_r15_c_ {
struct types_opts {
enum options { sf5_r15, sf10_r15, sf20_r15, sf40_r15, sf80_r15, sf160_r15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
periodicity_and_offset_r15_c_() = default;
periodicity_and_offset_r15_c_(const periodicity_and_offset_r15_c_& other);
periodicity_and_offset_r15_c_& operator=(const periodicity_and_offset_r15_c_& other);
~periodicity_and_offset_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf5_r15()
{
assert_choice_type("sf5-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& sf10_r15()
{
assert_choice_type("sf10-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& sf20_r15()
{
assert_choice_type("sf20-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& sf40_r15()
{
assert_choice_type("sf40-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& sf80_r15()
{
assert_choice_type("sf80-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& sf160_r15()
{
assert_choice_type("sf160-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf5_r15() const
{
assert_choice_type("sf5-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf10_r15() const
{
assert_choice_type("sf10-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf20_r15() const
{
assert_choice_type("sf20-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf40_r15() const
{
assert_choice_type("sf40-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf80_r15() const
{
assert_choice_type("sf80-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
const uint8_t& sf160_r15() const
{
assert_choice_type("sf160-r15", type_.to_string(), "periodicityAndOffset-r15");
return c.get<uint8_t>();
}
uint8_t& set_sf5_r15()
{
set(types::sf5_r15);
return c.get<uint8_t>();
}
uint8_t& set_sf10_r15()
{
set(types::sf10_r15);
return c.get<uint8_t>();
}
uint8_t& set_sf20_r15()
{
set(types::sf20_r15);
return c.get<uint8_t>();
}
uint8_t& set_sf40_r15()
{
set(types::sf40_r15);
return c.get<uint8_t>();
}
uint8_t& set_sf80_r15()
{
set(types::sf80_r15);
return c.get<uint8_t>();
}
uint8_t& set_sf160_r15()
{
set(types::sf160_r15);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct ssb_dur_r15_opts {
enum options { sf1, sf2, sf3, sf4, sf5, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ssb_dur_r15_opts> ssb_dur_r15_e_;
// member variables
periodicity_and_offset_r15_c_ periodicity_and_offset_r15;
ssb_dur_r15_e_ ssb_dur_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasIdleCarrierEUTRA-r15 ::= SEQUENCE
struct meas_idle_carrier_eutra_r15_s {
struct report_quantities_opts {
enum options { rsrp, rsrq, both, nulltype } value;
std::string to_string() const;
};
typedef enumerated<report_quantities_opts> report_quantities_e_;
struct quality_thres_r15_s_ {
bool idle_rsrp_thres_r15_present = false;
bool idle_rsrq_thres_r15_present = false;
uint8_t idle_rsrp_thres_r15 = 0;
int8_t idle_rsrq_thres_r15 = -30;
};
// member variables
bool ext = false;
bool validity_area_r15_present = false;
bool meas_cell_list_r15_present = false;
bool quality_thres_r15_present = false;
uint32_t carrier_freq_r15 = 0;
allowed_meas_bw_e allowed_meas_bw_r15;
cell_list_r15_l validity_area_r15;
cell_list_r15_l meas_cell_list_r15;
report_quantities_e_ report_quantities;
quality_thres_r15_s_ quality_thres_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MultiBandInfoList ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..64)
using multi_band_info_list_l = bounded_array<uint8_t, 8>;
// MultiBandInfoList-r11 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..256)
using multi_band_info_list_r11_l = bounded_array<uint16_t, 8>;
// MultiFrequencyBandListNR-r15 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..1024)
using multi_freq_band_list_nr_r15_l = bounded_array<uint16_t, 32>;
// N1PUCCH-AN-InfoList-r13 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
using n1_pucch_an_info_list_r13_l = bounded_array<uint16_t, 4>;
// 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>;
// NeighCellCDMA2000 ::= SEQUENCE
struct neigh_cell_cdma2000_s {
bandclass_cdma2000_e band_class;
neigh_cells_per_bandclass_list_cdma2000_l neigh_cells_per_freq_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellCDMA2000-v920 ::= SEQUENCE
struct neigh_cell_cdma2000_v920_s {
neigh_cells_per_bandclass_list_cdma2000_v920_l neigh_cells_per_freq_list_v920;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList4-r12 ::= SEQUENCE (SIZE (1..6)) OF PLMN-IdentityInfo2-r12
using plmn_id_list4_r12_l = dyn_array<plmn_id_info2_r12_c>;
// PRACH-ConfigInfo ::= SEQUENCE
struct prach_cfg_info_s {
uint8_t prach_cfg_idx = 0;
bool high_speed_flag = false;
uint8_t zero_correlation_zone_cfg = 0;
uint8_t prach_freq_offset = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-ParametersListCE-r13 ::= SEQUENCE (SIZE (1..4)) OF PRACH-ParametersCE-r13
using prach_params_list_ce_r13_l = dyn_array<prach_params_ce_r13_s>;
// ParametersCDMA2000-r11 ::= SEQUENCE
struct params_cdma2000_r11_s {
struct sys_time_info_r11_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sys_time_info_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_time_info_cdma2000_s& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "systemTimeInfo-r11");
return c;
}
const sys_time_info_cdma2000_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "systemTimeInfo-r11");
return c;
}
sys_time_info_cdma2000_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
sys_time_info_cdma2000_s c;
};
struct params_hrpd_r11_s_ {
bool cell_resel_params_hrpd_r11_present = false;
pre_regist_info_hrpd_s pre_regist_info_hrpd_r11;
cell_resel_params_cdma2000_r11_s cell_resel_params_hrpd_r11;
};
struct params1_xrtt_r11_s_ {
bool csfb_regist_param1_xrtt_r11_present = false;
bool csfb_regist_param1_xrtt_ext_r11_present = false;
bool long_code_state1_xrtt_r11_present = false;
bool cell_resel_params1_xrtt_r11_present = false;
bool ac_barr_cfg1_xrtt_r11_present = false;
bool csfb_support_for_dual_rx_ues_r11_present = false;
bool csfb_dual_rx_tx_support_r11_present = false;
csfb_regist_param1_xrtt_s csfb_regist_param1_xrtt_r11;
csfb_regist_param1_xrtt_v920_s csfb_regist_param1_xrtt_ext_r11;
fixed_bitstring<42> long_code_state1_xrtt_r11;
cell_resel_params_cdma2000_r11_s cell_resel_params1_xrtt_r11;
ac_barr_cfg1_xrtt_r9_s ac_barr_cfg1_xrtt_r11;
bool csfb_support_for_dual_rx_ues_r11 = false;
};
// member variables
bool ext = false;
bool sys_time_info_r11_present = false;
bool params_hrpd_r11_present = false;
bool params1_xrtt_r11_present = false;
sys_time_info_r11_c_ sys_time_info_r11;
uint8_t search_win_size_r11 = 0;
params_hrpd_r11_s_ params_hrpd_r11;
params1_xrtt_r11_s_ params1_xrtt_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PowerRampingParameters ::= SEQUENCE
struct pwr_ramp_params_s {
struct pwr_ramp_step_opts {
enum options { db0, db2, db4, db6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pwr_ramp_step_opts> pwr_ramp_step_e_;
struct preamb_init_rx_target_pwr_opts {
enum options {
dbm_minus120,
dbm_minus118,
dbm_minus116,
dbm_minus114,
dbm_minus112,
dbm_minus110,
dbm_minus108,
dbm_minus106,
dbm_minus104,
dbm_minus102,
dbm_minus100,
dbm_minus98,
dbm_minus96,
dbm_minus94,
dbm_minus92,
dbm_minus90,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<preamb_init_rx_target_pwr_opts> preamb_init_rx_target_pwr_e_;
// member variables
pwr_ramp_step_e_ pwr_ramp_step;
preamb_init_rx_target_pwr_e_ preamb_init_rx_target_pwr;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PreambleTransMax ::= ENUMERATED
struct preamb_trans_max_opts {
enum options { n3, n4, n5, n6, n7, n8, n10, n20, n50, n100, n200, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<preamb_trans_max_opts> preamb_trans_max_e;
// RACH-CE-LevelInfoList-r13 ::= SEQUENCE (SIZE (1..4)) OF RACH-CE-LevelInfo-r13
using rach_ce_level_info_list_r13_l = dyn_array<rach_ce_level_info_r13_s>;
// RSRP-ThresholdsPrachInfoList-r13 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (0..97)
using rsrp_thress_prach_info_list_r13_l = bounded_array<uint8_t, 3>;
// RedistributionInterFreqInfo-r13 ::= SEQUENCE
struct redist_inter_freq_info_r13_s {
bool redist_factor_freq_r13_present = false;
bool redist_neigh_cell_list_r13_present = false;
uint8_t redist_factor_freq_r13 = 1;
redist_neigh_cell_list_r13_l redist_neigh_cell_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CBR-Levels-Config-r14 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..100)
using sl_cbr_levels_cfg_r14_l = bounded_array<uint8_t, 16>;
// SL-CBR-PSSCH-TxConfig-r14 ::= SEQUENCE
struct sl_cbr_pssch_tx_cfg_r14_s {
uint16_t cr_limit_r14 = 0;
sl_pssch_tx_params_r14_s tx_params_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscConfigOtherInterFreq-r13 ::= SEQUENCE
struct sl_disc_cfg_other_inter_freq_r13_s {
bool tx_pwr_info_r13_present = false;
bool ref_carrier_common_r13_present = false;
bool disc_sync_cfg_r13_present = false;
bool disc_cell_sel_info_r13_present = false;
sl_disc_tx_pwr_info_list_r12_l tx_pwr_info_r13;
sl_sync_cfg_list_nfreq_r13_l disc_sync_cfg_r13;
cell_sel_info_nfreq_r13_s disc_cell_sel_info_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-HoppingConfigComm-r12 ::= SEQUENCE
struct sl_hop_cfg_comm_r12_s {
struct num_subbands_r12_opts {
enum options { ns1, ns2, ns4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_subbands_r12_opts> num_subbands_r12_e_;
// member variables
uint16_t hop_param_r12 = 0;
num_subbands_r12_e_ num_subbands_r12;
uint8_t rb_offset_r12 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-InterFreqInfoV2X-r14 ::= SEQUENCE
struct sl_inter_freq_info_v2x_r14_s {
struct sl_bw_r14_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sl_bw_r14_opts> sl_bw_r14_e_;
struct add_spec_emission_v2x_r14_c_ {
struct types_opts {
enum options { add_spec_emission_r14, add_spec_emission_v1440, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
add_spec_emission_v2x_r14_c_() = default;
add_spec_emission_v2x_r14_c_(const add_spec_emission_v2x_r14_c_& other);
add_spec_emission_v2x_r14_c_& operator=(const add_spec_emission_v2x_r14_c_& other);
~add_spec_emission_v2x_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& add_spec_emission_r14()
{
assert_choice_type("additionalSpectrumEmission-r14", type_.to_string(), "additionalSpectrumEmissionV2X-r14");
return c.get<uint8_t>();
}
uint16_t& add_spec_emission_v1440()
{
assert_choice_type("additionalSpectrumEmission-v1440", type_.to_string(), "additionalSpectrumEmissionV2X-r14");
return c.get<uint16_t>();
}
const uint8_t& add_spec_emission_r14() const
{
assert_choice_type("additionalSpectrumEmission-r14", type_.to_string(), "additionalSpectrumEmissionV2X-r14");
return c.get<uint8_t>();
}
const uint16_t& add_spec_emission_v1440() const
{
assert_choice_type("additionalSpectrumEmission-v1440", type_.to_string(), "additionalSpectrumEmissionV2X-r14");
return c.get<uint16_t>();
}
uint8_t& set_add_spec_emission_r14()
{
set(types::add_spec_emission_r14);
return c.get<uint8_t>();
}
uint16_t& set_add_spec_emission_v1440()
{
set(types::add_spec_emission_v1440);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
bool plmn_id_list_r14_present = false;
bool sl_max_tx_pwr_r14_present = false;
bool sl_bw_r14_present = false;
bool v2x_sched_pool_r14_present = false;
bool v2x_ue_cfg_list_r14_present = false;
plmn_id_list_l plmn_id_list_r14;
uint32_t v2x_comm_carrier_freq_r14 = 0;
int8_t sl_max_tx_pwr_r14 = -30;
sl_bw_r14_e_ sl_bw_r14;
sl_comm_res_pool_v2x_r14_s v2x_sched_pool_r14;
sl_v2x_ue_cfg_list_r14_l v2x_ue_cfg_list_r14;
// ...
// group 0
copy_ptr<add_spec_emission_v2x_r14_c_> add_spec_emission_v2x_r14;
// group 1
copy_ptr<sl_v2x_freq_sel_cfg_list_r15_l> v2x_freq_sel_cfg_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PPPR-Dest-CarrierFreq ::= SEQUENCE
struct sl_pppr_dest_carrier_freq_s {
bool dest_info_list_r15_present = false;
bool allowed_carrier_freq_list_r15_present = false;
sl_dest_info_list_r12_l dest_info_list_r15;
sl_allowed_carrier_freq_list_r15_s allowed_carrier_freq_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PeriodComm-r12 ::= ENUMERATED
struct sl_period_comm_r12_opts {
enum options {
sf40,
sf60,
sf70,
sf80,
sf120,
sf140,
sf160,
sf240,
sf280,
sf320,
spare6,
spare5,
spare4,
spare3,
spare2,
spare,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<sl_period_comm_r12_opts> sl_period_comm_r12_e;
// SL-ResourcesInterFreq-r13 ::= SEQUENCE
struct sl_res_inter_freq_r13_s {
bool disc_rx_res_inter_freq_r13_present = false;
bool disc_tx_res_inter_freq_r13_present = false;
sl_disc_rx_pool_list_r12_l disc_rx_res_inter_freq_r13;
sl_disc_tx_res_inter_freq_r13_c disc_tx_res_inter_freq_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-SyncConfig-r12 ::= SEQUENCE
struct sl_sync_cfg_r12_s {
struct tx_params_r12_s_ {
bool sync_info_reserved_r12_present = false;
sl_tx_params_r12_s sync_tx_params_r12;
uint8_t sync_tx_thresh_ic_r12 = 0;
fixed_bitstring<19> sync_info_reserved_r12;
};
struct rx_params_ncell_r12_s_ {
struct disc_sync_win_r12_opts {
enum options { w1, w2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<disc_sync_win_r12_opts> disc_sync_win_r12_e_;
// member variables
uint16_t pci_r12 = 0;
disc_sync_win_r12_e_ disc_sync_win_r12;
};
// member variables
bool ext = false;
bool tx_params_r12_present = false;
bool rx_params_ncell_r12_present = false;
sl_cp_len_r12_e sync_cp_len_r12;
uint8_t sync_offset_ind_r12 = 0;
uint8_t slssid_r12 = 0;
tx_params_r12_s_ tx_params_r12;
rx_params_ncell_r12_s_ rx_params_ncell_r12;
// ...
// group 0
bool sync_tx_periodic_r13_present = false;
// group 1
bool sync_offset_ind_v1430_present = false;
bool gnss_sync_r14_present = false;
uint8_t sync_offset_ind_v1430 = 40;
// group 2
bool sync_offset_ind2_r14_present = false;
bool sync_offset_ind3_r14_present = false;
uint8_t sync_offset_ind2_r14 = 0;
uint8_t sync_offset_ind3_r14 = 0;
// group 3
bool slss_tx_disabled_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SS-RSSI-Measurement-r15 ::= SEQUENCE
struct ss_rssi_meas_r15_s {
bounded_bitstring<1, 80> meas_slots_r15;
uint8_t end_symbol_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v10l0-IEs ::= SEQUENCE
struct sib_type1_v10l0_ies_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v1310-IEs ::= SEQUENCE
struct sib_type1_v1310_ies_s {
struct bw_reduced_access_related_info_r13_s_ {
struct si_win_len_br_r13_opts {
enum options { ms20, ms40, ms60, ms80, ms120, ms160, ms200, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<si_win_len_br_r13_opts> si_win_len_br_r13_e_;
struct si_repeat_pattern_r13_opts {
enum options { every_rf, every2nd_rf, every4th_rf, every8th_rf, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<si_repeat_pattern_r13_opts> si_repeat_pattern_r13_e_;
struct fdd_dl_or_tdd_sf_bitmap_br_r13_c_ {
struct types_opts {
enum options { sf_pattern10_r13, sf_pattern40_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
fdd_dl_or_tdd_sf_bitmap_br_r13_c_() = default;
fdd_dl_or_tdd_sf_bitmap_br_r13_c_(const fdd_dl_or_tdd_sf_bitmap_br_r13_c_& other);
fdd_dl_or_tdd_sf_bitmap_br_r13_c_& operator=(const fdd_dl_or_tdd_sf_bitmap_br_r13_c_& other);
~fdd_dl_or_tdd_sf_bitmap_br_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<10>& sf_pattern10_r13()
{
assert_choice_type("subframePattern10-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13");
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<40>& sf_pattern40_r13()
{
assert_choice_type("subframePattern40-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13");
return c.get<fixed_bitstring<40> >();
}
const fixed_bitstring<10>& sf_pattern10_r13() const
{
assert_choice_type("subframePattern10-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13");
return c.get<fixed_bitstring<10> >();
}
const fixed_bitstring<40>& sf_pattern40_r13() const
{
assert_choice_type("subframePattern40-r13", type_.to_string(), "fdd-DownlinkOrTddSubframeBitmapBR-r13");
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<10>& set_sf_pattern10_r13()
{
set(types::sf_pattern10_r13);
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<40>& set_sf_pattern40_r13()
{
set(types::sf_pattern40_r13);
return c.get<fixed_bitstring<40> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<40> > c;
void destroy_();
};
struct si_hop_cfg_common_r13_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<si_hop_cfg_common_r13_opts> si_hop_cfg_common_r13_e_;
// member variables
bool sched_info_list_br_r13_present = false;
bool fdd_dl_or_tdd_sf_bitmap_br_r13_present = false;
bool fdd_ul_sf_bitmap_br_r13_present = false;
bool si_validity_time_r13_present = false;
bool sys_info_value_tag_list_r13_present = false;
si_win_len_br_r13_e_ si_win_len_br_r13;
si_repeat_pattern_r13_e_ si_repeat_pattern_r13;
sched_info_list_br_r13_l sched_info_list_br_r13;
fdd_dl_or_tdd_sf_bitmap_br_r13_c_ fdd_dl_or_tdd_sf_bitmap_br_r13;
fixed_bitstring<10> fdd_ul_sf_bitmap_br_r13;
uint8_t start_symbol_br_r13 = 1;
si_hop_cfg_common_r13_e_ si_hop_cfg_common_r13;
sys_info_value_tag_list_r13_l sys_info_value_tag_list_r13;
};
// member variables
bool hyper_sfn_r13_present = false;
bool edrx_allowed_r13_present = false;
bool cell_sel_info_ce_r13_present = false;
bool bw_reduced_access_related_info_r13_present = false;
bool non_crit_ext_present = false;
fixed_bitstring<10> hyper_sfn_r13;
cell_sel_info_ce_r13_s cell_sel_info_ce_r13;
bw_reduced_access_related_info_r13_s_ bw_reduced_access_related_info_r13;
sib_type1_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v9i0-IEs ::= SEQUENCE
struct sib_type2_v9i0_ies_s {
bool non_crit_ext_present = false;
bool dummy_present = false;
dyn_octstring non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v10j0-IEs ::= SEQUENCE
struct sib_type5_v10j0_ies_s {
using inter_freq_carrier_freq_list_v10j0_l_ = dyn_array<inter_freq_carrier_freq_info_v10j0_s>;
// member variables
bool inter_freq_carrier_freq_list_v10j0_present = false;
bool non_crit_ext_present = false;
inter_freq_carrier_freq_list_v10j0_l_ inter_freq_carrier_freq_list_v10j0;
sib_type5_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ThresholdListNR-r15 ::= SEQUENCE
struct thres_list_nr_r15_s {
bool nr_rsrp_r15_present = false;
bool nr_rsrq_r15_present = false;
bool nr_sinr_r15_present = false;
uint8_t nr_rsrp_r15 = 0;
uint8_t nr_rsrq_r15 = 0;
uint8_t nr_sinr_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UAC-BarringPerCatList-r15 ::= SEQUENCE (SIZE (1..63)) OF UAC-BarringPerCat-r15
using uac_barr_per_cat_list_r15_l = dyn_array<uac_barr_per_cat_r15_s>;
// UDT-Restricting-r13 ::= SEQUENCE
struct udt_restricting_r13_s {
struct udt_restricting_time_r13_opts {
enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<udt_restricting_time_r13_opts> udt_restricting_time_r13_e_;
// member variables
bool udt_restricting_r13_present = false;
bool udt_restricting_time_r13_present = false;
udt_restricting_time_r13_e_ udt_restricting_time_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-ReferenceSignalsPUSCH ::= SEQUENCE
struct ul_ref_sigs_pusch_s {
bool group_hop_enabled = false;
uint8_t group_assign_pusch = 0;
bool seq_hop_enabled = false;
uint8_t cyclic_shift = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-Identifiers-r12 ::= SEQUENCE
struct wlan_ids_r12_s {
bool ext = false;
bool ssid_r12_present = false;
bool bssid_r12_present = false;
bool hessid_r12_present = false;
dyn_octstring ssid_r12;
fixed_octstring<6> bssid_r12;
fixed_octstring<6> hessid_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-backhaulRate-r12 ::= ENUMERATED
struct wlan_backhaul_rate_r12_opts {
enum options {
r0,
r4,
r8,
r16,
r32,
r64,
r128,
r256,
r512,
r1024,
r2048,
r4096,
r8192,
r16384,
r32768,
r65536,
r131072,
r262144,
r524288,
r1048576,
r2097152,
r4194304,
r8388608,
r16777216,
r33554432,
r67108864,
r134217728,
r268435456,
r536870912,
r1073741824,
r2147483648,
r4294967296,
nulltype
} value;
typedef uint64_t number_type;
std::string to_string() const;
uint64_t to_number() const;
};
typedef enumerated<wlan_backhaul_rate_r12_opts> wlan_backhaul_rate_r12_e;
// AC-BarringPerPLMN-r12 ::= SEQUENCE
struct ac_barr_per_plmn_r12_s {
struct ac_barr_info_r12_s_ {
bool ac_barr_for_mo_sig_r12_present = false;
bool ac_barr_for_mo_data_r12_present = false;
bool ac_barr_for_emergency_r12 = false;
ac_barr_cfg_s ac_barr_for_mo_sig_r12;
ac_barr_cfg_s ac_barr_for_mo_data_r12;
};
// member variables
bool ac_barr_info_r12_present = false;
bool ac_barr_skip_for_mmtel_voice_r12_present = false;
bool ac_barr_skip_for_mmtel_video_r12_present = false;
bool ac_barr_skip_for_sms_r12_present = false;
bool ac_barr_for_csfb_r12_present = false;
bool ssac_barr_for_mmtel_voice_r12_present = false;
bool ssac_barr_for_mmtel_video_r12_present = false;
uint8_t plmn_id_idx_r12 = 1;
ac_barr_info_r12_s_ ac_barr_info_r12;
ac_barr_cfg_s ac_barr_for_csfb_r12;
ac_barr_cfg_s ssac_barr_for_mmtel_voice_r12;
ac_barr_cfg_s ssac_barr_for_mmtel_video_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ACDC-BarringPerPLMN-r13 ::= SEQUENCE
struct acdc_barr_per_plmn_r13_s {
uint8_t plmn_id_idx_r13 = 1;
bool acdc_only_for_hplmn_r13 = false;
barr_per_acdc_category_list_r13_l barr_per_acdc_category_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-Config ::= SEQUENCE
struct bcch_cfg_s {
struct mod_period_coeff_opts {
enum options { n2, n4, n8, n16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mod_period_coeff_opts> mod_period_coeff_e_;
// member variables
mod_period_coeff_e_ mod_period_coeff;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-Config-v1310 ::= SEQUENCE
struct bcch_cfg_v1310_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CIOT-OptimisationPLMN-r13 ::= SEQUENCE
struct ciot_optim_plmn_r13_s {
bool up_cio_t_eps_optim_r13_present = false;
bool cp_cio_t_eps_optim_r13_present = false;
bool attach_without_pdn_connect_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqInfoUTRA-FDD-v8h0 ::= SEQUENCE
struct carrier_freq_info_utra_fdd_v8h0_s {
using multi_band_info_list_l_ = bounded_array<uint8_t, 8>;
// member variables
bool multi_band_info_list_present = false;
multi_band_info_list_l_ multi_band_info_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqNR-r15 ::= SEQUENCE
struct carrier_freq_nr_r15_s {
struct subcarrier_spacing_ssb_r15_opts {
enum options { khz15, khz30, khz120, khz240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<subcarrier_spacing_ssb_r15_opts> subcarrier_spacing_ssb_r15_e_;
struct thresh_x_q_r15_s_ {
uint8_t thresh_x_high_q_r15 = 0;
uint8_t thresh_x_low_q_r15 = 0;
};
// member variables
bool ext = false;
bool multi_band_info_list_r15_present = false;
bool multi_band_info_list_sul_r15_present = false;
bool meas_timing_cfg_r15_present = false;
bool ss_rssi_meas_r15_present = false;
bool cell_resel_prio_r15_present = false;
bool cell_resel_sub_prio_r15_present = false;
bool thresh_x_q_r15_present = false;
bool q_rx_lev_min_sul_r15_present = false;
bool ns_pmax_list_nr_r15_present = false;
bool q_qual_min_r15_present = false;
bool max_rs_idx_cell_qual_r15_present = false;
bool thresh_rs_idx_r15_present = false;
uint32_t carrier_freq_r15 = 0;
multi_freq_band_list_nr_r15_l multi_band_info_list_r15;
multi_freq_band_list_nr_r15_l multi_band_info_list_sul_r15;
mtc_ssb_nr_r15_s meas_timing_cfg_r15;
subcarrier_spacing_ssb_r15_e_ subcarrier_spacing_ssb_r15;
ss_rssi_meas_r15_s ss_rssi_meas_r15;
uint8_t cell_resel_prio_r15 = 0;
cell_resel_sub_prio_r13_e cell_resel_sub_prio_r15;
uint8_t thresh_x_high_r15 = 0;
uint8_t thresh_x_low_r15 = 0;
thresh_x_q_r15_s_ thresh_x_q_r15;
int8_t q_rx_lev_min_r15 = -70;
int8_t q_rx_lev_min_sul_r15 = -70;
int8_t p_max_nr_r15 = -30;
ns_pmax_list_nr_r15_l ns_pmax_list_nr_r15;
int8_t q_qual_min_r15 = -34;
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;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqUTRA-FDD ::= SEQUENCE
struct carrier_freq_utra_fdd_s {
struct thresh_x_q_r9_s_ {
uint8_t thresh_x_high_q_r9 = 0;
uint8_t thresh_x_low_q_r9 = 0;
};
// member variables
bool ext = false;
bool cell_resel_prio_present = false;
uint16_t carrier_freq = 0;
uint8_t cell_resel_prio = 0;
uint8_t thresh_x_high = 0;
uint8_t thresh_x_low = 0;
int8_t q_rx_lev_min = -60;
int8_t p_max_utra = -50;
int8_t q_qual_min = -24;
// ...
// group 0
copy_ptr<thresh_x_q_r9_s_> thresh_x_q_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqUTRA-FDD-Ext-r12 ::= SEQUENCE
struct carrier_freq_utra_fdd_ext_r12_s {
struct thresh_x_q_r12_s_ {
uint8_t thresh_x_high_q_r12 = 0;
uint8_t thresh_x_low_q_r12 = 0;
};
using multi_band_info_list_r12_l_ = bounded_array<uint8_t, 8>;
// member variables
bool ext = false;
bool cell_resel_prio_r12_present = false;
bool thresh_x_q_r12_present = false;
bool multi_band_info_list_r12_present = false;
bool reduced_meas_performance_r12_present = false;
uint16_t carrier_freq_r12 = 0;
uint8_t cell_resel_prio_r12 = 0;
uint8_t thresh_x_high_r12 = 0;
uint8_t thresh_x_low_r12 = 0;
int8_t q_rx_lev_min_r12 = -60;
int8_t p_max_utra_r12 = -50;
int8_t q_qual_min_r12 = -24;
thresh_x_q_r12_s_ thresh_x_q_r12;
multi_band_info_list_r12_l_ multi_band_info_list_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqUTRA-TDD ::= SEQUENCE
struct carrier_freq_utra_tdd_s {
bool ext = false;
bool cell_resel_prio_present = false;
uint16_t carrier_freq = 0;
uint8_t cell_resel_prio = 0;
uint8_t thresh_x_high = 0;
uint8_t thresh_x_low = 0;
int8_t q_rx_lev_min = -60;
int8_t p_max_utra = -50;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqUTRA-TDD-r12 ::= SEQUENCE
struct carrier_freq_utra_tdd_r12_s {
bool ext = false;
bool cell_resel_prio_r12_present = false;
bool reduced_meas_performance_r12_present = false;
uint16_t carrier_freq_r12 = 0;
uint8_t cell_resel_prio_r12 = 0;
uint8_t thresh_x_high_r12 = 0;
uint8_t thresh_x_low_r12 = 0;
int8_t q_rx_lev_min_r12 = -60;
int8_t p_max_utra_r12 = -50;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqsInfoGERAN ::= SEQUENCE
struct carrier_freqs_info_geran_s {
struct common_info_s_ {
bool cell_resel_prio_present = false;
bool p_max_geran_present = false;
uint8_t cell_resel_prio = 0;
fixed_bitstring<8> ncc_permitted;
uint8_t q_rx_lev_min = 0;
uint8_t p_max_geran = 0;
uint8_t thresh_x_high = 0;
uint8_t thresh_x_low = 0;
};
// member variables
bool ext = false;
carrier_freqs_geran_s carrier_freqs;
common_info_s_ common_info;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfo-v1130 ::= SEQUENCE
struct cell_sel_info_v1130_s {
int8_t q_qual_min_wb_r11 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EAB-Config-r11 ::= SEQUENCE
struct eab_cfg_r11_s {
struct eab_category_r11_opts {
enum options { a, b, c, nulltype } value;
std::string to_string() const;
};
typedef enumerated<eab_category_r11_opts> eab_category_r11_e_;
// member variables
eab_category_r11_e_ eab_category_r11;
fixed_bitstring<10> eab_barr_bitmap_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EUTRA-CarrierList-r15 ::= SEQUENCE (SIZE (1..8)) OF MeasIdleCarrierEUTRA-r15
using eutra_carrier_list_r15_l = dyn_array<meas_idle_carrier_eutra_r15_s>;
// FreqHoppingParameters-r13 ::= SEQUENCE
struct freq_hop_params_r13_s {
struct dummy_opts {
enum options { nb2, nb4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dummy_opts> dummy_e_;
struct dummy2_c_ {
struct interv_fdd_r13_opts {
enum options { int1, int2, int4, int8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int1, int5, int10, int20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
dummy2_c_() = default;
dummy2_c_(const dummy2_c_& other);
dummy2_c_& operator=(const dummy2_c_& other);
~dummy2_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy2");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy2");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy2");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy2");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct dummy3_c_ {
struct interv_fdd_r13_opts {
enum options { int2, int4, int8, int16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int5, int10, int20, int40, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
dummy3_c_() = default;
dummy3_c_(const dummy3_c_& other);
dummy3_c_& operator=(const dummy3_c_& other);
~dummy3_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy3");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy3");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "dummy3");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "dummy3");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct interv_ul_hop_cfg_common_mode_a_r13_c_ {
struct interv_fdd_r13_opts {
enum options { int1, int2, int4, int8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int1, int5, int10, int20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
interv_ul_hop_cfg_common_mode_a_r13_c_() = default;
interv_ul_hop_cfg_common_mode_a_r13_c_(const interv_ul_hop_cfg_common_mode_a_r13_c_& other);
interv_ul_hop_cfg_common_mode_a_r13_c_& operator=(const interv_ul_hop_cfg_common_mode_a_r13_c_& other);
~interv_ul_hop_cfg_common_mode_a_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeA-r13");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct interv_ul_hop_cfg_common_mode_b_r13_c_ {
struct interv_fdd_r13_opts {
enum options { int2, int4, int8, int16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_r13_opts> interv_fdd_r13_e_;
struct interv_tdd_r13_opts {
enum options { int5, int10, int20, int40, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_r13_opts> interv_tdd_r13_e_;
struct types_opts {
enum options { interv_fdd_r13, interv_tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
interv_ul_hop_cfg_common_mode_b_r13_c_() = default;
interv_ul_hop_cfg_common_mode_b_r13_c_(const interv_ul_hop_cfg_common_mode_b_r13_c_& other);
interv_ul_hop_cfg_common_mode_b_r13_c_& operator=(const interv_ul_hop_cfg_common_mode_b_r13_c_& other);
~interv_ul_hop_cfg_common_mode_b_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_r13_e_& interv_fdd_r13()
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13");
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& interv_tdd_r13()
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13");
return c.get<interv_tdd_r13_e_>();
}
const interv_fdd_r13_e_& interv_fdd_r13() const
{
assert_choice_type("interval-FDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13");
return c.get<interv_fdd_r13_e_>();
}
const interv_tdd_r13_e_& interv_tdd_r13() const
{
assert_choice_type("interval-TDD-r13", type_.to_string(), "interval-ULHoppingConfigCommonModeB-r13");
return c.get<interv_tdd_r13_e_>();
}
interv_fdd_r13_e_& set_interv_fdd_r13()
{
set(types::interv_fdd_r13);
return c.get<interv_fdd_r13_e_>();
}
interv_tdd_r13_e_& set_interv_tdd_r13()
{
set(types::interv_tdd_r13);
return c.get<interv_tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool dummy_present = false;
bool dummy2_present = false;
bool dummy3_present = false;
bool interv_ul_hop_cfg_common_mode_a_r13_present = false;
bool interv_ul_hop_cfg_common_mode_b_r13_present = false;
bool dummy4_present = false;
dummy_e_ dummy;
dummy2_c_ dummy2;
dummy3_c_ dummy3;
interv_ul_hop_cfg_common_mode_a_r13_c_ interv_ul_hop_cfg_common_mode_a_r13;
interv_ul_hop_cfg_common_mode_b_r13_c_ interv_ul_hop_cfg_common_mode_b_r13;
uint8_t dummy4 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HighSpeedConfig-r14 ::= SEQUENCE
struct high_speed_cfg_r14_s {
bool high_speed_enhanced_meas_flag_r14_present = false;
bool high_speed_enhanced_demod_flag_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HighSpeedConfig-v1530 ::= SEQUENCE
struct high_speed_cfg_v1530_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo ::= SEQUENCE
struct inter_freq_carrier_freq_info_s {
struct thresh_x_q_r9_s_ {
uint8_t thresh_x_high_q_r9 = 0;
uint8_t thresh_x_low_q_r9 = 0;
};
// member variables
bool ext = false;
bool p_max_present = false;
bool t_resel_eutra_sf_present = false;
bool cell_resel_prio_present = false;
bool q_offset_freq_present = false;
bool inter_freq_neigh_cell_list_present = false;
bool inter_freq_black_cell_list_present = false;
uint32_t dl_carrier_freq = 0;
int8_t q_rx_lev_min = -70;
int8_t p_max = -30;
uint8_t t_resel_eutra = 0;
speed_state_scale_factors_s t_resel_eutra_sf;
uint8_t thresh_x_high = 0;
uint8_t thresh_x_low = 0;
allowed_meas_bw_e allowed_meas_bw;
bool presence_ant_port1 = false;
uint8_t cell_resel_prio = 0;
fixed_bitstring<2> neigh_cell_cfg;
q_offset_range_e q_offset_freq;
inter_freq_neigh_cell_list_l inter_freq_neigh_cell_list;
inter_freq_black_cell_list_l inter_freq_black_cell_list;
// ...
// group 0
bool q_qual_min_r9_present = false;
int8_t q_qual_min_r9 = -34;
copy_ptr<thresh_x_q_r9_s_> thresh_x_q_r9;
// group 1
bool q_qual_min_wb_r11_present = false;
int8_t q_qual_min_wb_r11 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-r12 ::= SEQUENCE
struct inter_freq_carrier_freq_info_r12_s {
struct thresh_x_q_r12_s_ {
uint8_t thresh_x_high_q_r12 = 0;
uint8_t thresh_x_low_q_r12 = 0;
};
// member variables
bool ext = false;
bool p_max_r12_present = false;
bool t_resel_eutra_sf_r12_present = false;
bool cell_resel_prio_r12_present = false;
bool q_offset_freq_r12_present = false;
bool inter_freq_neigh_cell_list_r12_present = false;
bool inter_freq_black_cell_list_r12_present = false;
bool q_qual_min_r12_present = false;
bool thresh_x_q_r12_present = false;
bool q_qual_min_wb_r12_present = false;
bool multi_band_info_list_r12_present = false;
bool reduced_meas_performance_r12_present = false;
bool q_qual_min_rsrq_on_all_symbols_r12_present = false;
uint32_t dl_carrier_freq_r12 = 0;
int8_t q_rx_lev_min_r12 = -70;
int8_t p_max_r12 = -30;
uint8_t t_resel_eutra_r12 = 0;
speed_state_scale_factors_s t_resel_eutra_sf_r12;
uint8_t thresh_x_high_r12 = 0;
uint8_t thresh_x_low_r12 = 0;
allowed_meas_bw_e allowed_meas_bw_r12;
bool presence_ant_port1_r12 = false;
uint8_t cell_resel_prio_r12 = 0;
fixed_bitstring<2> neigh_cell_cfg_r12;
q_offset_range_e q_offset_freq_r12;
inter_freq_neigh_cell_list_l inter_freq_neigh_cell_list_r12;
inter_freq_black_cell_list_l inter_freq_black_cell_list_r12;
int8_t q_qual_min_r12 = -34;
thresh_x_q_r12_s_ thresh_x_q_r12;
int8_t q_qual_min_wb_r12 = -34;
multi_band_info_list_r11_l multi_band_info_list_r12;
int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-v1250 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1250_s {
bool reduced_meas_performance_r12_present = false;
bool q_qual_min_rsrq_on_all_symbols_r12_present = false;
int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-v1310 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1310_s {
bool cell_resel_sub_prio_r13_present = false;
bool redist_inter_freq_info_r13_present = false;
bool cell_sel_info_ce_r13_present = false;
bool t_resel_eutra_ce_r13_present = false;
cell_resel_sub_prio_r13_e cell_resel_sub_prio_r13;
redist_inter_freq_info_r13_s redist_inter_freq_info_r13;
cell_sel_info_ce_r13_s cell_sel_info_ce_r13;
uint8_t t_resel_eutra_ce_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-v1350 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1350_s {
bool cell_sel_info_ce1_r13_present = false;
cell_sel_info_ce1_r13_s cell_sel_info_ce1_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-v1530 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v1530_s {
bool inter_freq_neigh_hsdn_cell_list_r15_present = false;
bool cell_sel_info_ce_v1530_present = false;
bool hsdn_ind_r15 = false;
inter_freq_neigh_hsdn_cell_list_r15_l inter_freq_neigh_hsdn_cell_list_r15;
cell_sel_info_ce_v1530_s cell_sel_info_ce_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqInfo-v8h0 ::= SEQUENCE
struct inter_freq_carrier_freq_info_v8h0_s {
bool multi_band_info_list_present = false;
multi_band_info_list_l multi_band_info_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IntraFreqNeighCellInfo ::= SEQUENCE
struct intra_freq_neigh_cell_info_s {
bool ext = false;
uint16_t pci = 0;
q_offset_range_e q_offset_cell;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-CarrierType-r14 ::= SEQUENCE
struct mbms_carrier_type_r14_s {
struct carrier_type_r14_opts {
enum options { mbms, fembms_mixed, fembms_ded, nulltype } value;
std::string to_string() const;
};
typedef enumerated<carrier_type_r14_opts> carrier_type_r14_e_;
// member variables
bool frame_offset_r14_present = false;
carrier_type_r14_e_ carrier_type_r14;
uint8_t frame_offset_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-SAI-InterFreq-r11 ::= SEQUENCE
struct mbms_sai_inter_freq_r11_s {
uint32_t dl_carrier_freq_r11 = 0;
mbms_sai_list_r11_l mbms_sai_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-SAI-InterFreq-v1140 ::= SEQUENCE
struct mbms_sai_inter_freq_v1140_s {
bool multi_band_info_list_r11_present = false;
multi_band_info_list_r11_l multi_band_info_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFN-AreaInfo-r9 ::= SEQUENCE
struct mbsfn_area_info_r9_s {
struct non_mbsfn_region_len_opts {
enum options { s1, s2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<non_mbsfn_region_len_opts> non_mbsfn_region_len_e_;
struct mcch_cfg_r9_s_ {
struct mcch_repeat_period_r9_opts {
enum options { rf32, rf64, rf128, rf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mcch_repeat_period_r9_opts> mcch_repeat_period_r9_e_;
struct mcch_mod_period_r9_opts {
enum options { rf512, rf1024, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mcch_mod_period_r9_opts> mcch_mod_period_r9_e_;
struct sig_mcs_r9_opts {
enum options { n2, n7, n13, n19, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sig_mcs_r9_opts> sig_mcs_r9_e_;
// member variables
mcch_repeat_period_r9_e_ mcch_repeat_period_r9;
uint8_t mcch_offset_r9 = 0;
mcch_mod_period_r9_e_ mcch_mod_period_r9;
fixed_bitstring<6> sf_alloc_info_r9;
sig_mcs_r9_e_ sig_mcs_r9;
};
struct mcch_cfg_r14_s_ {
struct mcch_repeat_period_v1430_opts {
enum options { rf1, rf2, rf4, rf8, rf16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mcch_repeat_period_v1430_opts> mcch_repeat_period_v1430_e_;
struct mcch_mod_period_v1430_opts {
enum options { rf1, rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, spare7, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mcch_mod_period_v1430_opts> mcch_mod_period_v1430_e_;
// member variables
bool mcch_repeat_period_v1430_present = false;
bool mcch_mod_period_v1430_present = false;
mcch_repeat_period_v1430_e_ mcch_repeat_period_v1430;
mcch_mod_period_v1430_e_ mcch_mod_period_v1430;
};
struct subcarrier_spacing_mbms_r14_opts {
enum options { khz_minus7dot5, khz_minus1dot25, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<subcarrier_spacing_mbms_r14_opts> subcarrier_spacing_mbms_r14_e_;
// member variables
bool ext = false;
uint16_t mbsfn_area_id_r9 = 0;
non_mbsfn_region_len_e_ non_mbsfn_region_len;
uint8_t notif_ind_r9 = 0;
mcch_cfg_r9_s_ mcch_cfg_r9;
// ...
// group 0
bool subcarrier_spacing_mbms_r14_present = false;
copy_ptr<mcch_cfg_r14_s_> mcch_cfg_r14;
subcarrier_spacing_mbms_r14_e_ subcarrier_spacing_mbms_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFN-SubframeConfig ::= SEQUENCE
struct mbsfn_sf_cfg_s {
struct radioframe_alloc_period_opts {
enum options { n1, n2, n4, n8, n16, n32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<radioframe_alloc_period_opts> radioframe_alloc_period_e_;
struct sf_alloc_c_ {
struct types_opts {
enum options { one_frame, four_frames, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sf_alloc_c_() = default;
sf_alloc_c_(const sf_alloc_c_& other);
sf_alloc_c_& operator=(const sf_alloc_c_& other);
~sf_alloc_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<6>& one_frame()
{
assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<24>& four_frames()
{
assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation");
return c.get<fixed_bitstring<24> >();
}
const fixed_bitstring<6>& one_frame() const
{
assert_choice_type("oneFrame", type_.to_string(), "subframeAllocation");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<24>& four_frames() const
{
assert_choice_type("fourFrames", type_.to_string(), "subframeAllocation");
return c.get<fixed_bitstring<24> >();
}
fixed_bitstring<6>& set_one_frame()
{
set(types::one_frame);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<24>& set_four_frames()
{
set(types::four_frames);
return c.get<fixed_bitstring<24> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<24> > c;
void destroy_();
};
// member variables
radioframe_alloc_period_e_ radioframe_alloc_period;
uint8_t radioframe_alloc_offset = 0;
sf_alloc_c_ sf_alloc;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFN-SubframeConfig-v1430 ::= SEQUENCE
struct mbsfn_sf_cfg_v1430_s {
struct sf_alloc_v1430_c_ {
struct types_opts {
enum options { one_frame_v1430, four_frames_v1430, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sf_alloc_v1430_c_() = default;
sf_alloc_v1430_c_(const sf_alloc_v1430_c_& other);
sf_alloc_v1430_c_& operator=(const sf_alloc_v1430_c_& other);
~sf_alloc_v1430_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<2>& one_frame_v1430()
{
assert_choice_type("oneFrame-v1430", type_.to_string(), "subframeAllocation-v1430");
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<8>& four_frames_v1430()
{
assert_choice_type("fourFrames-v1430", type_.to_string(), "subframeAllocation-v1430");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<2>& one_frame_v1430() const
{
assert_choice_type("oneFrame-v1430", type_.to_string(), "subframeAllocation-v1430");
return c.get<fixed_bitstring<2> >();
}
const fixed_bitstring<8>& four_frames_v1430() const
{
assert_choice_type("fourFrames-v1430", type_.to_string(), "subframeAllocation-v1430");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<2>& set_one_frame_v1430()
{
set(types::one_frame_v1430);
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<8>& set_four_frames_v1430()
{
set(types::four_frames_v1430);
return c.get<fixed_bitstring<8> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<8> > c;
void destroy_();
};
// member variables
sf_alloc_v1430_c_ sf_alloc_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellListCDMA2000 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000
using neigh_cell_list_cdma2000_l = dyn_array<neigh_cell_cdma2000_s>;
// NeighCellListCDMA2000-v920 ::= SEQUENCE (SIZE (1..16)) OF NeighCellCDMA2000-v920
using neigh_cell_list_cdma2000_v920_l = dyn_array<neigh_cell_cdma2000_v920_s>;
// PCCH-Config ::= SEQUENCE
struct pcch_cfg_s {
struct default_paging_cycle_opts {
enum options { rf32, rf64, rf128, rf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<default_paging_cycle_opts> default_paging_cycle_e_;
struct nb_opts {
enum options {
four_t,
two_t,
one_t,
half_t,
quarter_t,
one_eighth_t,
one_sixteenth_t,
one_thirty_second_t,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<nb_opts> nb_e_;
// member variables
default_paging_cycle_e_ default_paging_cycle;
nb_e_ nb;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PCCH-Config-v1310 ::= SEQUENCE
struct pcch_cfg_v1310_s {
struct mpdcch_num_repeat_paging_r13_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mpdcch_num_repeat_paging_r13_opts> mpdcch_num_repeat_paging_r13_e_;
struct nb_v1310_opts {
enum options { one64th_t, one128th_t, one256th_t, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<nb_v1310_opts> nb_v1310_e_;
// member variables
bool nb_v1310_present = false;
uint8_t paging_narrow_bands_r13 = 1;
mpdcch_num_repeat_paging_r13_e_ mpdcch_num_repeat_paging_r13;
nb_v1310_e_ nb_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigCommon ::= SEQUENCE
struct pdsch_cfg_common_s {
int8_t ref_sig_pwr = -60;
uint8_t p_b = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigCommon-v1310 ::= SEQUENCE
struct pdsch_cfg_common_v1310_s {
struct pdsch_max_num_repeat_cemode_a_r13_opts {
enum options { r16, r32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdsch_max_num_repeat_cemode_a_r13_opts> pdsch_max_num_repeat_cemode_a_r13_e_;
struct pdsch_max_num_repeat_cemode_b_r13_opts {
enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<pdsch_max_num_repeat_cemode_b_r13_opts> pdsch_max_num_repeat_cemode_b_r13_e_;
// member variables
bool pdsch_max_num_repeat_cemode_a_r13_present = false;
bool pdsch_max_num_repeat_cemode_b_r13_present = false;
pdsch_max_num_repeat_cemode_a_r13_e_ pdsch_max_num_repeat_cemode_a_r13;
pdsch_max_num_repeat_cemode_b_r13_e_ pdsch_max_num_repeat_cemode_b_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-Info-r15 ::= SEQUENCE
struct plmn_info_r15_s {
bool upper_layer_ind_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-Config-v1430 ::= SEQUENCE
struct prach_cfg_v1430_s {
uint16_t root_seq_idx_high_speed_r14 = 0;
uint8_t zero_correlation_zone_cfg_high_speed_r14 = 0;
uint8_t prach_cfg_idx_high_speed_r14 = 0;
uint8_t prach_freq_offset_high_speed_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-ConfigSIB ::= SEQUENCE
struct prach_cfg_sib_s {
uint16_t root_seq_idx = 0;
prach_cfg_info_s prach_cfg_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-ConfigSIB-v1310 ::= SEQUENCE
struct prach_cfg_sib_v1310_s {
struct mpdcch_start_sf_css_ra_r13_c_ {
struct fdd_r13_opts {
enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<fdd_r13_opts> fdd_r13_e_;
struct tdd_r13_opts {
enum options { v1, v2, v4, v5, v8, v10, v20, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tdd_r13_opts> tdd_r13_e_;
struct types_opts {
enum options { fdd_r13, tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mpdcch_start_sf_css_ra_r13_c_() = default;
mpdcch_start_sf_css_ra_r13_c_(const mpdcch_start_sf_css_ra_r13_c_& other);
mpdcch_start_sf_css_ra_r13_c_& operator=(const mpdcch_start_sf_css_ra_r13_c_& other);
~mpdcch_start_sf_css_ra_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fdd_r13_e_& fdd_r13()
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& tdd_r13()
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<tdd_r13_e_>();
}
const fdd_r13_e_& fdd_r13() const
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<fdd_r13_e_>();
}
const tdd_r13_e_& tdd_r13() const
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<tdd_r13_e_>();
}
fdd_r13_e_& set_fdd_r13()
{
set(types::fdd_r13);
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& set_tdd_r13()
{
set(types::tdd_r13);
return c.get<tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool mpdcch_start_sf_css_ra_r13_present = false;
bool prach_hop_offset_r13_present = false;
rsrp_thress_prach_info_list_r13_l rsrp_thress_prach_info_list_r13;
mpdcch_start_sf_css_ra_r13_c_ mpdcch_start_sf_css_ra_r13;
uint8_t prach_hop_offset_r13 = 0;
prach_params_list_ce_r13_l prach_params_list_ce_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-ConfigSIB-v1530 ::= SEQUENCE
struct prach_cfg_sib_v1530_s {
using edt_prach_params_list_ce_r15_l_ = dyn_array<edt_prach_params_ce_r15_s>;
// member variables
edt_prach_params_list_ce_r15_l_ edt_prach_params_list_ce_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigCommon ::= SEQUENCE
struct pucch_cfg_common_s {
struct delta_pucch_shift_opts {
enum options { ds1, ds2, ds3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_pucch_shift_opts> delta_pucch_shift_e_;
// member variables
delta_pucch_shift_e_ delta_pucch_shift;
uint8_t nrb_cqi = 0;
uint8_t ncs_an = 0;
uint16_t n1_pucch_an = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigCommon-v1310 ::= SEQUENCE
struct pucch_cfg_common_v1310_s {
struct pucch_num_repeat_ce_msg4_level0_r13_opts {
enum options { n1, n2, n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_msg4_level0_r13_opts> pucch_num_repeat_ce_msg4_level0_r13_e_;
struct pucch_num_repeat_ce_msg4_level1_r13_opts {
enum options { n1, n2, n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_msg4_level1_r13_opts> pucch_num_repeat_ce_msg4_level1_r13_e_;
struct pucch_num_repeat_ce_msg4_level2_r13_opts {
enum options { n4, n8, n16, n32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_msg4_level2_r13_opts> pucch_num_repeat_ce_msg4_level2_r13_e_;
struct pucch_num_repeat_ce_msg4_level3_r13_opts {
enum options { n4, n8, n16, n32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_msg4_level3_r13_opts> pucch_num_repeat_ce_msg4_level3_r13_e_;
// member variables
bool n1_pucch_an_info_list_r13_present = false;
bool pucch_num_repeat_ce_msg4_level0_r13_present = false;
bool pucch_num_repeat_ce_msg4_level1_r13_present = false;
bool pucch_num_repeat_ce_msg4_level2_r13_present = false;
bool pucch_num_repeat_ce_msg4_level3_r13_present = false;
n1_pucch_an_info_list_r13_l n1_pucch_an_info_list_r13;
pucch_num_repeat_ce_msg4_level0_r13_e_ pucch_num_repeat_ce_msg4_level0_r13;
pucch_num_repeat_ce_msg4_level1_r13_e_ pucch_num_repeat_ce_msg4_level1_r13;
pucch_num_repeat_ce_msg4_level2_r13_e_ pucch_num_repeat_ce_msg4_level2_r13;
pucch_num_repeat_ce_msg4_level3_r13_e_ pucch_num_repeat_ce_msg4_level3_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigCommon-v1430 ::= SEQUENCE
struct pucch_cfg_common_v1430_s {
struct pucch_num_repeat_ce_msg4_level3_r14_opts {
enum options { n64, n128, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_msg4_level3_r14_opts> pucch_num_repeat_ce_msg4_level3_r14_e_;
// member variables
bool pucch_num_repeat_ce_msg4_level3_r14_present = false;
pucch_num_repeat_ce_msg4_level3_r14_e_ pucch_num_repeat_ce_msg4_level3_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigCommon ::= SEQUENCE
struct pusch_cfg_common_s {
struct pusch_cfg_basic_s_ {
struct hop_mode_opts {
enum options { inter_sub_frame, intra_and_inter_sub_frame, nulltype } value;
std::string to_string() const;
};
typedef enumerated<hop_mode_opts> hop_mode_e_;
// member variables
uint8_t n_sb = 1;
hop_mode_e_ hop_mode;
uint8_t pusch_hop_offset = 0;
bool enable64_qam = false;
};
// member variables
pusch_cfg_basic_s_ pusch_cfg_basic;
ul_ref_sigs_pusch_s ul_ref_sigs_pusch;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigCommon-v1270 ::= SEQUENCE
struct pusch_cfg_common_v1270_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigCommon-v1310 ::= SEQUENCE
struct pusch_cfg_common_v1310_s {
struct pusch_max_num_repeat_cemode_a_r13_opts {
enum options { r8, r16, r32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pusch_max_num_repeat_cemode_a_r13_opts> pusch_max_num_repeat_cemode_a_r13_e_;
struct pusch_max_num_repeat_cemode_b_r13_opts {
enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<pusch_max_num_repeat_cemode_b_r13_opts> pusch_max_num_repeat_cemode_b_r13_e_;
// member variables
bool pusch_max_num_repeat_cemode_a_r13_present = false;
bool pusch_max_num_repeat_cemode_b_r13_present = false;
bool pusch_hop_offset_v1310_present = false;
pusch_max_num_repeat_cemode_a_r13_e_ pusch_max_num_repeat_cemode_a_r13;
pusch_max_num_repeat_cemode_b_r13_e_ pusch_max_num_repeat_cemode_b_r13;
uint8_t pusch_hop_offset_v1310 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-ConfigCommon ::= SEQUENCE
struct rach_cfg_common_s {
struct preamb_info_s_ {
struct nof_ra_preambs_opts {
enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, n64, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<nof_ra_preambs_opts> nof_ra_preambs_e_;
struct preambs_group_a_cfg_s_ {
struct size_of_ra_preambs_group_a_opts {
enum options { n4, n8, n12, n16, n20, n24, n28, n32, n36, n40, n44, n48, n52, n56, n60, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<size_of_ra_preambs_group_a_opts> size_of_ra_preambs_group_a_e_;
struct msg_size_group_a_opts {
enum options { b56, b144, b208, b256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<msg_size_group_a_opts> msg_size_group_a_e_;
struct msg_pwr_offset_group_b_opts {
enum options { minusinfinity, db0, db5, db8, db10, db12, db15, db18, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<msg_pwr_offset_group_b_opts> msg_pwr_offset_group_b_e_;
// member variables
bool ext = false;
size_of_ra_preambs_group_a_e_ size_of_ra_preambs_group_a;
msg_size_group_a_e_ msg_size_group_a;
msg_pwr_offset_group_b_e_ msg_pwr_offset_group_b;
// ...
};
// member variables
bool preambs_group_a_cfg_present = false;
nof_ra_preambs_e_ nof_ra_preambs;
preambs_group_a_cfg_s_ preambs_group_a_cfg;
};
struct ra_supervision_info_s_ {
struct ra_resp_win_size_opts {
enum options { sf2, sf3, sf4, sf5, sf6, sf7, sf8, sf10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ra_resp_win_size_opts> ra_resp_win_size_e_;
struct mac_contention_resolution_timer_opts {
enum options { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mac_contention_resolution_timer_opts> mac_contention_resolution_timer_e_;
// member variables
preamb_trans_max_e preamb_trans_max;
ra_resp_win_size_e_ ra_resp_win_size;
mac_contention_resolution_timer_e_ mac_contention_resolution_timer;
};
// member variables
bool ext = false;
preamb_info_s_ preamb_info;
pwr_ramp_params_s pwr_ramp_params;
ra_supervision_info_s_ ra_supervision_info;
uint8_t max_harq_msg3_tx = 1;
// ...
// group 0
bool preamb_trans_max_ce_r13_present = false;
preamb_trans_max_e preamb_trans_max_ce_r13;
copy_ptr<rach_ce_level_info_list_r13_l> rach_ce_level_info_list_r13;
// group 1
bool edt_small_tbs_subset_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-ConfigCommon-v1250 ::= SEQUENCE
struct rach_cfg_common_v1250_s {
struct tx_fail_params_r12_s_ {
struct conn_est_fail_count_r12_opts {
enum options { n1, n2, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<conn_est_fail_count_r12_opts> conn_est_fail_count_r12_e_;
struct conn_est_fail_offset_validity_r12_opts {
enum options { s30, s60, s120, s240, s300, s420, s600, s900, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<conn_est_fail_offset_validity_r12_opts> conn_est_fail_offset_validity_r12_e_;
// member variables
bool conn_est_fail_offset_r12_present = false;
conn_est_fail_count_r12_e_ conn_est_fail_count_r12;
conn_est_fail_offset_validity_r12_e_ conn_est_fail_offset_validity_r12;
uint8_t conn_est_fail_offset_r12 = 0;
};
// member variables
tx_fail_params_r12_s_ tx_fail_params_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RSS-Config-r15 ::= SEQUENCE
struct rss_cfg_r15_s {
struct dur_r15_opts {
enum options { sf8, sf16, sf32, sf40, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dur_r15_opts> dur_r15_e_;
struct periodicity_r15_opts {
enum options { ms160, ms320, ms640, ms1280, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<periodicity_r15_opts> periodicity_r15_e_;
struct pwr_boost_r15_opts {
enum options { db0, db3, db4dot8, db6, 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
dur_r15_e_ dur_r15;
uint8_t freq_location_r15 = 0;
periodicity_r15_e_ periodicity_r15;
pwr_boost_r15_e_ pwr_boost_r15;
uint8_t time_offset_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReferenceTime-r15 ::= SEQUENCE
struct ref_time_r15_s {
uint32_t ref_days_r15 = 0;
uint32_t ref_seconds_r15 = 0;
uint16_t ref_milli_seconds_r15 = 0;
uint16_t ref_quarter_micro_seconds_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReselectionInfoRelay-r13 ::= SEQUENCE
struct resel_info_relay_r13_s {
struct min_hyst_r13_opts {
enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<min_hyst_r13_opts> min_hyst_r13_e_;
// member variables
bool min_hyst_r13_present = false;
int8_t q_rx_lev_min_r13 = -70;
filt_coef_e filt_coef_r13;
min_hyst_r13_e_ min_hyst_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SIB-Type ::= ENUMERATED
struct sib_type_opts {
enum options {
sib_type3,
sib_type4,
sib_type5,
sib_type6,
sib_type7,
sib_type8,
sib_type9,
sib_type10,
sib_type11,
sib_type12_v920,
sib_type13_v920,
sib_type14_v1130,
sib_type15_v1130,
sib_type16_v1130,
sib_type17_v1250,
sib_type18_v1250,
// ...
sib_type19_v1250,
sib_type20_v1310,
sib_type21_v1430,
sib_type24_v1530,
sib_type25_v1530,
sib_type26_v1530,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sib_type_opts, true, 6> sib_type_e;
// SIB8-PerPLMN-r11 ::= SEQUENCE
struct sib8_per_plmn_r11_s {
struct params_cdma2000_r11_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
params_cdma2000_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
params_cdma2000_r11_s& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "parametersCDMA2000-r11");
return c;
}
const params_cdma2000_r11_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "parametersCDMA2000-r11");
return c;
}
params_cdma2000_r11_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
params_cdma2000_r11_s c;
};
// member variables
uint8_t plmn_id_r11 = 1;
params_cdma2000_r11_c_ params_cdma2000_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-AnchorCarrierFreqList-V2X-r14 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..262143)
using sl_anchor_carrier_freq_list_v2x_r14_l = bounded_array<uint32_t, 8>;
// SL-CBR-CommonTxConfigList-r14 ::= SEQUENCE
struct sl_cbr_common_tx_cfg_list_r14_s {
using cbr_range_common_cfg_list_r14_l_ = dyn_array<sl_cbr_levels_cfg_r14_l>;
using sl_cbr_pssch_tx_cfg_list_r14_l_ = dyn_array<sl_cbr_pssch_tx_cfg_r14_s>;
// member variables
cbr_range_common_cfg_list_r14_l_ cbr_range_common_cfg_list_r14;
sl_cbr_pssch_tx_cfg_list_r14_l_ sl_cbr_pssch_tx_cfg_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CarrierFreqInfo-r12 ::= SEQUENCE
struct sl_carrier_freq_info_r12_s {
bool plmn_id_list_r12_present = false;
uint32_t carrier_freq_r12 = 0;
plmn_id_list4_r12_l plmn_id_list_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CarrierFreqInfo-v1310 ::= SEQUENCE
struct sl_carrier_freq_info_v1310_s {
bool ext = false;
bool disc_res_non_ps_r13_present = false;
bool disc_res_ps_r13_present = false;
bool disc_cfg_other_r13_present = false;
sl_res_inter_freq_r13_s disc_res_non_ps_r13;
sl_res_inter_freq_r13_s disc_res_ps_r13;
sl_disc_cfg_other_inter_freq_r13_s disc_cfg_other_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CommResourcePool-r12 ::= SEQUENCE
struct sl_comm_res_pool_r12_s {
struct ue_sel_res_cfg_r12_s_ {
bool trpt_subset_r12_present = false;
sl_tf_res_cfg_r12_s data_tf_res_cfg_r12;
bounded_bitstring<3, 5> trpt_subset_r12;
};
struct rx_params_ncell_r12_s_ {
bool tdd_cfg_r12_present = false;
tdd_cfg_s tdd_cfg_r12;
uint8_t sync_cfg_idx_r12 = 0;
};
struct tx_params_r12_s_ {
sl_tx_params_r12_s sc_tx_params_r12;
sl_tx_params_r12_s data_tx_params_r12;
};
// member variables
bool ext = false;
bool ue_sel_res_cfg_r12_present = false;
bool rx_params_ncell_r12_present = false;
bool tx_params_r12_present = false;
sl_cp_len_r12_e sc_cp_len_r12;
sl_period_comm_r12_e sc_period_r12;
sl_tf_res_cfg_r12_s sc_tf_res_cfg_r12;
sl_cp_len_r12_e data_cp_len_r12;
sl_hop_cfg_comm_r12_s data_hop_cfg_r12;
ue_sel_res_cfg_r12_s_ ue_sel_res_cfg_r12;
rx_params_ncell_r12_s_ rx_params_ncell_r12;
tx_params_r12_s_ tx_params_r12;
// ...
// group 0
copy_ptr<sl_prio_list_r13_l> prio_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-InterFreqInfoListV2X-r14 ::= SEQUENCE (SIZE (0..7)) OF SL-InterFreqInfoV2X-r14
using sl_inter_freq_info_list_v2x_r14_l = dyn_array<sl_inter_freq_info_v2x_r14_s>;
// SL-PPPP-TxConfigIndex-r15 ::= SEQUENCE
struct sl_pppp_tx_cfg_idx_r15_s {
using tx_cfg_idx_list_r15_l_ = bounded_array<uint8_t, 16>;
using mcs_pssch_range_list_r15_l_ = dyn_array<mcs_pssch_range_r15_s>;
// member variables
uint8_t prio_thres_r15 = 1;
uint8_t default_tx_cfg_idx_r15 = 0;
uint8_t cbr_cfg_idx_r15 = 0;
tx_cfg_idx_list_r15_l_ tx_cfg_idx_list_r15;
mcs_pssch_range_list_r15_l_ mcs_pssch_range_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PPPR-Dest-CarrierFreqList-r15 ::= SEQUENCE (SIZE (1..16)) OF SL-PPPR-Dest-CarrierFreq
using sl_pppr_dest_carrier_freq_list_r15_l = dyn_array<sl_pppr_dest_carrier_freq_s>;
// SL-SyncConfigListV2X-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12
using sl_sync_cfg_list_v2x_r14_l = dyn_array<sl_sync_cfg_r12_s>;
// SoundingRS-UL-ConfigCommon ::= CHOICE
struct srs_ul_cfg_common_c {
struct setup_s_ {
struct srs_bw_cfg_opts {
enum options { bw0, bw1, bw2, bw3, bw4, bw5, bw6, bw7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_bw_cfg_opts> srs_bw_cfg_e_;
struct srs_sf_cfg_opts {
enum options {
sc0,
sc1,
sc2,
sc3,
sc4,
sc5,
sc6,
sc7,
sc8,
sc9,
sc10,
sc11,
sc12,
sc13,
sc14,
sc15,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_sf_cfg_opts> srs_sf_cfg_e_;
// member variables
bool srs_max_up_pts_present = false;
srs_bw_cfg_e_ srs_bw_cfg;
srs_sf_cfg_e_ srs_sf_cfg;
bool ack_nack_srs_simul_tx = false;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_common_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigCommon");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigCommon");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SystemInformationBlockType1-v10j0-IEs ::= SEQUENCE
struct sib_type1_v10j0_ies_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
sib_type1_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v1250-IEs ::= SEQUENCE
struct sib_type1_v1250_ies_s {
struct cell_access_related_info_v1250_s_ {
bool category0_allowed_r12_present = false;
};
// member variables
bool cell_sel_info_v1250_present = false;
bool freq_band_ind_prio_r12_present = false;
bool non_crit_ext_present = false;
cell_access_related_info_v1250_s_ cell_access_related_info_v1250;
cell_sel_info_v1250_s cell_sel_info_v1250;
sib_type1_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v9e0-IEs ::= SEQUENCE
struct sib_type2_v9e0_ies_s {
bool ul_carrier_freq_v9e0_present = false;
bool non_crit_ext_present = false;
uint32_t ul_carrier_freq_v9e0 = 65536;
sib_type2_v9i0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType3-v10l0-IEs ::= SEQUENCE
struct sib_type3_v10l0_ies_s {
bool freq_band_info_v10l0_present = false;
bool multi_band_info_list_v10l0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_v10l0_l freq_band_info_v10l0;
multi_band_info_list_v10l0_l multi_band_info_list_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v9e0-IEs ::= SEQUENCE
struct sib_type5_v9e0_ies_s {
using inter_freq_carrier_freq_list_v9e0_l_ = dyn_array<inter_freq_carrier_freq_info_v9e0_s>;
// member variables
bool inter_freq_carrier_freq_list_v9e0_present = false;
bool non_crit_ext_present = false;
inter_freq_carrier_freq_list_v9e0_l_ inter_freq_carrier_freq_list_v9e0;
sib_type5_v10j0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UAC-BarringInfoSet-r15 ::= SEQUENCE
struct uac_barr_info_set_r15_s {
struct uac_barr_factor_r15_opts {
enum options { p00, p05, p10, p15, p20, p25, p30, p40, p50, p60, p70, p75, p80, p85, p90, p95, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<uac_barr_factor_r15_opts> uac_barr_factor_r15_e_;
struct uac_barr_time_r15_opts {
enum options { s4, s8, s16, s32, s64, s128, s256, s512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<uac_barr_time_r15_opts> uac_barr_time_r15_e_;
// member variables
uac_barr_factor_r15_e_ uac_barr_factor_r15;
uac_barr_time_r15_e_ uac_barr_time_r15;
fixed_bitstring<7> uac_barr_for_access_id_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UAC-BarringPerPLMN-r15 ::= SEQUENCE
struct uac_barr_per_plmn_r15_s {
struct uac_ac_barr_list_type_r15_c_ {
using uac_implicit_ac_barr_list_r15_l_ = std::array<uint8_t, 63>;
struct types_opts {
enum options { uac_implicit_ac_barr_list_r15, uac_explicit_ac_barr_list_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
uac_ac_barr_list_type_r15_c_() = default;
uac_ac_barr_list_type_r15_c_(const uac_ac_barr_list_type_r15_c_& other);
uac_ac_barr_list_type_r15_c_& operator=(const uac_ac_barr_list_type_r15_c_& other);
~uac_ac_barr_list_type_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15()
{
assert_choice_type("uac-ImplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15");
return c.get<uac_implicit_ac_barr_list_r15_l_>();
}
uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15()
{
assert_choice_type("uac-ExplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15");
return c.get<uac_barr_per_cat_list_r15_l>();
}
const uac_implicit_ac_barr_list_r15_l_& uac_implicit_ac_barr_list_r15() const
{
assert_choice_type("uac-ImplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15");
return c.get<uac_implicit_ac_barr_list_r15_l_>();
}
const uac_barr_per_cat_list_r15_l& uac_explicit_ac_barr_list_r15() const
{
assert_choice_type("uac-ExplicitAC-BarringList-r15", type_.to_string(), "uac-AC-BarringListType-r15");
return c.get<uac_barr_per_cat_list_r15_l>();
}
uac_implicit_ac_barr_list_r15_l_& set_uac_implicit_ac_barr_list_r15()
{
set(types::uac_implicit_ac_barr_list_r15);
return c.get<uac_implicit_ac_barr_list_r15_l_>();
}
uac_barr_per_cat_list_r15_l& set_uac_explicit_ac_barr_list_r15()
{
set(types::uac_explicit_ac_barr_list_r15);
return c.get<uac_barr_per_cat_list_r15_l>();
}
private:
types type_;
choice_buffer_t<uac_barr_per_cat_list_r15_l, uac_implicit_ac_barr_list_r15_l_> c;
void destroy_();
};
// member variables
bool uac_ac_barr_list_type_r15_present = false;
uint8_t plmn_id_idx_r15 = 1;
uac_ac_barr_list_type_r15_c_ uac_ac_barr_list_type_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UDT-RestrictingPerPLMN-r13 ::= SEQUENCE
struct udt_restricting_per_plmn_r13_s {
bool udt_restricting_r13_present = false;
uint8_t plmn_id_idx_r13 = 1;
udt_restricting_r13_s udt_restricting_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-CyclicPrefixLength ::= ENUMERATED
struct ul_cp_len_opts {
enum options { len1, len2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_cp_len_opts> ul_cp_len_e;
// UplinkPowerControlCommon ::= SEQUENCE
struct ul_pwr_ctrl_common_s {
int8_t p0_nominal_pusch = -126;
alpha_r12_e alpha;
int8_t p0_nominal_pucch = -127;
delta_flist_pucch_s delta_flist_pucch;
int8_t delta_preamb_msg3 = -1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommon-v1020 ::= SEQUENCE
struct ul_pwr_ctrl_common_v1020_s {
struct delta_f_pucch_format3_r10_opts {
enum options {
delta_f_minus1,
delta_f0,
delta_f1,
delta_f2,
delta_f3,
delta_f4,
delta_f5,
delta_f6,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format3_r10_opts> delta_f_pucch_format3_r10_e_;
struct delta_f_pucch_format1b_cs_r10_opts {
enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format1b_cs_r10_opts> delta_f_pucch_format1b_cs_r10_e_;
// member variables
delta_f_pucch_format3_r10_e_ delta_f_pucch_format3_r10;
delta_f_pucch_format1b_cs_r10_e_ delta_f_pucch_format1b_cs_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-Id-List-r12 ::= SEQUENCE (SIZE (1..16)) OF WLAN-Identifiers-r12
using wlan_id_list_r12_l = dyn_array<wlan_ids_r12_s>;
// WLAN-OffloadConfig-r12 ::= SEQUENCE
struct wlan_offload_cfg_r12_s {
struct thres_rsrp_r12_s_ {
uint8_t thres_rsrp_low_r12 = 0;
uint8_t thres_rsrp_high_r12 = 0;
};
struct thres_rsrq_r12_s_ {
uint8_t thres_rsrq_low_r12 = 0;
uint8_t thres_rsrq_high_r12 = 0;
};
struct thres_rsrq_on_all_symbols_with_wb_r12_s_ {
uint8_t thres_rsrq_on_all_symbols_with_wb_low_r12 = 0;
uint8_t thres_rsrq_on_all_symbols_with_wb_high_r12 = 0;
};
struct thres_rsrq_on_all_symbols_r12_s_ {
uint8_t thres_rsrq_on_all_symbols_low_r12 = 0;
uint8_t thres_rsrq_on_all_symbols_high_r12 = 0;
};
struct thres_rsrq_wb_r12_s_ {
uint8_t thres_rsrq_wb_low_r12 = 0;
uint8_t thres_rsrq_wb_high_r12 = 0;
};
struct thres_ch_utilization_r12_s_ {
uint16_t thres_ch_utilization_low_r12 = 0;
uint16_t thres_ch_utilization_high_r12 = 0;
};
struct thres_backhaul_bw_r12_s_ {
wlan_backhaul_rate_r12_e thres_backhaul_dl_bw_low_r12;
wlan_backhaul_rate_r12_e thres_backhaul_dl_bw_high_r12;
wlan_backhaul_rate_r12_e thres_backhaul_ul_bw_low_r12;
wlan_backhaul_rate_r12_e thres_backhaul_ul_bw_high_r12;
};
struct thres_wlan_rssi_r12_s_ {
uint16_t thres_wlan_rssi_low_r12 = 0;
uint16_t thres_wlan_rssi_high_r12 = 0;
};
// member variables
bool ext = false;
bool thres_rsrp_r12_present = false;
bool thres_rsrq_r12_present = false;
bool thres_rsrq_on_all_symbols_with_wb_r12_present = false;
bool thres_rsrq_on_all_symbols_r12_present = false;
bool thres_rsrq_wb_r12_present = false;
bool thres_ch_utilization_r12_present = false;
bool thres_backhaul_bw_r12_present = false;
bool thres_wlan_rssi_r12_present = false;
bool offload_pref_ind_r12_present = false;
bool t_steering_wlan_r12_present = false;
thres_rsrp_r12_s_ thres_rsrp_r12;
thres_rsrq_r12_s_ thres_rsrq_r12;
thres_rsrq_on_all_symbols_with_wb_r12_s_ thres_rsrq_on_all_symbols_with_wb_r12;
thres_rsrq_on_all_symbols_r12_s_ thres_rsrq_on_all_symbols_r12;
thres_rsrq_wb_r12_s_ thres_rsrq_wb_r12;
thres_ch_utilization_r12_s_ thres_ch_utilization_r12;
thres_backhaul_bw_r12_s_ thres_backhaul_bw_r12;
thres_wlan_rssi_r12_s_ thres_wlan_rssi_r12;
fixed_bitstring<16> offload_pref_ind_r12;
uint8_t t_steering_wlan_r12 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WUS-Config-r15 ::= SEQUENCE
struct wus_cfg_r15_s {
struct max_dur_factor_r15_opts {
enum options { one32th, one16th, one8th, one4th, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_dur_factor_r15_opts> max_dur_factor_r15_e_;
struct num_pos_r15_opts {
enum options { n1, n2, n4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_pos_r15_opts> num_pos_r15_e_;
struct freq_location_r15_opts {
enum options { n0, n2, n4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<freq_location_r15_opts> freq_location_r15_e_;
struct time_offset_drx_r15_opts {
enum options { ms40, ms80, ms160, ms240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<time_offset_drx_r15_opts> time_offset_drx_r15_e_;
struct time_offset_e_drx_short_r15_opts {
enum options { ms40, ms80, ms160, ms240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<time_offset_e_drx_short_r15_opts> time_offset_e_drx_short_r15_e_;
struct time_offset_e_drx_long_r15_opts {
enum options { ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<time_offset_e_drx_long_r15_opts> time_offset_e_drx_long_r15_e_;
// member variables
bool num_pos_r15_present = false;
bool time_offset_e_drx_long_r15_present = false;
max_dur_factor_r15_e_ max_dur_factor_r15;
num_pos_r15_e_ num_pos_r15;
freq_location_r15_e_ freq_location_r15;
time_offset_drx_r15_e_ time_offset_drx_r15;
time_offset_e_drx_short_r15_e_ time_offset_e_drx_short_r15;
time_offset_e_drx_long_r15_e_ time_offset_e_drx_long_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AC-BarringPerPLMN-List-r12 ::= SEQUENCE (SIZE (1..6)) OF AC-BarringPerPLMN-r12
using ac_barr_per_plmn_list_r12_l = dyn_array<ac_barr_per_plmn_r12_s>;
// ACDC-BarringForCommon-r13 ::= SEQUENCE
struct acdc_barr_for_common_r13_s {
bool acdc_hplm_nonly_r13 = false;
barr_per_acdc_category_list_r13_l barr_per_acdc_category_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ACDC-BarringPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..6)) OF ACDC-BarringPerPLMN-r13
using acdc_barr_per_plmn_list_r13_l = dyn_array<acdc_barr_per_plmn_r13_s>;
// CIOT-EPS-OptimisationInfo-r13 ::= SEQUENCE (SIZE (1..6)) OF CIOT-OptimisationPLMN-r13
using ciot_eps_optim_info_r13_l = dyn_array<ciot_optim_plmn_r13_s>;
// CarrierFreqInfoUTRA-v1250 ::= SEQUENCE
struct carrier_freq_info_utra_v1250_s {
bool reduced_meas_performance_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF CarrierFreqNR-r15
using carrier_freq_list_nr_r15_l = dyn_array<carrier_freq_nr_r15_s>;
// CarrierFreqListUTRA-FDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD
using carrier_freq_list_utra_fdd_l = dyn_array<carrier_freq_utra_fdd_s>;
// CarrierFreqListUTRA-FDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-FDD-Ext-r12
using carrier_freq_list_utra_fdd_ext_r12_l = dyn_array<carrier_freq_utra_fdd_ext_r12_s>;
// CarrierFreqListUTRA-TDD ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD
using carrier_freq_list_utra_tdd_l = dyn_array<carrier_freq_utra_tdd_s>;
// CarrierFreqListUTRA-TDD-Ext-r12 ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqUTRA-TDD-r12
using carrier_freq_list_utra_tdd_ext_r12_l = dyn_array<carrier_freq_utra_tdd_r12_s>;
// CarrierFreqsInfoListGERAN ::= SEQUENCE (SIZE (1..16)) OF CarrierFreqsInfoGERAN
using carrier_freqs_info_list_geran_l = dyn_array<carrier_freqs_info_geran_s>;
// CellReselectionInfoCommon-v1460 ::= SEQUENCE
struct cell_resel_info_common_v1460_s {
struct s_search_delta_p_r14_opts {
enum options { db6, db9, db12, db15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<s_search_delta_p_r14_opts> s_search_delta_p_r14_e_;
// member variables
s_search_delta_p_r14_e_ s_search_delta_p_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellReselectionInfoHSDN-r15 ::= SEQUENCE
struct cell_resel_info_hsdn_r15_s {
uint8_t cell_equivalent_size_r15 = 2;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellReselectionParametersCDMA2000 ::= SEQUENCE
struct cell_resel_params_cdma2000_s {
bool t_resel_cdma2000_sf_present = false;
band_class_list_cdma2000_l band_class_list;
neigh_cell_list_cdma2000_l neigh_cell_list;
uint8_t t_resel_cdma2000 = 0;
speed_state_scale_factors_s t_resel_cdma2000_sf;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellReselectionParametersCDMA2000-v920 ::= SEQUENCE
struct cell_resel_params_cdma2000_v920_s {
neigh_cell_list_cdma2000_v920_l neigh_cell_list_v920;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellReselectionServingFreqInfo-v1310 ::= SEQUENCE
struct cell_resel_serving_freq_info_v1310_s {
cell_resel_sub_prio_r13_e cell_resel_sub_prio_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellSelectionInfo-v920 ::= SEQUENCE
struct cell_sel_info_v920_s {
bool q_qual_min_offset_r9_present = false;
int8_t q_qual_min_r9 = -34;
uint8_t q_qual_min_offset_r9 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EAB-ConfigPLMN-r11 ::= SEQUENCE
struct eab_cfg_plmn_r11_s {
bool eab_cfg_r11_present = false;
eab_cfg_r11_s eab_cfg_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqCarrierFreqList ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo
using inter_freq_carrier_freq_list_l = dyn_array<inter_freq_carrier_freq_info_s>;
// InterFreqCarrierFreqList-v1250 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1250
using inter_freq_carrier_freq_list_v1250_l = dyn_array<inter_freq_carrier_freq_info_v1250_s>;
// InterFreqCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310
using inter_freq_carrier_freq_list_v1310_l = dyn_array<inter_freq_carrier_freq_info_v1310_s>;
// InterFreqCarrierFreqList-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350
using inter_freq_carrier_freq_list_v1350_l = dyn_array<inter_freq_carrier_freq_info_v1350_s>;
// InterFreqCarrierFreqList-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530
using inter_freq_carrier_freq_list_v1530_l = dyn_array<inter_freq_carrier_freq_info_v1530_s>;
// InterFreqCarrierFreqListExt-r12 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-r12
using inter_freq_carrier_freq_list_ext_r12_l = dyn_array<inter_freq_carrier_freq_info_r12_s>;
// InterFreqCarrierFreqListExt-v1280 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v10j0
using inter_freq_carrier_freq_list_ext_v1280_l = dyn_array<inter_freq_carrier_freq_info_v10j0_s>;
// InterFreqCarrierFreqListExt-v1310 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1310
using inter_freq_carrier_freq_list_ext_v1310_l = dyn_array<inter_freq_carrier_freq_info_v1310_s>;
// InterFreqCarrierFreqListExt-v1350 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1350
using inter_freq_carrier_freq_list_ext_v1350_l = dyn_array<inter_freq_carrier_freq_info_v1350_s>;
// InterFreqCarrierFreqListExt-v1360 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1360
using inter_freq_carrier_freq_list_ext_v1360_l = dyn_array<inter_freq_carrier_freq_info_v1360_s>;
// InterFreqCarrierFreqListExt-v1530 ::= SEQUENCE (SIZE (1..8)) OF InterFreqCarrierFreqInfo-v1530
using inter_freq_carrier_freq_list_ext_v1530_l = dyn_array<inter_freq_carrier_freq_info_v1530_s>;
// IntraFreqBlackCellList ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using intra_freq_black_cell_list_l = dyn_array<pci_range_s>;
// IntraFreqNeighCellList ::= SEQUENCE (SIZE (1..16)) OF IntraFreqNeighCellInfo
using intra_freq_neigh_cell_list_l = dyn_array<intra_freq_neigh_cell_info_s>;
// IntraFreqNeighHSDN-CellList-r15 ::= SEQUENCE (SIZE (1..16)) OF PhysCellIdRange
using intra_freq_neigh_hsdn_cell_list_r15_l = dyn_array<pci_range_s>;
// MBMS-InterFreqCarrierTypeList-r14 ::= SEQUENCE (SIZE (1..8)) OF MBMS-CarrierType-r14
using mbms_inter_freq_carrier_type_list_r14_l = dyn_array<mbms_carrier_type_r14_s>;
// MBMS-NotificationConfig-r9 ::= SEQUENCE
struct mbms_notif_cfg_r9_s {
struct notif_repeat_coeff_r9_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<notif_repeat_coeff_r9_opts> notif_repeat_coeff_r9_e_;
// member variables
notif_repeat_coeff_r9_e_ notif_repeat_coeff_r9;
uint8_t notif_offset_r9 = 0;
uint8_t notif_sf_idx_r9 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-NotificationConfig-v1430 ::= SEQUENCE
struct mbms_notif_cfg_v1430_s {
uint8_t notif_sf_idx_v1430 = 7;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-SAI-InterFreqList-r11 ::= SEQUENCE (SIZE (1..8)) OF MBMS-SAI-InterFreq-r11
using mbms_sai_inter_freq_list_r11_l = dyn_array<mbms_sai_inter_freq_r11_s>;
// MBMS-SAI-InterFreqList-v1140 ::= SEQUENCE (SIZE (1..8)) OF MBMS-SAI-InterFreq-v1140
using mbms_sai_inter_freq_list_v1140_l = dyn_array<mbms_sai_inter_freq_v1140_s>;
// MBSFN-AreaInfoList-r9 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-AreaInfo-r9
using mbsfn_area_info_list_r9_l = dyn_array<mbsfn_area_info_r9_s>;
// MBSFN-SubframeConfigList ::= SEQUENCE (SIZE (1..8)) OF MBSFN-SubframeConfig
using mbsfn_sf_cfg_list_l = dyn_array<mbsfn_sf_cfg_s>;
// MBSFN-SubframeConfigList-v1430 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-SubframeConfig-v1430
using mbsfn_sf_cfg_list_v1430_l = dyn_array<mbsfn_sf_cfg_v1430_s>;
// MeasIdleConfigSIB-r15 ::= SEQUENCE
struct meas_idle_cfg_sib_r15_s {
bool ext = false;
eutra_carrier_list_r15_l meas_idle_carrier_list_eutra_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityStateParameters ::= SEQUENCE
struct mob_state_params_s {
struct t_eval_opts {
enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<t_eval_opts> t_eval_e_;
struct t_hyst_normal_opts {
enum options { s30, s60, s120, s180, s240, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<t_hyst_normal_opts> t_hyst_normal_e_;
// member variables
t_eval_e_ t_eval;
t_hyst_normal_e_ t_hyst_normal;
uint8_t n_cell_change_medium = 1;
uint8_t n_cell_change_high = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-InfoList-r15 ::= SEQUENCE (SIZE (1..6)) OF PLMN-Info-r15
using plmn_info_list_r15_l = dyn_array<plmn_info_r15_s>;
// RadioResourceConfigCommonSIB ::= SEQUENCE
struct rr_cfg_common_sib_s {
bool ext = false;
rach_cfg_common_s rach_cfg_common;
bcch_cfg_s bcch_cfg;
pcch_cfg_s pcch_cfg;
prach_cfg_sib_s prach_cfg;
pdsch_cfg_common_s pdsch_cfg_common;
pusch_cfg_common_s pusch_cfg_common;
pucch_cfg_common_s pucch_cfg_common;
srs_ul_cfg_common_c srs_ul_cfg_common;
ul_pwr_ctrl_common_s ul_pwr_ctrl_common;
ul_cp_len_e ul_cp_len;
// ...
// group 0
copy_ptr<ul_pwr_ctrl_common_v1020_s> ul_pwr_ctrl_common_v1020;
// group 1
copy_ptr<rach_cfg_common_v1250_s> rach_cfg_common_v1250;
// group 2
copy_ptr<pusch_cfg_common_v1270_s> pusch_cfg_common_v1270;
// group 3
copy_ptr<bcch_cfg_v1310_s> bcch_cfg_v1310;
copy_ptr<pcch_cfg_v1310_s> pcch_cfg_v1310;
copy_ptr<freq_hop_params_r13_s> freq_hop_params_r13;
copy_ptr<pdsch_cfg_common_v1310_s> pdsch_cfg_common_v1310;
copy_ptr<pusch_cfg_common_v1310_s> pusch_cfg_common_v1310;
copy_ptr<prach_cfg_sib_v1310_s> prach_cfg_common_v1310;
copy_ptr<pucch_cfg_common_v1310_s> pucch_cfg_common_v1310;
// group 4
copy_ptr<high_speed_cfg_r14_s> high_speed_cfg_r14;
copy_ptr<prach_cfg_v1430_s> prach_cfg_v1430;
copy_ptr<pucch_cfg_common_v1430_s> pucch_cfg_common_v1430;
// group 5
copy_ptr<prach_cfg_sib_v1530_s> prach_cfg_v1530;
copy_ptr<rss_cfg_r15_s> ce_rss_cfg_r15;
copy_ptr<wus_cfg_r15_s> wus_cfg_r15;
copy_ptr<high_speed_cfg_v1530_s> high_speed_cfg_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RedistributionServingInfo-r13 ::= SEQUENCE
struct redist_serving_info_r13_s {
struct t360_r13_opts {
enum options { min4, min8, min16, min32, infinity, spare3, spare2, spare1, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<t360_r13_opts> t360_r13_e_;
// member variables
bool redist_factor_cell_r13_present = false;
bool redistr_on_paging_only_r13_present = false;
uint8_t redist_factor_serving_r13 = 0;
t360_r13_e_ t360_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MCCH-SchedulingInfo-r14 ::= SEQUENCE
struct sc_mcch_sched_info_r14_s {
struct on_dur_timer_scptm_r14_opts {
enum options { psf10, psf20, psf100, psf300, psf500, psf1000, psf1200, psf1600, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<on_dur_timer_scptm_r14_opts> on_dur_timer_scptm_r14_e_;
struct drx_inactivity_timer_scptm_r14_opts {
enum options {
psf0,
psf1,
psf2,
psf4,
psf8,
psf16,
psf32,
psf64,
psf128,
psf256,
ps512,
psf1024,
psf2048,
psf4096,
psf8192,
psf16384,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_inactivity_timer_scptm_r14_opts> drx_inactivity_timer_scptm_r14_e_;
struct sched_period_start_offset_scptm_r14_c_ {
struct types_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf256,
sf320,
sf512,
sf640,
sf1024,
sf2048,
sf4096,
sf8192,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sched_period_start_offset_scptm_r14_c_() = default;
sched_period_start_offset_scptm_r14_c_(const sched_period_start_offset_scptm_r14_c_& other);
sched_period_start_offset_scptm_r14_c_& operator=(const sched_period_start_offset_scptm_r14_c_& other);
~sched_period_start_offset_scptm_r14_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf10()
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf20()
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf4096()
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf8192()
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf4096() const
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf8192() const
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint8_t& set_sf10()
{
set(types::sf10);
return c.get<uint8_t>();
}
uint8_t& set_sf20()
{
set(types::sf20);
return c.get<uint8_t>();
}
uint8_t& set_sf32()
{
set(types::sf32);
return c.get<uint8_t>();
}
uint8_t& set_sf40()
{
set(types::sf40);
return c.get<uint8_t>();
}
uint8_t& set_sf64()
{
set(types::sf64);
return c.get<uint8_t>();
}
uint8_t& set_sf80()
{
set(types::sf80);
return c.get<uint8_t>();
}
uint8_t& set_sf128()
{
set(types::sf128);
return c.get<uint8_t>();
}
uint8_t& set_sf160()
{
set(types::sf160);
return c.get<uint8_t>();
}
uint16_t& set_sf256()
{
set(types::sf256);
return c.get<uint16_t>();
}
uint16_t& set_sf320()
{
set(types::sf320);
return c.get<uint16_t>();
}
uint16_t& set_sf512()
{
set(types::sf512);
return c.get<uint16_t>();
}
uint16_t& set_sf640()
{
set(types::sf640);
return c.get<uint16_t>();
}
uint16_t& set_sf1024()
{
set(types::sf1024);
return c.get<uint16_t>();
}
uint16_t& set_sf2048()
{
set(types::sf2048);
return c.get<uint16_t>();
}
uint16_t& set_sf4096()
{
set(types::sf4096);
return c.get<uint16_t>();
}
uint16_t& set_sf8192()
{
set(types::sf8192);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
on_dur_timer_scptm_r14_e_ on_dur_timer_scptm_r14;
drx_inactivity_timer_scptm_r14_e_ drx_inactivity_timer_scptm_r14;
sched_period_start_offset_scptm_r14_c_ sched_period_start_offset_scptm_r14;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SIB-MappingInfo ::= SEQUENCE (SIZE (0..31)) OF SIB-Type
using sib_map_info_l = bounded_array<sib_type_e, 31>;
// SIB8-PerPLMN-List-r11 ::= SEQUENCE (SIZE (1..6)) OF SIB8-PerPLMN-r11
using sib8_per_plmn_list_r11_l = dyn_array<sib8_per_plmn_r11_s>;
// SL-CBR-PPPP-TxConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxConfigIndex-r15
using sl_cbr_pppp_tx_cfg_list_r15_l = dyn_array<sl_pppp_tx_cfg_idx_r15_s>;
// SL-CarrierFreqInfoList-r12 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-r12
using sl_carrier_freq_info_list_r12_l = dyn_array<sl_carrier_freq_info_r12_s>;
// SL-CarrierFreqInfoList-v1310 ::= SEQUENCE (SIZE (1..8)) OF SL-CarrierFreqInfo-v1310
using sl_carrier_freq_info_list_v1310_l = dyn_array<sl_carrier_freq_info_v1310_s>;
// SL-CommRxPoolList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-CommResourcePool-r12
using sl_comm_rx_pool_list_r12_l = dyn_array<sl_comm_res_pool_r12_s>;
// SL-CommTxPoolList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12
using sl_comm_tx_pool_list_r12_l = dyn_array<sl_comm_res_pool_r12_s>;
// SL-CommTxPoolListExt-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-CommResourcePool-r12
using sl_comm_tx_pool_list_ext_r13_l = dyn_array<sl_comm_res_pool_r12_s>;
// SL-DiscConfigRelayUE-r13 ::= SEQUENCE
struct sl_disc_cfg_relay_ue_r13_s {
struct hyst_max_r13_opts {
enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<hyst_max_r13_opts> hyst_max_r13_e_;
struct hyst_min_r13_opts {
enum options { db0, db3, db6, db9, db12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<hyst_min_r13_opts> hyst_min_r13_e_;
// member variables
bool thresh_high_r13_present = false;
bool thresh_low_r13_present = false;
bool hyst_max_r13_present = false;
bool hyst_min_r13_present = false;
uint8_t thresh_high_r13 = 0;
uint8_t thresh_low_r13 = 0;
hyst_max_r13_e_ hyst_max_r13;
hyst_min_r13_e_ hyst_min_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscConfigRemoteUE-r13 ::= SEQUENCE
struct sl_disc_cfg_remote_ue_r13_s {
struct hyst_max_r13_opts {
enum options { db0, db3, db6, db9, db12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<hyst_max_r13_opts> hyst_max_r13_e_;
// member variables
bool thresh_high_r13_present = false;
bool hyst_max_r13_present = false;
uint8_t thresh_high_r13 = 0;
hyst_max_r13_e_ hyst_max_r13;
resel_info_relay_r13_s resel_info_ic_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-SyncConfigList-r12 ::= SEQUENCE (SIZE (1..16)) OF SL-SyncConfig-r12
using sl_sync_cfg_list_r12_l = dyn_array<sl_sync_cfg_r12_s>;
// SL-V2X-ConfigCommon-r14 ::= SEQUENCE
struct sl_v2x_cfg_common_r14_s {
bool v2x_comm_rx_pool_r14_present = false;
bool v2x_comm_tx_pool_normal_common_r14_present = false;
bool p2x_comm_tx_pool_normal_common_r14_present = false;
bool v2x_comm_tx_pool_exceptional_r14_present = false;
bool v2x_sync_cfg_r14_present = false;
bool v2x_inter_freq_info_list_r14_present = false;
bool v2x_res_sel_cfg_r14_present = false;
bool zone_cfg_r14_present = false;
bool type_tx_sync_r14_present = false;
bool thres_sl_tx_prioritization_r14_present = false;
bool anchor_carrier_freq_list_r14_present = false;
bool offset_dfn_r14_present = false;
bool cbr_common_tx_cfg_list_r14_present = false;
sl_comm_rx_pool_list_v2x_r14_l v2x_comm_rx_pool_r14;
sl_comm_tx_pool_list_v2x_r14_l v2x_comm_tx_pool_normal_common_r14;
sl_comm_tx_pool_list_v2x_r14_l p2x_comm_tx_pool_normal_common_r14;
sl_comm_res_pool_v2x_r14_s v2x_comm_tx_pool_exceptional_r14;
sl_sync_cfg_list_v2x_r14_l v2x_sync_cfg_r14;
sl_inter_freq_info_list_v2x_r14_l v2x_inter_freq_info_list_r14;
sl_comm_tx_pool_sensing_cfg_r14_s v2x_res_sel_cfg_r14;
sl_zone_cfg_r14_s zone_cfg_r14;
sl_type_tx_sync_r14_e type_tx_sync_r14;
uint8_t thres_sl_tx_prioritization_r14 = 1;
sl_anchor_carrier_freq_list_v2x_r14_l anchor_carrier_freq_list_r14;
uint16_t offset_dfn_r14 = 0;
sl_cbr_common_tx_cfg_list_r14_s cbr_common_tx_cfg_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-PacketDuplicationConfig-r15 ::= SEQUENCE
struct sl_v2x_packet_dupl_cfg_r15_s {
bool ext = false;
bool allowed_carrier_freq_cfg_r15_present = false;
uint8_t thresh_sl_reliability_r15 = 1;
sl_pppr_dest_carrier_freq_list_r15_l allowed_carrier_freq_cfg_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-SyncFreqList-r15 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..262143)
using sl_v2x_sync_freq_list_r15_l = bounded_array<uint32_t, 8>;
// SystemInformationBlockType1-v1130-IEs ::= SEQUENCE
struct sib_type1_v1130_ies_s {
bool tdd_cfg_v1130_present = false;
bool cell_sel_info_v1130_present = false;
bool non_crit_ext_present = false;
tdd_cfg_v1130_s tdd_cfg_v1130;
cell_sel_info_v1130_s cell_sel_info_v1130;
sib_type1_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v9e0-IEs ::= SEQUENCE
struct sib_type1_v9e0_ies_s {
bool freq_band_ind_v9e0_present = false;
bool multi_band_info_list_v9e0_present = false;
bool non_crit_ext_present = false;
uint16_t freq_band_ind_v9e0 = 65;
multi_band_info_list_v9e0_l multi_band_info_list_v9e0;
sib_type1_v10j0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2-v8h0-IEs ::= SEQUENCE
struct sib_type2_v8h0_ies_s {
using multi_band_info_list_l_ = bounded_array<uint8_t, 8>;
// member variables
bool multi_band_info_list_present = false;
bool non_crit_ext_present = false;
multi_band_info_list_l_ multi_band_info_list;
sib_type2_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType3-v10j0-IEs ::= SEQUENCE
struct sib_type3_v10j0_ies_s {
bool freq_band_info_r10_present = false;
bool multi_band_info_list_v10j0_present = false;
bool non_crit_ext_present = false;
ns_pmax_list_r10_l freq_band_info_r10;
multi_band_info_list_v10j0_l multi_band_info_list_v10j0;
sib_type3_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5-v8h0-IEs ::= SEQUENCE
struct sib_type5_v8h0_ies_s {
using inter_freq_carrier_freq_list_v8h0_l_ = dyn_array<inter_freq_carrier_freq_info_v8h0_s>;
// member variables
bool inter_freq_carrier_freq_list_v8h0_present = false;
bool non_crit_ext_present = false;
inter_freq_carrier_freq_list_v8h0_l_ inter_freq_carrier_freq_list_v8h0;
sib_type5_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType6-v8h0-IEs ::= SEQUENCE
struct sib_type6_v8h0_ies_s {
using carrier_freq_list_utra_fdd_v8h0_l_ = dyn_array<carrier_freq_info_utra_fdd_v8h0_s>;
// member variables
bool carrier_freq_list_utra_fdd_v8h0_present = false;
bool non_crit_ext_present = false;
carrier_freq_list_utra_fdd_v8h0_l_ carrier_freq_list_utra_fdd_v8h0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TimeAlignmentTimer ::= ENUMERATED
struct time_align_timer_opts {
enum options { sf500, sf750, sf1280, sf1920, sf2560, sf5120, sf10240, infinity, nulltype } value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<time_align_timer_opts> time_align_timer_e;
// TimeReferenceInfo-r15 ::= SEQUENCE
struct time_ref_info_r15_s {
bool uncertainty_r15_present = false;
bool time_info_type_r15_present = false;
bool ref_sfn_r15_present = false;
ref_time_r15_s time_r15;
uint8_t uncertainty_r15 = 0;
uint16_t ref_sfn_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UAC-AC1-SelectAssistInfo-r15 ::= ENUMERATED
struct uac_ac1_select_assist_info_r15_opts {
enum options { a, b, c, nulltype } value;
std::string to_string() const;
};
typedef enumerated<uac_ac1_select_assist_info_r15_opts> uac_ac1_select_assist_info_r15_e;
// UAC-BarringInfoSetList-r15 ::= SEQUENCE (SIZE (1..8)) OF UAC-BarringInfoSet-r15
using uac_barr_info_set_list_r15_l = dyn_array<uac_barr_info_set_r15_s>;
// UAC-BarringPerPLMN-List-r15 ::= SEQUENCE (SIZE (1..6)) OF UAC-BarringPerPLMN-r15
using uac_barr_per_plmn_list_r15_l = dyn_array<uac_barr_per_plmn_r15_s>;
// UDT-RestrictingPerPLMN-List-r13 ::= SEQUENCE (SIZE (1..6)) OF UDT-RestrictingPerPLMN-r13
using udt_restricting_per_plmn_list_r13_l = dyn_array<udt_restricting_per_plmn_r13_s>;
// UE-TimersAndConstants ::= SEQUENCE
struct ue_timers_and_consts_s {
struct t300_opts {
enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t300_opts> t300_e_;
struct t301_opts {
enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t301_opts> t301_e_;
struct t310_opts {
enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t310_opts> t310_e_;
struct n310_opts {
enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n310_opts> n310_e_;
struct t311_opts {
enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t311_opts> t311_e_;
struct n311_opts {
enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n311_opts> n311_e_;
struct t300_v1310_opts {
enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t300_v1310_opts> t300_v1310_e_;
struct t301_v1310_opts {
enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t301_v1310_opts> t301_v1310_e_;
struct t310_v1330_opts {
enum options { ms4000, ms6000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t310_v1330_opts> t310_v1330_e_;
struct t300_r15_opts {
enum options { ms4000, ms6000, ms8000, ms10000, ms15000, ms25000, ms40000, ms60000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t300_r15_opts> t300_r15_e_;
// member variables
bool ext = false;
t300_e_ t300;
t301_e_ t301;
t310_e_ t310;
n310_e_ n310;
t311_e_ t311;
n311_e_ n311;
// ...
// group 0
bool t300_v1310_present = false;
bool t301_v1310_present = false;
t300_v1310_e_ t300_v1310;
t301_v1310_e_ t301_v1310;
// group 1
bool t310_v1330_present = false;
t310_v1330_e_ t310_v1330;
// group 2
bool t300_r15_present = false;
t300_r15_e_ t300_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-OffloadInfoPerPLMN-r12 ::= SEQUENCE
struct wlan_offload_info_per_plmn_r12_s {
bool ext = false;
bool wlan_offload_cfg_common_r12_present = false;
bool wlan_id_list_r12_present = false;
wlan_offload_cfg_r12_s wlan_offload_cfg_common_r12;
wlan_id_list_r12_l wlan_id_list_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
sib_map_info_l sib_map_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformation-v8a0-IEs ::= SEQUENCE
struct sys_info_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockPos-r15 ::= SEQUENCE
struct sib_pos_r15_s {
bool ext = false;
bool late_non_crit_ext_present = false;
dyn_octstring assist_data_sib_elem_r15;
dyn_octstring late_non_crit_ext;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v8h0-IEs ::= SEQUENCE
struct sib_type1_v8h0_ies_s {
bool multi_band_info_list_present = false;
bool non_crit_ext_present = false;
multi_band_info_list_l multi_band_info_list;
sib_type1_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v920-IEs ::= SEQUENCE
struct sib_type1_v920_ies_s {
bool ims_emergency_support_r9_present = false;
bool cell_sel_info_v920_present = false;
bool non_crit_ext_present = false;
cell_sel_info_v920_s cell_sel_info_v920;
sib_type1_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType10 ::= SEQUENCE
struct sib_type10_s {
bool ext = false;
bool dummy_present = false;
fixed_bitstring<16> msg_id;
fixed_bitstring<16> serial_num;
fixed_octstring<2> warning_type;
fixed_octstring<50> dummy;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType11 ::= SEQUENCE
struct sib_type11_s {
struct warning_msg_segment_type_opts {
enum options { not_last_segment, last_segment, nulltype } value;
std::string to_string() const;
};
typedef enumerated<warning_msg_segment_type_opts> warning_msg_segment_type_e_;
// member variables
bool ext = false;
bool data_coding_scheme_present = false;
fixed_bitstring<16> msg_id;
fixed_bitstring<16> serial_num;
warning_msg_segment_type_e_ warning_msg_segment_type;
uint8_t warning_msg_segment_num = 0;
dyn_octstring warning_msg_segment;
fixed_octstring<1> data_coding_scheme;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType12-r9 ::= SEQUENCE
struct sib_type12_r9_s {
struct warning_msg_segment_type_r9_opts {
enum options { not_last_segment, last_segment, nulltype } value;
std::string to_string() const;
};
typedef enumerated<warning_msg_segment_type_r9_opts> warning_msg_segment_type_r9_e_;
// member variables
bool ext = false;
bool data_coding_scheme_r9_present = false;
bool late_non_crit_ext_present = false;
fixed_bitstring<16> msg_id_r9;
fixed_bitstring<16> serial_num_r9;
warning_msg_segment_type_r9_e_ warning_msg_segment_type_r9;
uint8_t warning_msg_segment_num_r9 = 0;
dyn_octstring warning_msg_segment_r9;
fixed_octstring<1> data_coding_scheme_r9;
dyn_octstring late_non_crit_ext;
// ...
// group 0
bool warning_area_coordinates_segment_r15_present = false;
dyn_octstring warning_area_coordinates_segment_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType13-r9 ::= SEQUENCE
struct sib_type13_r9_s {
bool ext = false;
bool late_non_crit_ext_present = false;
mbsfn_area_info_list_r9_l mbsfn_area_info_list_r9;
mbms_notif_cfg_r9_s notif_cfg_r9;
dyn_octstring late_non_crit_ext;
// ...
// group 0
copy_ptr<mbms_notif_cfg_v1430_s> notif_cfg_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType14-r11 ::= SEQUENCE
struct sib_type14_r11_s {
struct eab_param_r11_c_ {
using eab_per_plmn_list_r11_l_ = dyn_array<eab_cfg_plmn_r11_s>;
struct types_opts {
enum options { eab_common_r11, eab_per_plmn_list_r11, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
eab_param_r11_c_() = default;
eab_param_r11_c_(const eab_param_r11_c_& other);
eab_param_r11_c_& operator=(const eab_param_r11_c_& other);
~eab_param_r11_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
eab_cfg_r11_s& eab_common_r11()
{
assert_choice_type("eab-Common-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_cfg_r11_s>();
}
eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11()
{
assert_choice_type("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_per_plmn_list_r11_l_>();
}
const eab_cfg_r11_s& eab_common_r11() const
{
assert_choice_type("eab-Common-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_cfg_r11_s>();
}
const eab_per_plmn_list_r11_l_& eab_per_plmn_list_r11() const
{
assert_choice_type("eab-PerPLMN-List-r11", type_.to_string(), "eab-Param-r11");
return c.get<eab_per_plmn_list_r11_l_>();
}
eab_cfg_r11_s& set_eab_common_r11()
{
set(types::eab_common_r11);
return c.get<eab_cfg_r11_s>();
}
eab_per_plmn_list_r11_l_& set_eab_per_plmn_list_r11()
{
set(types::eab_per_plmn_list_r11);
return c.get<eab_per_plmn_list_r11_l_>();
}
private:
types type_;
choice_buffer_t<eab_cfg_r11_s, eab_per_plmn_list_r11_l_> c;
void destroy_();
};
struct eab_per_rsrp_r15_opts {
enum options { thresh0, thresh1, thresh2, thresh3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<eab_per_rsrp_r15_opts> eab_per_rsrp_r15_e_;
// member variables
bool ext = false;
bool eab_param_r11_present = false;
bool late_non_crit_ext_present = false;
eab_param_r11_c_ eab_param_r11;
dyn_octstring late_non_crit_ext;
// ...
// group 0
bool eab_per_rsrp_r15_present = false;
eab_per_rsrp_r15_e_ eab_per_rsrp_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType15-r11 ::= SEQUENCE
struct sib_type15_r11_s {
bool ext = false;
bool mbms_sai_intra_freq_r11_present = false;
bool mbms_sai_inter_freq_list_r11_present = false;
bool late_non_crit_ext_present = false;
mbms_sai_list_r11_l mbms_sai_intra_freq_r11;
mbms_sai_inter_freq_list_r11_l mbms_sai_inter_freq_list_r11;
dyn_octstring late_non_crit_ext;
// ...
// group 0
copy_ptr<mbms_sai_inter_freq_list_v1140_l> mbms_sai_inter_freq_list_v1140;
// group 1
copy_ptr<mbms_carrier_type_r14_s> mbms_intra_freq_carrier_type_r14;
copy_ptr<mbms_inter_freq_carrier_type_list_r14_l> mbms_inter_freq_carrier_type_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType16-r11 ::= SEQUENCE
struct sib_type16_r11_s {
struct time_info_r11_s_ {
bool day_light_saving_time_r11_present = false;
bool leap_seconds_r11_present = false;
bool local_time_offset_r11_present = false;
uint64_t time_info_utc_r11 = 0;
fixed_bitstring<2> day_light_saving_time_r11;
int16_t leap_seconds_r11 = -127;
int8_t local_time_offset_r11 = -63;
};
// member variables
bool ext = false;
bool time_info_r11_present = false;
bool late_non_crit_ext_present = false;
time_info_r11_s_ time_info_r11;
dyn_octstring late_non_crit_ext;
// ...
// group 0
copy_ptr<time_ref_info_r15_s> time_ref_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType17-r12 ::= SEQUENCE
struct sib_type17_r12_s {
using wlan_offload_info_per_plmn_list_r12_l_ = dyn_array<wlan_offload_info_per_plmn_r12_s>;
// member variables
bool ext = false;
bool wlan_offload_info_per_plmn_list_r12_present = false;
bool late_non_crit_ext_present = false;
wlan_offload_info_per_plmn_list_r12_l_ wlan_offload_info_per_plmn_list_r12;
dyn_octstring late_non_crit_ext;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType18-r12 ::= SEQUENCE
struct sib_type18_r12_s {
struct comm_cfg_r12_s_ {
bool comm_tx_pool_normal_common_r12_present = false;
bool comm_tx_pool_exceptional_r12_present = false;
bool comm_sync_cfg_r12_present = false;
sl_comm_rx_pool_list_r12_l comm_rx_pool_r12;
sl_comm_tx_pool_list_r12_l comm_tx_pool_normal_common_r12;
sl_comm_tx_pool_list_r12_l comm_tx_pool_exceptional_r12;
sl_sync_cfg_list_r12_l comm_sync_cfg_r12;
};
// member variables
bool ext = false;
bool comm_cfg_r12_present = false;
bool late_non_crit_ext_present = false;
comm_cfg_r12_s_ comm_cfg_r12;
dyn_octstring late_non_crit_ext;
// ...
// group 0
bool comm_tx_res_uc_req_allowed_r13_present = false;
bool comm_tx_allow_relay_common_r13_present = false;
copy_ptr<sl_comm_tx_pool_list_ext_r13_l> comm_tx_pool_normal_common_ext_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType19-r12 ::= SEQUENCE
struct sib_type19_r12_s {
struct disc_cfg_r12_s_ {
bool disc_tx_pool_common_r12_present = false;
bool disc_tx_pwr_info_r12_present = false;
bool disc_sync_cfg_r12_present = false;
sl_disc_rx_pool_list_r12_l disc_rx_pool_r12;
sl_disc_tx_pool_list_r12_l disc_tx_pool_common_r12;
sl_disc_tx_pwr_info_list_r12_l disc_tx_pwr_info_r12;
sl_sync_cfg_list_r12_l disc_sync_cfg_r12;
};
struct disc_cfg_v1310_s_ {
bool disc_inter_freq_list_v1310_present = false;
bool gap_requests_allowed_common_present = false;
sl_carrier_freq_info_list_v1310_l disc_inter_freq_list_v1310;
};
struct disc_cfg_relay_r13_s_ {
sl_disc_cfg_relay_ue_r13_s relay_ue_cfg_r13;
sl_disc_cfg_remote_ue_r13_s remote_ue_cfg_r13;
};
struct disc_cfg_ps_minus13_s_ {
bool disc_tx_pool_ps_common_r13_present = false;
sl_disc_rx_pool_list_r12_l disc_rx_pool_ps_r13;
sl_disc_tx_pool_list_r12_l disc_tx_pool_ps_common_r13;
};
// member variables
bool ext = false;
bool disc_cfg_r12_present = false;
bool disc_inter_freq_list_r12_present = false;
bool late_non_crit_ext_present = false;
disc_cfg_r12_s_ disc_cfg_r12;
sl_carrier_freq_info_list_r12_l disc_inter_freq_list_r12;
dyn_octstring late_non_crit_ext;
// ...
// group 0
copy_ptr<disc_cfg_v1310_s_> disc_cfg_v1310;
copy_ptr<disc_cfg_relay_r13_s_> disc_cfg_relay_r13;
copy_ptr<disc_cfg_ps_minus13_s_> disc_cfg_ps_minus13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType2 ::= SEQUENCE
struct sib_type2_s {
struct ac_barr_info_s_ {
bool ac_barr_for_mo_sig_present = false;
bool ac_barr_for_mo_data_present = false;
bool ac_barr_for_emergency = false;
ac_barr_cfg_s ac_barr_for_mo_sig;
ac_barr_cfg_s ac_barr_for_mo_data;
};
struct freq_info_s_ {
struct ul_bw_opts {
enum options { n6, n15, n25, n50, n75, n100, 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_carrier_freq_present = false;
bool ul_bw_present = false;
uint32_t ul_carrier_freq = 0;
ul_bw_e_ ul_bw;
uint8_t add_spec_emission = 1;
};
// member variables
bool ext = false;
bool ac_barr_info_present = false;
bool mbsfn_sf_cfg_list_present = false;
ac_barr_info_s_ ac_barr_info;
rr_cfg_common_sib_s rr_cfg_common;
ue_timers_and_consts_s ue_timers_and_consts;
freq_info_s_ freq_info;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list;
time_align_timer_e time_align_timer_common;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
copy_ptr<ac_barr_cfg_s> ssac_barr_for_mmtel_voice_r9;
copy_ptr<ac_barr_cfg_s> ssac_barr_for_mmtel_video_r9;
// group 1
copy_ptr<ac_barr_cfg_s> ac_barr_for_csfb_r10;
// group 2
bool ac_barr_skip_for_mmtel_voice_r12_present = false;
bool ac_barr_skip_for_mmtel_video_r12_present = false;
bool ac_barr_skip_for_sms_r12_present = false;
copy_ptr<ac_barr_per_plmn_list_r12_l> ac_barr_per_plmn_list_r12;
// group 3
bool voice_service_cause_ind_r12_present = false;
// group 4
copy_ptr<acdc_barr_for_common_r13_s> acdc_barr_for_common_r13;
copy_ptr<acdc_barr_per_plmn_list_r13_l> acdc_barr_per_plmn_list_r13;
// group 5
bool use_full_resume_id_r13_present = false;
copy_ptr<udt_restricting_r13_s> udt_restricting_for_common_r13;
copy_ptr<udt_restricting_per_plmn_list_r13_l> udt_restricting_per_plmn_list_r13;
copy_ptr<ciot_eps_optim_info_r13_l> cio_t_eps_optim_info_r13;
// group 6
bool unicast_freq_hop_ind_r13_present = false;
// group 7
bool video_service_cause_ind_r14_present = false;
copy_ptr<mbsfn_sf_cfg_list_v1430_l> mbsfn_sf_cfg_list_v1430;
// group 8
copy_ptr<plmn_info_list_r15_l> plmn_info_list_r15;
// group 9
bool cp_edt_r15_present = false;
bool up_edt_r15_present = false;
bool idle_mode_meass_r15_present = false;
bool reduced_cp_latency_enabled_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType20-r13 ::= SEQUENCE
struct sib_type20_r13_s {
struct sc_mcch_repeat_period_r13_opts {
enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, rf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<sc_mcch_repeat_period_r13_opts> sc_mcch_repeat_period_r13_e_;
struct sc_mcch_mod_period_r13_opts {
enum options {
rf2,
rf4,
rf8,
rf16,
rf32,
rf64,
rf128,
rf256,
rf512,
rf1024,
r2048,
rf4096,
rf8192,
rf16384,
rf32768,
rf65536,
nulltype
} value;
typedef uint32_t number_type;
std::string to_string() const;
uint32_t to_number() const;
};
typedef enumerated<sc_mcch_mod_period_r13_opts> sc_mcch_mod_period_r13_e_;
struct br_bcch_cfg_r14_s_ {
struct mpdcch_num_repeat_sc_mcch_r14_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mpdcch_num_repeat_sc_mcch_r14_opts> mpdcch_num_repeat_sc_mcch_r14_e_;
struct mpdcch_start_sf_sc_mcch_r14_c_ {
struct fdd_r14_opts {
enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<fdd_r14_opts> fdd_r14_e_;
struct tdd_r14_opts {
enum options { v1, v2, v4, v5, v8, v10, v20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tdd_r14_opts> tdd_r14_e_;
struct types_opts {
enum options { fdd_r14, tdd_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mpdcch_start_sf_sc_mcch_r14_c_() = default;
mpdcch_start_sf_sc_mcch_r14_c_(const mpdcch_start_sf_sc_mcch_r14_c_& other);
mpdcch_start_sf_sc_mcch_r14_c_& operator=(const mpdcch_start_sf_sc_mcch_r14_c_& other);
~mpdcch_start_sf_sc_mcch_r14_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fdd_r14_e_& fdd_r14()
{
assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& tdd_r14()
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
const fdd_r14_e_& fdd_r14() const
{
assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<fdd_r14_e_>();
}
const tdd_r14_e_& tdd_r14() const
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MCCH-r14");
return c.get<tdd_r14_e_>();
}
fdd_r14_e_& set_fdd_r14()
{
set(types::fdd_r14);
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& set_tdd_r14()
{
set(types::tdd_r14);
return c.get<tdd_r14_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts {
enum options { off, ce_mode_a, ce_mode_b, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mpdcch_pdsch_hop_cfg_sc_mcch_r14_opts> mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_;
struct sc_mcch_repeat_period_br_r14_opts {
enum options { rf32, rf128, rf512, rf1024, rf2048, rf4096, rf8192, rf16384, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<sc_mcch_repeat_period_br_r14_opts> sc_mcch_repeat_period_br_r14_e_;
struct sc_mcch_mod_period_br_r14_opts {
enum options {
rf32,
rf128,
rf256,
rf512,
rf1024,
rf2048,
rf4096,
rf8192,
rf16384,
rf32768,
rf65536,
rf131072,
rf262144,
rf524288,
rf1048576,
nulltype
} value;
typedef uint32_t number_type;
std::string to_string() const;
uint32_t to_number() const;
};
typedef enumerated<sc_mcch_mod_period_br_r14_opts> sc_mcch_mod_period_br_r14_e_;
// member variables
uint8_t mpdcch_nb_sc_mcch_r14 = 1;
mpdcch_num_repeat_sc_mcch_r14_e_ mpdcch_num_repeat_sc_mcch_r14;
mpdcch_start_sf_sc_mcch_r14_c_ mpdcch_start_sf_sc_mcch_r14;
mpdcch_pdsch_hop_cfg_sc_mcch_r14_e_ mpdcch_pdsch_hop_cfg_sc_mcch_r14;
uint32_t sc_mcch_carrier_freq_r14 = 0;
uint8_t sc_mcch_offset_br_r14 = 0;
sc_mcch_repeat_period_br_r14_e_ sc_mcch_repeat_period_br_r14;
sc_mcch_mod_period_br_r14_e_ sc_mcch_mod_period_br_r14;
};
struct pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts {
enum options { r16, r32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdsch_max_num_repeat_cemode_a_sc_mtch_r14_opts> pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_;
struct pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts {
enum options { r192, r256, r384, r512, r768, r1024, r1536, r2048, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<pdsch_max_num_repeat_cemode_b_sc_mtch_r14_opts> pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_;
// member variables
bool ext = false;
bool sc_mcch_dur_r13_present = false;
bool late_non_crit_ext_present = false;
sc_mcch_repeat_period_r13_e_ sc_mcch_repeat_period_r13;
uint8_t sc_mcch_offset_r13 = 0;
uint8_t sc_mcch_first_sf_r13 = 0;
uint8_t sc_mcch_dur_r13 = 2;
sc_mcch_mod_period_r13_e_ sc_mcch_mod_period_r13;
dyn_octstring late_non_crit_ext;
// ...
// group 0
bool pdsch_max_num_repeat_cemode_a_sc_mtch_r14_present = false;
bool pdsch_max_num_repeat_cemode_b_sc_mtch_r14_present = false;
copy_ptr<br_bcch_cfg_r14_s_> br_bcch_cfg_r14;
copy_ptr<sc_mcch_sched_info_r14_s> sc_mcch_sched_info_r14;
pdsch_max_num_repeat_cemode_a_sc_mtch_r14_e_ pdsch_max_num_repeat_cemode_a_sc_mtch_r14;
pdsch_max_num_repeat_cemode_b_sc_mtch_r14_e_ pdsch_max_num_repeat_cemode_b_sc_mtch_r14;
// group 1
bool sc_mcch_repeat_period_v1470_present = false;
bool sc_mcch_mod_period_v1470_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType21-r14 ::= SEQUENCE
struct sib_type21_r14_s {
bool ext = false;
bool sl_v2x_cfg_common_r14_present = false;
bool late_non_crit_ext_present = false;
sl_v2x_cfg_common_r14_s sl_v2x_cfg_common_r14;
dyn_octstring late_non_crit_ext;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType24-r15 ::= SEQUENCE
struct sib_type24_r15_s {
bool ext = false;
bool carrier_freq_list_nr_r15_present = false;
bool t_resel_nr_sf_r15_present = false;
bool late_non_crit_ext_present = false;
carrier_freq_list_nr_r15_l carrier_freq_list_nr_r15;
uint8_t t_resel_nr_r15 = 0;
speed_state_scale_factors_s t_resel_nr_sf_r15;
dyn_octstring late_non_crit_ext;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType25-r15 ::= SEQUENCE
struct sib_type25_r15_s {
struct uac_ac1_select_assist_info_r15_c_ {
using individual_plmn_list_r15_l_ = bounded_array<uac_ac1_select_assist_info_r15_e, 6>;
struct types_opts {
enum options { plmn_common_r15, individual_plmn_list_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
uac_ac1_select_assist_info_r15_c_() = default;
uac_ac1_select_assist_info_r15_c_(const uac_ac1_select_assist_info_r15_c_& other);
uac_ac1_select_assist_info_r15_c_& operator=(const uac_ac1_select_assist_info_r15_c_& other);
~uac_ac1_select_assist_info_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uac_ac1_select_assist_info_r15_e& plmn_common_r15()
{
assert_choice_type("plmnCommon-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15");
return c.get<uac_ac1_select_assist_info_r15_e>();
}
individual_plmn_list_r15_l_& individual_plmn_list_r15()
{
assert_choice_type("individualPLMNList-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15");
return c.get<individual_plmn_list_r15_l_>();
}
const uac_ac1_select_assist_info_r15_e& plmn_common_r15() const
{
assert_choice_type("plmnCommon-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15");
return c.get<uac_ac1_select_assist_info_r15_e>();
}
const individual_plmn_list_r15_l_& individual_plmn_list_r15() const
{
assert_choice_type("individualPLMNList-r15", type_.to_string(), "uac-AC1-SelectAssistInfo-r15");
return c.get<individual_plmn_list_r15_l_>();
}
uac_ac1_select_assist_info_r15_e& set_plmn_common_r15()
{
set(types::plmn_common_r15);
return c.get<uac_ac1_select_assist_info_r15_e>();
}
individual_plmn_list_r15_l_& set_individual_plmn_list_r15()
{
set(types::individual_plmn_list_r15);
return c.get<individual_plmn_list_r15_l_>();
}
private:
types type_;
choice_buffer_t<individual_plmn_list_r15_l_> c;
void destroy_();
};
// member variables
bool ext = false;
bool uac_barr_for_common_r15_present = false;
bool uac_barr_per_plmn_list_r15_present = false;
bool uac_ac1_select_assist_info_r15_present = false;
bool late_non_crit_ext_present = false;
uac_barr_per_cat_list_r15_l uac_barr_for_common_r15;
uac_barr_per_plmn_list_r15_l uac_barr_per_plmn_list_r15;
uac_barr_info_set_list_r15_l uac_barr_info_set_list_r15;
uac_ac1_select_assist_info_r15_c_ uac_ac1_select_assist_info_r15;
dyn_octstring late_non_crit_ext;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType26-r15 ::= SEQUENCE
struct sib_type26_r15_s {
bool ext = false;
bool v2x_inter_freq_info_list_r15_present = false;
bool cbr_pssch_tx_cfg_list_r15_present = false;
bool v2x_packet_dupl_cfg_r15_present = false;
bool sync_freq_list_r15_present = false;
bool slss_tx_multi_freq_r15_present = false;
bool v2x_freq_sel_cfg_list_r15_present = false;
bool thresh_s_rssi_cbr_r14_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;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType3 ::= SEQUENCE
struct sib_type3_s {
struct cell_resel_info_common_s_ {
struct q_hyst_opts {
enum options {
db0,
db1,
db2,
db3,
db4,
db5,
db6,
db8,
db10,
db12,
db14,
db16,
db18,
db20,
db22,
db24,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<q_hyst_opts> q_hyst_e_;
struct speed_state_resel_pars_s_ {
struct q_hyst_sf_s_ {
struct sf_medium_opts {
enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<sf_medium_opts> sf_medium_e_;
struct sf_high_opts {
enum options { db_minus6, db_minus4, db_minus2, db0, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<sf_high_opts> sf_high_e_;
// member variables
sf_medium_e_ sf_medium;
sf_high_e_ sf_high;
};
// member variables
mob_state_params_s mob_state_params;
q_hyst_sf_s_ q_hyst_sf;
};
// member variables
bool speed_state_resel_pars_present = false;
q_hyst_e_ q_hyst;
speed_state_resel_pars_s_ speed_state_resel_pars;
};
struct cell_resel_serving_freq_info_s_ {
bool s_non_intra_search_present = false;
uint8_t s_non_intra_search = 0;
uint8_t thresh_serving_low = 0;
uint8_t cell_resel_prio = 0;
};
struct intra_freq_cell_resel_info_s_ {
bool p_max_present = false;
bool s_intra_search_present = false;
bool allowed_meas_bw_present = false;
bool t_resel_eutra_sf_present = false;
int8_t q_rx_lev_min = -70;
int8_t p_max = -30;
uint8_t s_intra_search = 0;
allowed_meas_bw_e allowed_meas_bw;
bool presence_ant_port1 = false;
fixed_bitstring<2> neigh_cell_cfg;
uint8_t t_resel_eutra = 0;
speed_state_scale_factors_s t_resel_eutra_sf;
};
struct s_intra_search_v920_s_ {
uint8_t s_intra_search_p_r9 = 0;
uint8_t s_intra_search_q_r9 = 0;
};
struct s_non_intra_search_v920_s_ {
uint8_t s_non_intra_search_p_r9 = 0;
uint8_t s_non_intra_search_q_r9 = 0;
};
// member variables
bool ext = false;
cell_resel_info_common_s_ cell_resel_info_common;
cell_resel_serving_freq_info_s_ cell_resel_serving_freq_info;
intra_freq_cell_resel_info_s_ intra_freq_cell_resel_info;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
bool q_qual_min_r9_present = false;
bool thresh_serving_low_q_r9_present = false;
copy_ptr<s_intra_search_v920_s_> s_intra_search_v920;
copy_ptr<s_non_intra_search_v920_s_> s_non_intra_search_v920;
int8_t q_qual_min_r9 = -34;
uint8_t thresh_serving_low_q_r9 = 0;
// group 1
bool q_qual_min_wb_r11_present = false;
int8_t q_qual_min_wb_r11 = -34;
// group 2
bool q_qual_min_rsrq_on_all_symbols_r12_present = false;
int8_t q_qual_min_rsrq_on_all_symbols_r12 = -34;
// group 3
bool t_resel_eutra_ce_r13_present = false;
copy_ptr<cell_resel_serving_freq_info_v1310_s> cell_resel_serving_freq_info_v1310;
copy_ptr<redist_serving_info_r13_s> redist_serving_info_r13;
copy_ptr<cell_sel_info_ce_r13_s> cell_sel_info_ce_r13;
uint8_t t_resel_eutra_ce_r13 = 0;
// group 4
copy_ptr<cell_sel_info_ce1_r13_s> cell_sel_info_ce1_r13;
// group 5
copy_ptr<cell_sel_info_ce1_v1360_s> cell_sel_info_ce1_v1360;
// group 6
copy_ptr<cell_resel_info_common_v1460_s> cell_resel_info_common_v1460;
// group 7
bool crs_intf_mitig_neigh_cells_ce_r15_present = false;
copy_ptr<cell_resel_info_hsdn_r15_s> cell_resel_info_hsdn_r15;
copy_ptr<cell_sel_info_ce_v1530_s> cell_sel_info_ce_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType4 ::= SEQUENCE
struct sib_type4_s {
bool ext = false;
bool intra_freq_neigh_cell_list_present = false;
bool intra_freq_black_cell_list_present = false;
bool csg_pci_range_present = false;
intra_freq_neigh_cell_list_l intra_freq_neigh_cell_list;
intra_freq_black_cell_list_l intra_freq_black_cell_list;
pci_range_s csg_pci_range;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
copy_ptr<intra_freq_neigh_hsdn_cell_list_r15_l> intra_freq_neigh_hsdn_cell_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType5 ::= SEQUENCE
struct sib_type5_s {
bool ext = false;
inter_freq_carrier_freq_list_l inter_freq_carrier_freq_list;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
copy_ptr<inter_freq_carrier_freq_list_v1250_l> inter_freq_carrier_freq_list_v1250;
copy_ptr<inter_freq_carrier_freq_list_ext_r12_l> inter_freq_carrier_freq_list_ext_r12;
// group 1
copy_ptr<inter_freq_carrier_freq_list_ext_v1280_l> inter_freq_carrier_freq_list_ext_v1280;
// group 2
copy_ptr<inter_freq_carrier_freq_list_v1310_l> inter_freq_carrier_freq_list_v1310;
copy_ptr<inter_freq_carrier_freq_list_ext_v1310_l> inter_freq_carrier_freq_list_ext_v1310;
// group 3
copy_ptr<inter_freq_carrier_freq_list_v1350_l> inter_freq_carrier_freq_list_v1350;
copy_ptr<inter_freq_carrier_freq_list_ext_v1350_l> inter_freq_carrier_freq_list_ext_v1350;
// group 4
copy_ptr<inter_freq_carrier_freq_list_ext_v1360_l> inter_freq_carrier_freq_list_ext_v1360;
// group 5
bool scptm_freq_offset_r14_present = false;
uint8_t scptm_freq_offset_r14 = 1;
// group 6
copy_ptr<inter_freq_carrier_freq_list_v1530_l> inter_freq_carrier_freq_list_v1530;
copy_ptr<inter_freq_carrier_freq_list_ext_v1530_l> inter_freq_carrier_freq_list_ext_v1530;
copy_ptr<meas_idle_cfg_sib_r15_s> meas_idle_cfg_sib_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType6 ::= SEQUENCE
struct sib_type6_s {
using carrier_freq_list_utra_fdd_v1250_l_ = dyn_array<carrier_freq_info_utra_v1250_s>;
using carrier_freq_list_utra_tdd_v1250_l_ = dyn_array<carrier_freq_info_utra_v1250_s>;
// member variables
bool ext = false;
bool carrier_freq_list_utra_fdd_present = false;
bool carrier_freq_list_utra_tdd_present = false;
bool t_resel_utra_sf_present = false;
carrier_freq_list_utra_fdd_l carrier_freq_list_utra_fdd;
carrier_freq_list_utra_tdd_l carrier_freq_list_utra_tdd;
uint8_t t_resel_utra = 0;
speed_state_scale_factors_s t_resel_utra_sf;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
copy_ptr<carrier_freq_list_utra_fdd_v1250_l_> carrier_freq_list_utra_fdd_v1250;
copy_ptr<carrier_freq_list_utra_tdd_v1250_l_> carrier_freq_list_utra_tdd_v1250;
copy_ptr<carrier_freq_list_utra_fdd_ext_r12_l> carrier_freq_list_utra_fdd_ext_r12;
copy_ptr<carrier_freq_list_utra_tdd_ext_r12_l> carrier_freq_list_utra_tdd_ext_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType7 ::= SEQUENCE
struct sib_type7_s {
bool ext = false;
bool t_resel_geran_sf_present = false;
bool carrier_freqs_info_list_present = false;
uint8_t t_resel_geran = 0;
speed_state_scale_factors_s t_resel_geran_sf;
carrier_freqs_info_list_geran_l carrier_freqs_info_list;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType8 ::= SEQUENCE
struct sib_type8_s {
struct params_hrpd_s_ {
bool cell_resel_params_hrpd_present = false;
pre_regist_info_hrpd_s pre_regist_info_hrpd;
cell_resel_params_cdma2000_s cell_resel_params_hrpd;
};
struct params1_xrtt_s_ {
bool csfb_regist_param1_xrtt_present = false;
bool long_code_state1_xrtt_present = false;
bool cell_resel_params1_xrtt_present = false;
csfb_regist_param1_xrtt_s csfb_regist_param1_xrtt;
fixed_bitstring<42> long_code_state1_xrtt;
cell_resel_params_cdma2000_s cell_resel_params1_xrtt;
};
// member variables
bool ext = false;
bool sys_time_info_present = false;
bool search_win_size_present = false;
bool params_hrpd_present = false;
bool params1_xrtt_present = false;
sys_time_info_cdma2000_s sys_time_info;
uint8_t search_win_size = 0;
params_hrpd_s_ params_hrpd;
params1_xrtt_s_ params1_xrtt;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// group 0
bool csfb_support_for_dual_rx_ues_r9_present = false;
bool csfb_support_for_dual_rx_ues_r9 = false;
copy_ptr<cell_resel_params_cdma2000_v920_s> cell_resel_params_hrpd_v920;
copy_ptr<cell_resel_params_cdma2000_v920_s> cell_resel_params1_xrtt_v920;
copy_ptr<csfb_regist_param1_xrtt_v920_s> csfb_regist_param1_xrtt_v920;
copy_ptr<ac_barr_cfg1_xrtt_r9_s> ac_barr_cfg1_xrtt_r9;
// group 1
bool csfb_dual_rx_tx_support_r10_present = false;
// group 2
copy_ptr<sib8_per_plmn_list_r11_l> sib8_per_plmn_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType9 ::= SEQUENCE
struct sib_type9_s {
bool ext = false;
bool hnb_name_present = false;
dyn_octstring hnb_name;
// ...
bool late_non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PosSystemInformation-r15-IEs ::= SEQUENCE
struct pos_sys_info_r15_ies_s {
struct pos_sib_type_and_info_r15_item_c_ {
struct types_opts {
enum options {
pos_sib1_minus1_r15,
pos_sib1_minus2_r15,
pos_sib1_minus3_r15,
pos_sib1_minus4_r15,
pos_sib1_minus5_r15,
pos_sib1_minus6_r15,
pos_sib1_minus7_r15,
pos_sib2_minus1_r15,
pos_sib2_minus2_r15,
pos_sib2_minus3_r15,
pos_sib2_minus4_r15,
pos_sib2_minus5_r15,
pos_sib2_minus6_r15,
pos_sib2_minus7_r15,
pos_sib2_minus8_r15,
pos_sib2_minus9_r15,
pos_sib2_minus10_r15,
pos_sib2_minus11_r15,
pos_sib2_minus12_r15,
pos_sib2_minus13_r15,
pos_sib2_minus14_r15,
pos_sib2_minus15_r15,
pos_sib2_minus16_r15,
pos_sib2_minus17_r15,
pos_sib2_minus18_r15,
pos_sib2_minus19_r15,
pos_sib3_minus1_r15,
// ...
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
pos_sib_type_and_info_r15_item_c_() = default;
pos_sib_type_and_info_r15_item_c_(const pos_sib_type_and_info_r15_item_c_& other);
pos_sib_type_and_info_r15_item_c_& operator=(const pos_sib_type_and_info_r15_item_c_& other);
~pos_sib_type_and_info_r15_item_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sib_pos_r15_s& pos_sib1_minus1_r15()
{
assert_choice_type("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus2_r15()
{
assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus3_r15()
{
assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus4_r15()
{
assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus5_r15()
{
assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus6_r15()
{
assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib1_minus7_r15()
{
assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus1_r15()
{
assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus2_r15()
{
assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus3_r15()
{
assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus4_r15()
{
assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus5_r15()
{
assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus6_r15()
{
assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus7_r15()
{
assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus8_r15()
{
assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus9_r15()
{
assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus10_r15()
{
assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus11_r15()
{
assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus12_r15()
{
assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus13_r15()
{
assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus14_r15()
{
assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus15_r15()
{
assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus16_r15()
{
assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus17_r15()
{
assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus18_r15()
{
assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib2_minus19_r15()
{
assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& pos_sib3_minus1_r15()
{
assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus1_r15() const
{
assert_choice_type("posSib1-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus2_r15() const
{
assert_choice_type("posSib1-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus3_r15() const
{
assert_choice_type("posSib1-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus4_r15() const
{
assert_choice_type("posSib1-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus5_r15() const
{
assert_choice_type("posSib1-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus6_r15() const
{
assert_choice_type("posSib1-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib1_minus7_r15() const
{
assert_choice_type("posSib1-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus1_r15() const
{
assert_choice_type("posSib2-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus2_r15() const
{
assert_choice_type("posSib2-2-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus3_r15() const
{
assert_choice_type("posSib2-3-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus4_r15() const
{
assert_choice_type("posSib2-4-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus5_r15() const
{
assert_choice_type("posSib2-5-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus6_r15() const
{
assert_choice_type("posSib2-6-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus7_r15() const
{
assert_choice_type("posSib2-7-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus8_r15() const
{
assert_choice_type("posSib2-8-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus9_r15() const
{
assert_choice_type("posSib2-9-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus10_r15() const
{
assert_choice_type("posSib2-10-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus11_r15() const
{
assert_choice_type("posSib2-11-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus12_r15() const
{
assert_choice_type("posSib2-12-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus13_r15() const
{
assert_choice_type("posSib2-13-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus14_r15() const
{
assert_choice_type("posSib2-14-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus15_r15() const
{
assert_choice_type("posSib2-15-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus16_r15() const
{
assert_choice_type("posSib2-16-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus17_r15() const
{
assert_choice_type("posSib2-17-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus18_r15() const
{
assert_choice_type("posSib2-18-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib2_minus19_r15() const
{
assert_choice_type("posSib2-19-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
const sib_pos_r15_s& pos_sib3_minus1_r15() const
{
assert_choice_type("posSib3-1-r15", type_.to_string(), "posSIB-TypeAndInfo-r15-item");
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus1_r15()
{
set(types::pos_sib1_minus1_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus2_r15()
{
set(types::pos_sib1_minus2_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus3_r15()
{
set(types::pos_sib1_minus3_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus4_r15()
{
set(types::pos_sib1_minus4_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus5_r15()
{
set(types::pos_sib1_minus5_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus6_r15()
{
set(types::pos_sib1_minus6_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib1_minus7_r15()
{
set(types::pos_sib1_minus7_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus1_r15()
{
set(types::pos_sib2_minus1_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus2_r15()
{
set(types::pos_sib2_minus2_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus3_r15()
{
set(types::pos_sib2_minus3_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus4_r15()
{
set(types::pos_sib2_minus4_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus5_r15()
{
set(types::pos_sib2_minus5_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus6_r15()
{
set(types::pos_sib2_minus6_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus7_r15()
{
set(types::pos_sib2_minus7_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus8_r15()
{
set(types::pos_sib2_minus8_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus9_r15()
{
set(types::pos_sib2_minus9_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus10_r15()
{
set(types::pos_sib2_minus10_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus11_r15()
{
set(types::pos_sib2_minus11_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus12_r15()
{
set(types::pos_sib2_minus12_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus13_r15()
{
set(types::pos_sib2_minus13_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus14_r15()
{
set(types::pos_sib2_minus14_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus15_r15()
{
set(types::pos_sib2_minus15_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus16_r15()
{
set(types::pos_sib2_minus16_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus17_r15()
{
set(types::pos_sib2_minus17_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus18_r15()
{
set(types::pos_sib2_minus18_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib2_minus19_r15()
{
set(types::pos_sib2_minus19_r15);
return c.get<sib_pos_r15_s>();
}
sib_pos_r15_s& set_pos_sib3_minus1_r15()
{
set(types::pos_sib3_minus1_r15);
return c.get<sib_pos_r15_s>();
}
private:
types type_;
choice_buffer_t<sib_pos_r15_s> c;
void destroy_();
};
using pos_sib_type_and_info_r15_l_ = dyn_array<pos_sib_type_and_info_r15_item_c_>;
// member variables
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
pos_sib_type_and_info_r15_l_ pos_sib_type_and_info_r15;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SchedulingInfoList ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo
using sched_info_list_l = dyn_array<sched_info_s>;
struct sib_info_item_c {
struct types_opts {
enum options {
sib2,
sib3,
sib4,
sib5,
sib6,
sib7,
sib8,
sib9,
sib10,
sib11,
// ...
sib12_v920,
sib13_v920,
sib14_v1130,
sib15_v1130,
sib16_v1130,
sib17_v1250,
sib18_v1250,
sib19_v1250,
sib20_v1310,
sib21_v1430,
sib24_v1530,
sib25_v1530,
sib26_v1530,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true, 13> types;
// choice methods
sib_info_item_c() = default;
sib_info_item_c(const sib_info_item_c& other);
sib_info_item_c& operator=(const sib_info_item_c& other);
~sib_info_item_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sib_type2_s& sib2()
{
assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type2_s>();
}
sib_type3_s& sib3()
{
assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
sib_type4_s& sib4()
{
assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
sib_type5_s& sib5()
{
assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
sib_type6_s& sib6()
{
assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
sib_type7_s& sib7()
{
assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
sib_type8_s& sib8()
{
assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
sib_type9_s& sib9()
{
assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
sib_type10_s& sib10()
{
assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
sib_type11_s& sib11()
{
assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
sib_type12_r9_s& sib12_v920()
{
assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
sib_type13_r9_s& sib13_v920()
{
assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
sib_type14_r11_s& sib14_v1130()
{
assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
sib_type15_r11_s& sib15_v1130()
{
assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
sib_type16_r11_s& sib16_v1130()
{
assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
sib_type17_r12_s& sib17_v1250()
{
assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
sib_type18_r12_s& sib18_v1250()
{
assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
sib_type19_r12_s& sib19_v1250()
{
assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
sib_type20_r13_s& sib20_v1310()
{
assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
sib_type21_r14_s& sib21_v1430()
{
assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
sib_type24_r15_s& sib24_v1530()
{
assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
sib_type25_r15_s& sib25_v1530()
{
assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
sib_type26_r15_s& sib26_v1530()
{
assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
const sib_type2_s& sib2() const
{
assert_choice_type("sib2", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type2_s>();
}
const sib_type3_s& sib3() const
{
assert_choice_type("sib3", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type3_s>();
}
const sib_type4_s& sib4() const
{
assert_choice_type("sib4", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type4_s>();
}
const sib_type5_s& sib5() const
{
assert_choice_type("sib5", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type5_s>();
}
const sib_type6_s& sib6() const
{
assert_choice_type("sib6", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type6_s>();
}
const sib_type7_s& sib7() const
{
assert_choice_type("sib7", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type7_s>();
}
const sib_type8_s& sib8() const
{
assert_choice_type("sib8", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type8_s>();
}
const sib_type9_s& sib9() const
{
assert_choice_type("sib9", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type9_s>();
}
const sib_type10_s& sib10() const
{
assert_choice_type("sib10", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type10_s>();
}
const sib_type11_s& sib11() const
{
assert_choice_type("sib11", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type11_s>();
}
const sib_type12_r9_s& sib12_v920() const
{
assert_choice_type("sib12-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type12_r9_s>();
}
const sib_type13_r9_s& sib13_v920() const
{
assert_choice_type("sib13-v920", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type13_r9_s>();
}
const sib_type14_r11_s& sib14_v1130() const
{
assert_choice_type("sib14-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type14_r11_s>();
}
const sib_type15_r11_s& sib15_v1130() const
{
assert_choice_type("sib15-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type15_r11_s>();
}
const sib_type16_r11_s& sib16_v1130() const
{
assert_choice_type("sib16-v1130", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type16_r11_s>();
}
const sib_type17_r12_s& sib17_v1250() const
{
assert_choice_type("sib17-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type17_r12_s>();
}
const sib_type18_r12_s& sib18_v1250() const
{
assert_choice_type("sib18-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type18_r12_s>();
}
const sib_type19_r12_s& sib19_v1250() const
{
assert_choice_type("sib19-v1250", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type19_r12_s>();
}
const sib_type20_r13_s& sib20_v1310() const
{
assert_choice_type("sib20-v1310", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type20_r13_s>();
}
const sib_type21_r14_s& sib21_v1430() const
{
assert_choice_type("sib21-v1430", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type21_r14_s>();
}
const sib_type24_r15_s& sib24_v1530() const
{
assert_choice_type("sib24-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type24_r15_s>();
}
const sib_type25_r15_s& sib25_v1530() const
{
assert_choice_type("sib25-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type25_r15_s>();
}
const sib_type26_r15_s& sib26_v1530() const
{
assert_choice_type("sib26-v1530", type_.to_string(), "sib-TypeAndInfo-item");
return c.get<sib_type26_r15_s>();
}
sib_type2_s& set_sib2()
{
set(types::sib2);
return c.get<sib_type2_s>();
}
sib_type3_s& set_sib3()
{
set(types::sib3);
return c.get<sib_type3_s>();
}
sib_type4_s& set_sib4()
{
set(types::sib4);
return c.get<sib_type4_s>();
}
sib_type5_s& set_sib5()
{
set(types::sib5);
return c.get<sib_type5_s>();
}
sib_type6_s& set_sib6()
{
set(types::sib6);
return c.get<sib_type6_s>();
}
sib_type7_s& set_sib7()
{
set(types::sib7);
return c.get<sib_type7_s>();
}
sib_type8_s& set_sib8()
{
set(types::sib8);
return c.get<sib_type8_s>();
}
sib_type9_s& set_sib9()
{
set(types::sib9);
return c.get<sib_type9_s>();
}
sib_type10_s& set_sib10()
{
set(types::sib10);
return c.get<sib_type10_s>();
}
sib_type11_s& set_sib11()
{
set(types::sib11);
return c.get<sib_type11_s>();
}
sib_type12_r9_s& set_sib12_v920()
{
set(types::sib12_v920);
return c.get<sib_type12_r9_s>();
}
sib_type13_r9_s& set_sib13_v920()
{
set(types::sib13_v920);
return c.get<sib_type13_r9_s>();
}
sib_type14_r11_s& set_sib14_v1130()
{
set(types::sib14_v1130);
return c.get<sib_type14_r11_s>();
}
sib_type15_r11_s& set_sib15_v1130()
{
set(types::sib15_v1130);
return c.get<sib_type15_r11_s>();
}
sib_type16_r11_s& set_sib16_v1130()
{
set(types::sib16_v1130);
return c.get<sib_type16_r11_s>();
}
sib_type17_r12_s& set_sib17_v1250()
{
set(types::sib17_v1250);
return c.get<sib_type17_r12_s>();
}
sib_type18_r12_s& set_sib18_v1250()
{
set(types::sib18_v1250);
return c.get<sib_type18_r12_s>();
}
sib_type19_r12_s& set_sib19_v1250()
{
set(types::sib19_v1250);
return c.get<sib_type19_r12_s>();
}
sib_type20_r13_s& set_sib20_v1310()
{
set(types::sib20_v1310);
return c.get<sib_type20_r13_s>();
}
sib_type21_r14_s& set_sib21_v1430()
{
set(types::sib21_v1430);
return c.get<sib_type21_r14_s>();
}
sib_type24_r15_s& set_sib24_v1530()
{
set(types::sib24_v1530);
return c.get<sib_type24_r15_s>();
}
sib_type25_r15_s& set_sib25_v1530()
{
set(types::sib25_v1530);
return c.get<sib_type25_r15_s>();
}
sib_type26_r15_s& set_sib26_v1530()
{
set(types::sib26_v1530);
return c.get<sib_type26_r15_s>();
}
private:
types type_;
choice_buffer_t<sib_type10_s,
sib_type11_s,
sib_type12_r9_s,
sib_type13_r9_s,
sib_type14_r11_s,
sib_type15_r11_s,
sib_type16_r11_s,
sib_type17_r12_s,
sib_type18_r12_s,
sib_type19_r12_s,
sib_type20_r13_s,
sib_type21_r14_s,
sib_type24_r15_s,
sib_type25_r15_s,
sib_type26_r15_s,
sib_type2_s,
sib_type3_s,
sib_type4_s,
sib_type5_s,
sib_type6_s,
sib_type7_s,
sib_type8_s,
sib_type9_s>
c;
void destroy_();
};
// SystemInformation-r8-IEs ::= SEQUENCE
struct sys_info_r8_ies_s {
typedef sib_info_item_c sib_type_and_info_item_c_;
using sib_type_and_info_l_ = dyn_array<sib_type_and_info_item_c_>;
// member variables
bool non_crit_ext_present = false;
sib_type_and_info_l_ sib_type_and_info;
sys_info_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1-v890-IEs ::= SEQUENCE
struct sib_type1_v890_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
sib_type1_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformation ::= SEQUENCE
struct sys_info_s {
struct crit_exts_c_ {
struct crit_exts_future_r15_c_ {
struct types_opts {
enum options { pos_sys_info_r15, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_future_r15_c_() = default;
crit_exts_future_r15_c_(const crit_exts_future_r15_c_& other);
crit_exts_future_r15_c_& operator=(const crit_exts_future_r15_c_& other);
~crit_exts_future_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
pos_sys_info_r15_ies_s& pos_sys_info_r15()
{
assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15");
return c.get<pos_sys_info_r15_ies_s>();
}
const pos_sys_info_r15_ies_s& pos_sys_info_r15() const
{
assert_choice_type("posSystemInformation-r15", type_.to_string(), "criticalExtensionsFuture-r15");
return c.get<pos_sys_info_r15_ies_s>();
}
pos_sys_info_r15_ies_s& set_pos_sys_info_r15()
{
set(types::pos_sys_info_r15);
return c.get<pos_sys_info_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<pos_sys_info_r15_ies_s> c;
void destroy_();
};
struct types_opts {
enum options { sys_info_r8, crit_exts_future_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_info_r8_ies_s& sys_info_r8()
{
assert_choice_type("systemInformation-r8", type_.to_string(), "criticalExtensions");
return c.get<sys_info_r8_ies_s>();
}
crit_exts_future_r15_c_& crit_exts_future_r15()
{
assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
const sys_info_r8_ies_s& sys_info_r8() const
{
assert_choice_type("systemInformation-r8", type_.to_string(), "criticalExtensions");
return c.get<sys_info_r8_ies_s>();
}
const crit_exts_future_r15_c_& crit_exts_future_r15() const
{
assert_choice_type("criticalExtensionsFuture-r15", type_.to_string(), "criticalExtensions");
return c.get<crit_exts_future_r15_c_>();
}
sys_info_r8_ies_s& set_sys_info_r8()
{
set(types::sys_info_r8);
return c.get<sys_info_r8_ies_s>();
}
crit_exts_future_r15_c_& set_crit_exts_future_r15()
{
set(types::crit_exts_future_r15);
return c.get<crit_exts_future_r15_c_>();
}
private:
types type_;
choice_buffer_t<crit_exts_future_r15_c_, sys_info_r8_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformationBlockType1 ::= SEQUENCE
struct sib_type1_s {
struct cell_access_related_info_s_ {
struct cell_barred_opts {
enum options { barred, not_barred, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_barred_opts> cell_barred_e_;
struct intra_freq_resel_opts {
enum options { allowed, not_allowed, nulltype } value;
std::string to_string() const;
};
typedef enumerated<intra_freq_resel_opts> intra_freq_resel_e_;
// member variables
bool csg_id_present = false;
plmn_id_list_l plmn_id_list;
fixed_bitstring<16> tac;
fixed_bitstring<28> cell_id;
cell_barred_e_ cell_barred;
intra_freq_resel_e_ intra_freq_resel;
bool csg_ind = false;
fixed_bitstring<27> csg_id;
};
struct cell_sel_info_s_ {
bool q_rx_lev_min_offset_present = false;
int8_t q_rx_lev_min = -70;
uint8_t q_rx_lev_min_offset = 1;
};
struct si_win_len_opts {
enum options { ms1, ms2, ms5, ms10, ms15, ms20, ms40, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<si_win_len_opts> si_win_len_e_;
// member variables
bool p_max_present = false;
bool tdd_cfg_present = false;
bool non_crit_ext_present = false;
cell_access_related_info_s_ cell_access_related_info;
cell_sel_info_s_ cell_sel_info;
int8_t p_max = -30;
uint8_t freq_band_ind = 1;
sched_info_list_l sched_info_list;
tdd_cfg_s tdd_cfg;
si_win_len_e_ si_win_len;
uint8_t sys_info_value_tag = 0;
sib_type1_v890_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-DL-SCH-MessageType ::= CHOICE
struct bcch_dl_sch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options { sys_info, sib_type1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_info_s& sys_info()
{
assert_choice_type("systemInformation", type_.to_string(), "c1");
return c.get<sys_info_s>();
}
sib_type1_s& sib_type1()
{
assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1");
return c.get<sib_type1_s>();
}
const sys_info_s& sys_info() const
{
assert_choice_type("systemInformation", type_.to_string(), "c1");
return c.get<sys_info_s>();
}
const sib_type1_s& sib_type1() const
{
assert_choice_type("systemInformationBlockType1", type_.to_string(), "c1");
return c.get<sib_type1_s>();
}
sys_info_s& set_sys_info()
{
set(types::sys_info);
return c.get<sys_info_s>();
}
sib_type1_s& set_sib_type1()
{
set(types::sib_type1);
return c.get<sib_type1_s>();
}
private:
types type_;
choice_buffer_t<sib_type1_s, sys_info_s> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
bcch_dl_sch_msg_type_c() = default;
bcch_dl_sch_msg_type_c(const bcch_dl_sch_msg_type_c& other);
bcch_dl_sch_msg_type_c& operator=(const bcch_dl_sch_msg_type_c& other);
~bcch_dl_sch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// BCCH-DL-SCH-Message ::= SEQUENCE
struct bcch_dl_sch_msg_s {
bcch_dl_sch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInformation-BR-r13 ::= SystemInformation
typedef sys_info_s sys_info_br_r13_s;
// SystemInformationBlockType1-BR-r13 ::= SystemInformationBlockType1
typedef sib_type1_s sib_type1_br_r13_s;
// BCCH-DL-SCH-MessageType-BR-r13 ::= CHOICE
struct bcch_dl_sch_msg_type_br_r13_c {
struct c1_c_ {
struct types_opts {
enum options { sys_info_br_r13, sib_type1_br_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_info_br_r13_s& sys_info_br_r13()
{
assert_choice_type("systemInformation-BR-r13", type_.to_string(), "c1");
return c.get<sys_info_br_r13_s>();
}
sib_type1_br_r13_s& sib_type1_br_r13()
{
assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1");
return c.get<sib_type1_br_r13_s>();
}
const sys_info_br_r13_s& sys_info_br_r13() const
{
assert_choice_type("systemInformation-BR-r13", type_.to_string(), "c1");
return c.get<sys_info_br_r13_s>();
}
const sib_type1_br_r13_s& sib_type1_br_r13() const
{
assert_choice_type("systemInformationBlockType1-BR-r13", type_.to_string(), "c1");
return c.get<sib_type1_br_r13_s>();
}
sys_info_br_r13_s& set_sys_info_br_r13()
{
set(types::sys_info_br_r13);
return c.get<sys_info_br_r13_s>();
}
sib_type1_br_r13_s& set_sib_type1_br_r13()
{
set(types::sib_type1_br_r13);
return c.get<sib_type1_br_r13_s>();
}
private:
types type_;
choice_buffer_t<sib_type1_br_r13_s, sys_info_br_r13_s> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
bcch_dl_sch_msg_type_br_r13_c() = default;
bcch_dl_sch_msg_type_br_r13_c(const bcch_dl_sch_msg_type_br_r13_c& other);
bcch_dl_sch_msg_type_br_r13_c& operator=(const bcch_dl_sch_msg_type_br_r13_c& other);
~bcch_dl_sch_msg_type_br_r13_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-BR-r13");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// BCCH-DL-SCH-Message-BR ::= SEQUENCE
struct bcch_dl_sch_msg_br_s {
bcch_dl_sch_msg_type_br_r13_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SIB-Type-MBMS-r14 ::= ENUMERATED
struct sib_type_mbms_r14_opts {
enum options {
sib_type10,
sib_type11,
sib_type12_v920,
sib_type13_v920,
sib_type15_v1130,
sib_type16_v1130,
// ...
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sib_type_mbms_r14_opts, true> sib_type_mbms_r14_e;
// SIB-MappingInfo-MBMS-r14 ::= SEQUENCE (SIZE (0..31)) OF SIB-Type-MBMS-r14
using sib_map_info_mbms_r14_l = bounded_array<sib_type_mbms_r14_e, 31>;
// SchedulingInfo-MBMS-r14 ::= SEQUENCE
struct sched_info_mbms_r14_s {
struct si_periodicity_r14_opts {
enum options { rf16, rf32, rf64, rf128, rf256, rf512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<si_periodicity_r14_opts> si_periodicity_r14_e_;
// member variables
si_periodicity_r14_e_ si_periodicity_r14;
sib_map_info_mbms_r14_l sib_map_info_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NonMBSFN-SubframeConfig-r14 ::= SEQUENCE
struct non_mbsfn_sf_cfg_r14_s {
struct radio_frame_alloc_period_r14_opts {
enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf512, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<radio_frame_alloc_period_r14_opts> radio_frame_alloc_period_r14_e_;
// member variables
radio_frame_alloc_period_r14_e_ radio_frame_alloc_period_r14;
uint8_t radio_frame_alloc_offset_r14 = 0;
fixed_bitstring<9> sf_alloc_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList-MBMS-r14 ::= SEQUENCE (SIZE (1..6)) OF PLMN-Identity
using plmn_id_list_mbms_r14_l = dyn_array<plmn_id_s>;
// SchedulingInfoList-MBMS-r14 ::= SEQUENCE (SIZE (1..32)) OF SchedulingInfo-MBMS-r14
using sched_info_list_mbms_r14_l = dyn_array<sched_info_mbms_r14_s>;
// SystemInformation-MBMS-r14 ::= SystemInformation
typedef sys_info_s sys_info_mbms_r14_s;
// SystemInformationBlockType1-MBMS-r14 ::= SEQUENCE
struct sib_type1_mbms_r14_s {
struct cell_access_related_info_r14_s_ {
plmn_id_list_mbms_r14_l plmn_id_list_r14;
fixed_bitstring<16> tac_r14;
fixed_bitstring<28> cell_id_r14;
};
struct si_win_len_r14_opts {
enum options { ms1, ms2, ms5, ms10, ms15, ms20, ms40, ms80, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<si_win_len_r14_opts> si_win_len_r14_e_;
using cell_access_related_info_list_r14_l_ = dyn_array<cell_access_related_info_r14_s>;
// member variables
bool multi_band_info_list_r14_present = false;
bool non_mbsfn_sf_cfg_r14_present = false;
bool sib_type13_r14_present = false;
bool cell_access_related_info_list_r14_present = false;
bool non_crit_ext_present = false;
cell_access_related_info_r14_s_ cell_access_related_info_r14;
uint16_t freq_band_ind_r14 = 1;
multi_band_info_list_r11_l multi_band_info_list_r14;
sched_info_list_mbms_r14_l sched_info_list_mbms_r14;
si_win_len_r14_e_ si_win_len_r14;
uint8_t sys_info_value_tag_r14 = 0;
non_mbsfn_sf_cfg_r14_s non_mbsfn_sf_cfg_r14;
pdsch_cfg_common_s pdsch_cfg_common_r14;
sib_type13_r9_s sib_type13_r14;
cell_access_related_info_list_r14_l_ cell_access_related_info_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BCCH-DL-SCH-MessageType-MBMS-r14 ::= CHOICE
struct bcch_dl_sch_msg_type_mbms_r14_c {
struct c1_c_ {
struct types_opts {
enum options { sys_info_mbms_r14, sib_type1_mbms_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
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_info_mbms_r14_s& sys_info_mbms_r14()
{
assert_choice_type("systemInformation-MBMS-r14", type_.to_string(), "c1");
return c.get<sys_info_mbms_r14_s>();
}
sib_type1_mbms_r14_s& sib_type1_mbms_r14()
{
assert_choice_type("systemInformationBlockType1-MBMS-r14", type_.to_string(), "c1");
return c.get<sib_type1_mbms_r14_s>();
}
const sys_info_mbms_r14_s& sys_info_mbms_r14() const
{
assert_choice_type("systemInformation-MBMS-r14", type_.to_string(), "c1");
return c.get<sys_info_mbms_r14_s>();
}
const sib_type1_mbms_r14_s& sib_type1_mbms_r14() const
{
assert_choice_type("systemInformationBlockType1-MBMS-r14", type_.to_string(), "c1");
return c.get<sib_type1_mbms_r14_s>();
}
sys_info_mbms_r14_s& set_sys_info_mbms_r14()
{
set(types::sys_info_mbms_r14);
return c.get<sys_info_mbms_r14_s>();
}
sib_type1_mbms_r14_s& set_sib_type1_mbms_r14()
{
set(types::sib_type1_mbms_r14);
return c.get<sib_type1_mbms_r14_s>();
}
private:
types type_;
choice_buffer_t<sib_type1_mbms_r14_s, sys_info_mbms_r14_s> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
bcch_dl_sch_msg_type_mbms_r14_c() = default;
bcch_dl_sch_msg_type_mbms_r14_c(const bcch_dl_sch_msg_type_mbms_r14_c& other);
bcch_dl_sch_msg_type_mbms_r14_c& operator=(const bcch_dl_sch_msg_type_mbms_r14_c& other);
~bcch_dl_sch_msg_type_mbms_r14_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "BCCH-DL-SCH-MessageType-MBMS-r14");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// BCCH-DL-SCH-Message-MBMS ::= SEQUENCE
struct bcch_dl_sch_msg_mbms_s {
bcch_dl_sch_msg_type_mbms_r14_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NZP-FrequencyDensity-r14 ::= ENUMERATED
struct nzp_freq_density_r14_opts {
enum options { d1, d2, d3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<nzp_freq_density_r14_opts> nzp_freq_density_r14_e;
// P-C-AndCBSR-r13 ::= SEQUENCE
struct p_c_and_cbsr_r13_s {
struct cbsr_sel_r13_c_ {
struct non_precoded_r13_s_ {
dyn_bitstring codebook_subset_restrict1_r13;
dyn_bitstring codebook_subset_restrict2_r13;
};
struct bf_k1a_r13_s_ {
dyn_bitstring codebook_subset_restrict3_r13;
};
struct bf_kn_r13_s_ {
dyn_bitstring codebook_subset_restrict_r13;
};
struct types_opts {
enum options { non_precoded_r13, bf_k1a_r13, bf_kn_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
cbsr_sel_r13_c_() = default;
cbsr_sel_r13_c_(const cbsr_sel_r13_c_& other);
cbsr_sel_r13_c_& operator=(const cbsr_sel_r13_c_& other);
~cbsr_sel_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
non_precoded_r13_s_& non_precoded_r13()
{
assert_choice_type("nonPrecoded-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<non_precoded_r13_s_>();
}
bf_k1a_r13_s_& bf_k1a_r13()
{
assert_choice_type("beamformedK1a-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<bf_k1a_r13_s_>();
}
bf_kn_r13_s_& bf_kn_r13()
{
assert_choice_type("beamformedKN-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<bf_kn_r13_s_>();
}
const non_precoded_r13_s_& non_precoded_r13() const
{
assert_choice_type("nonPrecoded-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<non_precoded_r13_s_>();
}
const bf_k1a_r13_s_& bf_k1a_r13() const
{
assert_choice_type("beamformedK1a-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<bf_k1a_r13_s_>();
}
const bf_kn_r13_s_& bf_kn_r13() const
{
assert_choice_type("beamformedKN-r13", type_.to_string(), "cbsr-Selection-r13");
return c.get<bf_kn_r13_s_>();
}
non_precoded_r13_s_& set_non_precoded_r13()
{
set(types::non_precoded_r13);
return c.get<non_precoded_r13_s_>();
}
bf_k1a_r13_s_& set_bf_k1a_r13()
{
set(types::bf_k1a_r13);
return c.get<bf_k1a_r13_s_>();
}
bf_kn_r13_s_& set_bf_kn_r13()
{
set(types::bf_kn_r13);
return c.get<bf_kn_r13_s_>();
}
private:
types type_;
choice_buffer_t<bf_k1a_r13_s_, bf_kn_r13_s_, non_precoded_r13_s_> c;
void destroy_();
};
// member variables
bool ext = false;
int8_t p_c_r13 = -8;
cbsr_sel_r13_c_ cbsr_sel_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-NZP-v1430 ::= SEQUENCE
struct csi_rs_cfg_nzp_v1430_s {
bool tx_comb_r14_present = false;
bool freq_density_r14_present = false;
uint8_t tx_comb_r14 = 0;
nzp_freq_density_r14_e freq_density_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNZP-Activation-r14 ::= SEQUENCE
struct csi_rs_cfg_nzp_activation_r14_s {
struct csi_rs_nzp_mode_r14_opts {
enum options { semi_persistent, aperiodic, nulltype } value;
std::string to_string() const;
};
typedef enumerated<csi_rs_nzp_mode_r14_opts> csi_rs_nzp_mode_r14_e_;
// member variables
csi_rs_nzp_mode_r14_e_ csi_rs_nzp_mode_r14;
uint8_t activ_res_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNZP-r11 ::= SEQUENCE
struct csi_rs_cfg_nzp_r11_s {
struct ant_ports_count_r11_opts {
enum options { an1, an2, an4, an8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ant_ports_count_r11_opts> ant_ports_count_r11_e_;
struct qcl_crs_info_r11_s_ {
struct crs_ports_count_r11_opts {
enum options { n1, n2, n4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_ports_count_r11_opts> crs_ports_count_r11_e_;
struct mbsfn_sf_cfg_list_r11_c_ {
struct setup_s_ {
mbsfn_sf_cfg_list_l sf_cfg_list;
};
typedef setup_e types;
// choice methods
mbsfn_sf_cfg_list_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool mbsfn_sf_cfg_list_r11_present = false;
uint16_t qcl_scrambling_id_r11 = 0;
crs_ports_count_r11_e_ crs_ports_count_r11;
mbsfn_sf_cfg_list_r11_c_ mbsfn_sf_cfg_list_r11;
};
struct mbsfn_sf_cfg_list_v1430_c_ {
struct setup_s_ {
mbsfn_sf_cfg_list_v1430_l sf_cfg_list_v1430;
};
typedef setup_e types;
// choice methods
mbsfn_sf_cfg_list_v1430_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool qcl_crs_info_r11_present = false;
uint8_t csi_rs_cfg_nzp_id_r11 = 1;
ant_ports_count_r11_e_ ant_ports_count_r11;
uint8_t res_cfg_r11 = 0;
uint8_t sf_cfg_r11 = 0;
uint16_t scrambling_id_r11 = 0;
qcl_crs_info_r11_s_ qcl_crs_info_r11;
// ...
// group 0
bool csi_rs_cfg_nzp_id_v1310_present = false;
uint8_t csi_rs_cfg_nzp_id_v1310 = 4;
// group 1
bool tx_comb_r14_present = false;
bool freq_density_r14_present = false;
uint8_t tx_comb_r14 = 0;
nzp_freq_density_r14_e freq_density_r14;
// group 2
copy_ptr<mbsfn_sf_cfg_list_v1430_c_> mbsfn_sf_cfg_list_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NZP-ResourceConfig-r13 ::= SEQUENCE
struct nzp_res_cfg_r13_s {
bool ext = false;
uint8_t res_cfg_r13 = 0;
// ...
// group 0
bool tx_comb_r14_present = false;
bool freq_density_r14_present = false;
uint8_t tx_comb_r14 = 0;
nzp_freq_density_r14_e freq_density_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// P-C-AndCBSR-Pair-r13 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r13
using p_c_and_cbsr_pair_r13_l = dyn_array<p_c_and_cbsr_r13_s>;
// P-C-AndCBSR-r15 ::= SEQUENCE
struct p_c_and_cbsr_r15_s {
int8_t p_c_r15 = -8;
dyn_bitstring codebook_subset_restrict4_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigBeamformed-r14 ::= SEQUENCE
struct csi_rs_cfg_bf_r14_s {
using csi_rs_cfg_nzp_id_list_ext_r14_l_ = bounded_array<uint8_t, 7>;
using csi_im_cfg_id_list_r14_l_ = bounded_array<uint8_t, 8>;
using p_c_and_cbsr_per_res_cfg_list_r14_l_ = dyn_array<p_c_and_cbsr_pair_r13_l>;
using ace_for4_tx_per_res_cfg_list_r14_l_ = bounded_array<bool, 7>;
using csi_rs_cfg_nzp_ap_list_r14_l_ = dyn_array<csi_rs_cfg_nzp_r11_s>;
// member variables
bool csi_rs_cfg_nzp_id_list_ext_r14_present = false;
bool csi_im_cfg_id_list_r14_present = false;
bool p_c_and_cbsr_per_res_cfg_list_r14_present = false;
bool ace_for4_tx_per_res_cfg_list_r14_present = false;
bool alt_codebook_enabled_bf_r14_present = false;
bool ch_meas_restrict_r14_present = false;
bool csi_rs_cfg_nzp_ap_list_r14_present = false;
bool nzp_res_cfg_original_v1430_present = false;
bool csi_rs_nzp_activation_r14_present = false;
csi_rs_cfg_nzp_id_list_ext_r14_l_ csi_rs_cfg_nzp_id_list_ext_r14;
csi_im_cfg_id_list_r14_l_ csi_im_cfg_id_list_r14;
p_c_and_cbsr_per_res_cfg_list_r14_l_ p_c_and_cbsr_per_res_cfg_list_r14;
ace_for4_tx_per_res_cfg_list_r14_l_ ace_for4_tx_per_res_cfg_list_r14;
csi_rs_cfg_nzp_ap_list_r14_l_ csi_rs_cfg_nzp_ap_list_r14;
csi_rs_cfg_nzp_v1430_s nzp_res_cfg_original_v1430;
csi_rs_cfg_nzp_activation_r14_s csi_rs_nzp_activation_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNZP-EMIMO-r13 ::= CHOICE
struct csi_rs_cfg_nzp_emimo_r13_c {
struct setup_s_ {
using nzp_res_cfg_list_r13_l_ = dyn_array<nzp_res_cfg_r13_s>;
struct cdm_type_r13_opts {
enum options { cdm2, cdm4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cdm_type_r13_opts> cdm_type_r13_e_;
// member variables
bool cdm_type_r13_present = false;
nzp_res_cfg_list_r13_l_ nzp_res_cfg_list_r13;
cdm_type_r13_e_ cdm_type_r13;
};
typedef setup_e types;
// choice methods
csi_rs_cfg_nzp_emimo_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigNZP-EMIMO-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigNZP-EMIMO-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CSI-RS-ConfigNZP-EMIMO-v1430 ::= SEQUENCE
struct csi_rs_cfg_nzp_emimo_v1430_s {
using nzp_res_cfg_list_ext_r14_l_ = dyn_array<nzp_res_cfg_r13_s>;
// member variables
bool cdm_type_v1430_present = false;
nzp_res_cfg_list_ext_r14_l_ nzp_res_cfg_list_ext_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// P-C-AndCBSR-Pair-r15 ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r15
using p_c_and_cbsr_pair_r15_l = dyn_array<p_c_and_cbsr_r15_s>;
// CQI-ReportModeAperiodic ::= ENUMERATED
struct cqi_report_mode_aperiodic_opts {
enum options { rm12, rm20, rm22, rm30, rm31, rm32_v1250, rm10_v1310, rm11_v1310, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cqi_report_mode_aperiodic_opts> cqi_report_mode_aperiodic_e;
// CSI-RS-ConfigBeamformed-r13 ::= SEQUENCE
struct csi_rs_cfg_bf_r13_s {
using csi_rs_cfg_nzp_id_list_ext_r13_l_ = bounded_array<uint8_t, 7>;
using csi_im_cfg_id_list_r13_l_ = bounded_array<uint8_t, 8>;
using p_c_and_cbsr_per_res_cfg_list_r13_l_ = dyn_array<p_c_and_cbsr_pair_r13_l>;
using ace_for4_tx_per_res_cfg_list_r13_l_ = bounded_array<bool, 7>;
// member variables
bool csi_rs_cfg_nzp_id_list_ext_r13_present = false;
bool csi_im_cfg_id_list_r13_present = false;
bool p_c_and_cbsr_per_res_cfg_list_r13_present = false;
bool ace_for4_tx_per_res_cfg_list_r13_present = false;
bool alt_codebook_enabled_bf_r13_present = false;
bool ch_meas_restrict_r13_present = false;
csi_rs_cfg_nzp_id_list_ext_r13_l_ csi_rs_cfg_nzp_id_list_ext_r13;
csi_im_cfg_id_list_r13_l_ csi_im_cfg_id_list_r13;
p_c_and_cbsr_per_res_cfg_list_r13_l_ p_c_and_cbsr_per_res_cfg_list_r13;
ace_for4_tx_per_res_cfg_list_r13_l_ ace_for4_tx_per_res_cfg_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigBeamformed-v1430 ::= SEQUENCE
struct csi_rs_cfg_bf_v1430_s {
using csi_rs_cfg_nzp_ap_list_r14_l_ = dyn_array<csi_rs_cfg_nzp_r11_s>;
// member variables
bool csi_rs_cfg_nzp_ap_list_r14_present = false;
bool nzp_res_cfg_original_v1430_present = false;
bool csi_rs_nzp_activation_r14_present = false;
csi_rs_cfg_nzp_ap_list_r14_l_ csi_rs_cfg_nzp_ap_list_r14;
csi_rs_cfg_nzp_v1430_s nzp_res_cfg_original_v1430;
csi_rs_cfg_nzp_activation_r14_s csi_rs_nzp_activation_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigEMIMO2-r14 ::= CHOICE
struct csi_rs_cfg_emimo2_r14_c {
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo2_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csi_rs_cfg_bf_r14_s& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO2-r14");
return c;
}
const csi_rs_cfg_bf_r14_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO2-r14");
return c;
}
csi_rs_cfg_bf_r14_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
csi_rs_cfg_bf_r14_s c;
};
// CSI-RS-ConfigNonPrecoded-r13 ::= SEQUENCE
struct csi_rs_cfg_non_precoded_r13_s {
struct codebook_cfg_n1_r13_opts {
enum options { n1, n2, n3, n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n1_r13_opts> codebook_cfg_n1_r13_e_;
struct codebook_cfg_n2_r13_opts {
enum options { n1, n2, n3, n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n2_r13_opts> codebook_cfg_n2_r13_e_;
struct codebook_over_sampling_rate_cfg_o1_r13_opts {
enum options { n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_over_sampling_rate_cfg_o1_r13_opts> codebook_over_sampling_rate_cfg_o1_r13_e_;
struct codebook_over_sampling_rate_cfg_o2_r13_opts {
enum options { n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_over_sampling_rate_cfg_o2_r13_opts> codebook_over_sampling_rate_cfg_o2_r13_e_;
using csi_im_cfg_id_list_r13_l_ = bounded_array<uint8_t, 2>;
// member variables
bool p_c_and_cbsr_list_r13_present = false;
bool codebook_over_sampling_rate_cfg_o1_r13_present = false;
bool codebook_over_sampling_rate_cfg_o2_r13_present = false;
bool csi_im_cfg_id_list_r13_present = false;
bool csi_rs_cfg_nzp_emimo_r13_present = false;
p_c_and_cbsr_pair_r13_l p_c_and_cbsr_list_r13;
codebook_cfg_n1_r13_e_ codebook_cfg_n1_r13;
codebook_cfg_n2_r13_e_ codebook_cfg_n2_r13;
codebook_over_sampling_rate_cfg_o1_r13_e_ codebook_over_sampling_rate_cfg_o1_r13;
codebook_over_sampling_rate_cfg_o2_r13_e_ codebook_over_sampling_rate_cfg_o2_r13;
uint8_t codebook_cfg_r13 = 1;
csi_im_cfg_id_list_r13_l_ csi_im_cfg_id_list_r13;
csi_rs_cfg_nzp_emimo_r13_c csi_rs_cfg_nzp_emimo_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNonPrecoded-v1430 ::= SEQUENCE
struct csi_rs_cfg_non_precoded_v1430_s {
struct codebook_cfg_n1_v1430_opts {
enum options { n5, n6, n7, n10, n12, n14, n16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n1_v1430_opts> codebook_cfg_n1_v1430_e_;
struct codebook_cfg_n2_v1430_opts {
enum options { n5, n6, n7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n2_v1430_opts> codebook_cfg_n2_v1430_e_;
// member variables
bool csi_rs_cfg_nzp_emimo_v1430_present = false;
csi_rs_cfg_nzp_emimo_v1430_s csi_rs_cfg_nzp_emimo_v1430;
codebook_cfg_n1_v1430_e_ codebook_cfg_n1_v1430;
codebook_cfg_n2_v1430_e_ codebook_cfg_n2_v1430;
csi_rs_cfg_nzp_v1430_s nzp_res_cfg_tm9_original_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNonPrecoded-v1480 ::= SEQUENCE
struct csi_rs_cfg_non_precoded_v1480_s {
struct codebook_cfg_n1_v1480_opts {
enum options { n5, n6, n7, n10, n12, n14, n16, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n1_v1480_opts> codebook_cfg_n1_v1480_e_;
struct codebook_cfg_n2_r1480_opts {
enum options { n5, n6, n7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<codebook_cfg_n2_r1480_opts> codebook_cfg_n2_r1480_e_;
// member variables
bool csi_rs_cfg_nzp_emimo_v1480_present = false;
bool codebook_cfg_n1_v1480_present = false;
bool codebook_cfg_n2_r1480_present = false;
csi_rs_cfg_nzp_emimo_v1430_s csi_rs_cfg_nzp_emimo_v1480;
codebook_cfg_n1_v1480_e_ codebook_cfg_n1_v1480;
codebook_cfg_n2_r1480_e_ codebook_cfg_n2_r1480;
csi_rs_cfg_nzp_v1430_s nzp_res_cfg_tm9_original_v1480;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNonPrecoded-v1530 ::= SEQUENCE
struct csi_rs_cfg_non_precoded_v1530_s {
bool p_c_and_cbsr_list_r15_present = false;
p_c_and_cbsr_pair_r15_l p_c_and_cbsr_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// P-C-AndCBSR-r11 ::= SEQUENCE
struct p_c_and_cbsr_r11_s {
int8_t p_c_r11 = -8;
dyn_bitstring codebook_subset_restrict_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportAperiodicProc-r11 ::= SEQUENCE
struct cqi_report_aperiodic_proc_r11_s {
cqi_report_mode_aperiodic_e cqi_report_mode_aperiodic_r11;
bool trigger01_r11 = false;
bool trigger10_r11 = false;
bool trigger11_r11 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportAperiodicProc-v1310 ::= SEQUENCE
struct cqi_report_aperiodic_proc_v1310_s {
bool trigger001_r13 = false;
bool trigger010_r13 = false;
bool trigger011_r13 = false;
bool trigger100_r13 = false;
bool trigger101_r13 = false;
bool trigger110_r13 = false;
bool trigger111_r13 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportBothProc-r11 ::= SEQUENCE
struct cqi_report_both_proc_r11_s {
bool ri_ref_csi_process_id_r11_present = false;
bool pmi_ri_report_r11_present = false;
uint8_t ri_ref_csi_process_id_r11 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CRI-ReportConfig-r13 ::= CHOICE
struct cri_report_cfg_r13_c {
struct setup_s_ {
bool cri_cfg_idx2_r13_present = false;
uint16_t cri_cfg_idx_r13 = 0;
uint16_t cri_cfg_idx2_r13 = 0;
};
typedef setup_e types;
// choice methods
cri_report_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CRI-ReportConfig-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CRI-ReportConfig-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CSI-RS-ConfigEMIMO-Hybrid-r14 ::= CHOICE
struct csi_rs_cfg_emimo_hybrid_r14_c {
struct setup_s_ {
bool periodicity_offset_idx_r14_present = false;
bool emimo_type2_r14_present = false;
uint16_t periodicity_offset_idx_r14 = 0;
csi_rs_cfg_emimo2_r14_c emimo_type2_r14;
};
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo_hybrid_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-Hybrid-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-Hybrid-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CSI-RS-ConfigEMIMO-r13 ::= CHOICE
struct csi_rs_cfg_emimo_r13_c {
struct setup_c_ {
struct types_opts {
enum options { non_precoded_r13, bf_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csi_rs_cfg_non_precoded_r13_s& non_precoded_r13()
{
assert_choice_type("nonPrecoded-r13", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_r13_s>();
}
csi_rs_cfg_bf_r13_s& bf_r13()
{
assert_choice_type("beamformed-r13", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_r13_s>();
}
const csi_rs_cfg_non_precoded_r13_s& non_precoded_r13() const
{
assert_choice_type("nonPrecoded-r13", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_r13_s>();
}
const csi_rs_cfg_bf_r13_s& bf_r13() const
{
assert_choice_type("beamformed-r13", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_r13_s>();
}
csi_rs_cfg_non_precoded_r13_s& set_non_precoded_r13()
{
set(types::non_precoded_r13);
return c.get<csi_rs_cfg_non_precoded_r13_s>();
}
csi_rs_cfg_bf_r13_s& set_bf_r13()
{
set(types::bf_r13);
return c.get<csi_rs_cfg_bf_r13_s>();
}
private:
types type_;
choice_buffer_t<csi_rs_cfg_bf_r13_s, csi_rs_cfg_non_precoded_r13_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-r13");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-r13");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// CSI-RS-ConfigEMIMO-v1430 ::= CHOICE
struct csi_rs_cfg_emimo_v1430_c {
struct setup_c_ {
struct types_opts {
enum options { non_precoded_v1430, bf_v1430, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csi_rs_cfg_non_precoded_v1430_s& non_precoded_v1430()
{
assert_choice_type("nonPrecoded-v1430", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_v1430_s>();
}
csi_rs_cfg_bf_v1430_s& bf_v1430()
{
assert_choice_type("beamformed-v1430", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_v1430_s>();
}
const csi_rs_cfg_non_precoded_v1430_s& non_precoded_v1430() const
{
assert_choice_type("nonPrecoded-v1430", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_v1430_s>();
}
const csi_rs_cfg_bf_v1430_s& bf_v1430() const
{
assert_choice_type("beamformed-v1430", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_v1430_s>();
}
csi_rs_cfg_non_precoded_v1430_s& set_non_precoded_v1430()
{
set(types::non_precoded_v1430);
return c.get<csi_rs_cfg_non_precoded_v1430_s>();
}
csi_rs_cfg_bf_v1430_s& set_bf_v1430()
{
set(types::bf_v1430);
return c.get<csi_rs_cfg_bf_v1430_s>();
}
private:
types type_;
choice_buffer_t<csi_rs_cfg_bf_v1430_s, csi_rs_cfg_non_precoded_v1430_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo_v1430_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1430");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1430");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// CSI-RS-ConfigEMIMO-v1480 ::= CHOICE
struct csi_rs_cfg_emimo_v1480_c {
struct setup_c_ {
struct types_opts {
enum options { non_precoded_v1480, bf_v1480, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csi_rs_cfg_non_precoded_v1480_s& non_precoded_v1480()
{
assert_choice_type("nonPrecoded-v1480", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_v1480_s>();
}
csi_rs_cfg_bf_v1430_s& bf_v1480()
{
assert_choice_type("beamformed-v1480", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_v1430_s>();
}
const csi_rs_cfg_non_precoded_v1480_s& non_precoded_v1480() const
{
assert_choice_type("nonPrecoded-v1480", type_.to_string(), "setup");
return c.get<csi_rs_cfg_non_precoded_v1480_s>();
}
const csi_rs_cfg_bf_v1430_s& bf_v1480() const
{
assert_choice_type("beamformed-v1480", type_.to_string(), "setup");
return c.get<csi_rs_cfg_bf_v1430_s>();
}
csi_rs_cfg_non_precoded_v1480_s& set_non_precoded_v1480()
{
set(types::non_precoded_v1480);
return c.get<csi_rs_cfg_non_precoded_v1480_s>();
}
csi_rs_cfg_bf_v1430_s& set_bf_v1480()
{
set(types::bf_v1480);
return c.get<csi_rs_cfg_bf_v1430_s>();
}
private:
types type_;
choice_buffer_t<csi_rs_cfg_bf_v1430_s, csi_rs_cfg_non_precoded_v1480_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo_v1480_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1480");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1480");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// CSI-RS-ConfigEMIMO-v1530 ::= CHOICE
struct csi_rs_cfg_emimo_v1530_c {
struct setup_c_ {
struct types_opts {
enum options { non_precoded_v1530, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::non_precoded_v1530; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csi_rs_cfg_non_precoded_v1530_s& non_precoded_v1530() { return c; }
const csi_rs_cfg_non_precoded_v1530_s& non_precoded_v1530() const { return c; }
private:
csi_rs_cfg_non_precoded_v1530_s c;
};
typedef setup_e types;
// choice methods
csi_rs_cfg_emimo_v1530_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1530");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigEMIMO-v1530");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// P-C-AndCBSR-Pair-r13a ::= SEQUENCE (SIZE (1..2)) OF P-C-AndCBSR-r11
using p_c_and_cbsr_pair_r13a_l = dyn_array<p_c_and_cbsr_r11_s>;
// CQI-ReportPeriodicProcExt-r11 ::= SEQUENCE
struct cqi_report_periodic_proc_ext_r11_s {
struct cqi_format_ind_periodic_r11_c_ {
struct wideband_cqi_r11_s_ {
struct csi_report_mode_r11_opts {
enum options { submode1, submode2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_mode_r11_opts> csi_report_mode_r11_e_;
// member variables
bool csi_report_mode_r11_present = false;
csi_report_mode_r11_e_ csi_report_mode_r11;
};
struct subband_cqi_r11_s_ {
struct periodicity_factor_r11_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_r11_opts> periodicity_factor_r11_e_;
// member variables
uint8_t k = 1;
periodicity_factor_r11_e_ periodicity_factor_r11;
};
struct types_opts {
enum options { wideband_cqi_r11, subband_cqi_r11, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cqi_format_ind_periodic_r11_c_() = default;
cqi_format_ind_periodic_r11_c_(const cqi_format_ind_periodic_r11_c_& other);
cqi_format_ind_periodic_r11_c_& operator=(const cqi_format_ind_periodic_r11_c_& other);
~cqi_format_ind_periodic_r11_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wideband_cqi_r11_s_& wideband_cqi_r11()
{
assert_choice_type("widebandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11");
return c.get<wideband_cqi_r11_s_>();
}
subband_cqi_r11_s_& subband_cqi_r11()
{
assert_choice_type("subbandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11");
return c.get<subband_cqi_r11_s_>();
}
const wideband_cqi_r11_s_& wideband_cqi_r11() const
{
assert_choice_type("widebandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11");
return c.get<wideband_cqi_r11_s_>();
}
const subband_cqi_r11_s_& subband_cqi_r11() const
{
assert_choice_type("subbandCQI-r11", type_.to_string(), "cqi-FormatIndicatorPeriodic-r11");
return c.get<subband_cqi_r11_s_>();
}
wideband_cqi_r11_s_& set_wideband_cqi_r11()
{
set(types::wideband_cqi_r11);
return c.get<wideband_cqi_r11_s_>();
}
subband_cqi_r11_s_& set_subband_cqi_r11()
{
set(types::subband_cqi_r11);
return c.get<subband_cqi_r11_s_>();
}
private:
types type_;
choice_buffer_t<subband_cqi_r11_s_, wideband_cqi_r11_s_> c;
void destroy_();
};
struct csi_cfg_idx_r11_c_ {
struct setup_s_ {
bool ri_cfg_idx2_r11_present = false;
uint16_t cqi_pmi_cfg_idx2_r11 = 0;
uint16_t ri_cfg_idx2_r11 = 0;
};
typedef setup_e types;
// choice methods
csi_cfg_idx_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct periodicity_factor_wb_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_wb_r13_opts> periodicity_factor_wb_r13_e_;
// member variables
bool ext = false;
bool ri_cfg_idx_r11_present = false;
bool csi_cfg_idx_r11_present = false;
uint8_t cqi_report_periodic_proc_ext_id_r11 = 1;
uint16_t cqi_pmi_cfg_idx_r11 = 0;
cqi_format_ind_periodic_r11_c_ cqi_format_ind_periodic_r11;
uint16_t ri_cfg_idx_r11 = 0;
csi_cfg_idx_r11_c_ csi_cfg_idx_r11;
// ...
// group 0
copy_ptr<cri_report_cfg_r13_c> cri_report_cfg_r13;
// group 1
bool periodicity_factor_wb_r13_present = false;
periodicity_factor_wb_r13_e_ periodicity_factor_wb_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-IM-Config-r11 ::= SEQUENCE
struct csi_im_cfg_r11_s {
bool ext = false;
uint8_t csi_im_cfg_id_r11 = 1;
uint8_t res_cfg_r11 = 0;
uint8_t sf_cfg_r11 = 0;
// ...
// group 0
bool interference_meas_restrict_r13_present = false;
bool interference_meas_restrict_r13 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-IM-ConfigExt-r12 ::= SEQUENCE
struct csi_im_cfg_ext_r12_s {
bool ext = false;
uint8_t csi_im_cfg_id_v1250 = 4;
uint8_t res_cfg_r12 = 0;
uint8_t sf_cfg_r12 = 0;
// ...
// group 0
bool interference_meas_restrict_r13_present = false;
bool csi_im_cfg_id_v1310_present = false;
bool interference_meas_restrict_r13 = false;
uint8_t csi_im_cfg_id_v1310 = 5;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-Process-r11 ::= SEQUENCE
struct csi_process_r11_s {
struct csi_im_cfg_id_list_r12_c_ {
using setup_l_ = bounded_array<uint8_t, 2>;
typedef setup_e types;
// choice methods
csi_im_cfg_id_list_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_l_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-IM-ConfigIdList-r12");
return c;
}
const setup_l_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-IM-ConfigIdList-r12");
return c;
}
setup_l_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_l_ c;
};
struct cqi_report_aperiodic_proc2_r12_c_ {
typedef setup_e types;
// choice methods
cqi_report_aperiodic_proc2_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cqi_report_aperiodic_proc_r11_s& setup()
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-r12");
return c;
}
const cqi_report_aperiodic_proc_r11_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-r12");
return c;
}
cqi_report_aperiodic_proc_r11_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
cqi_report_aperiodic_proc_r11_s c;
};
struct cqi_report_aperiodic_proc_v1310_c_ {
typedef setup_e types;
// choice methods
cqi_report_aperiodic_proc_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cqi_report_aperiodic_proc_v1310_s& setup()
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc-v1310");
return c;
}
const cqi_report_aperiodic_proc_v1310_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc-v1310");
return c;
}
cqi_report_aperiodic_proc_v1310_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
cqi_report_aperiodic_proc_v1310_s c;
};
struct cqi_report_aperiodic_proc2_v1310_c_ {
typedef setup_e types;
// choice methods
cqi_report_aperiodic_proc2_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cqi_report_aperiodic_proc_v1310_s& setup()
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-v1310");
return c;
}
const cqi_report_aperiodic_proc_v1310_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "cqi-ReportAperiodicProc2-v1310");
return c;
}
cqi_report_aperiodic_proc_v1310_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
cqi_report_aperiodic_proc_v1310_s c;
};
// member variables
bool ext = false;
bool cqi_report_both_proc_r11_present = false;
bool cqi_report_periodic_proc_id_r11_present = false;
bool cqi_report_aperiodic_proc_r11_present = false;
uint8_t csi_process_id_r11 = 1;
uint8_t csi_rs_cfg_nzp_id_r11 = 1;
uint8_t csi_im_cfg_id_r11 = 1;
p_c_and_cbsr_pair_r13a_l p_c_and_cbsr_list_r11;
cqi_report_both_proc_r11_s cqi_report_both_proc_r11;
uint8_t cqi_report_periodic_proc_id_r11 = 0;
cqi_report_aperiodic_proc_r11_s cqi_report_aperiodic_proc_r11;
// ...
// group 0
bool alt_codebook_enabled_for4_tx_proc_r12_present = false;
copy_ptr<csi_im_cfg_id_list_r12_c_> csi_im_cfg_id_list_r12;
copy_ptr<cqi_report_aperiodic_proc2_r12_c_> cqi_report_aperiodic_proc2_r12;
// group 1
copy_ptr<cqi_report_aperiodic_proc_v1310_c_> cqi_report_aperiodic_proc_v1310;
copy_ptr<cqi_report_aperiodic_proc2_v1310_c_> cqi_report_aperiodic_proc2_v1310;
copy_ptr<csi_rs_cfg_emimo_r13_c> emimo_type_r13;
// group 2
bool advanced_codebook_enabled_r14_present = false;
copy_ptr<csi_rs_cfg_emimo_v1430_c> dummy;
copy_ptr<csi_rs_cfg_emimo_hybrid_r14_c> emimo_hybrid_r14;
bool advanced_codebook_enabled_r14 = false;
// group 3
copy_ptr<csi_rs_cfg_emimo_v1480_c> emimo_type_v1480;
// group 4
bool fe_comp_csi_enabled_v1530_present = false;
bool fe_comp_csi_enabled_v1530 = false;
copy_ptr<csi_rs_cfg_emimo_v1530_c> emimo_type_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportPeriodicProcExtToAddModList-r11 ::= SEQUENCE (SIZE (1..3)) OF CQI-ReportPeriodicProcExt-r11
using cqi_report_periodic_proc_ext_to_add_mod_list_r11_l = dyn_array<cqi_report_periodic_proc_ext_r11_s>;
// CQI-ReportPeriodicProcExtToReleaseList-r11 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (1..3)
using cqi_report_periodic_proc_ext_to_release_list_r11_l = bounded_array<uint8_t, 3>;
// CSI-IM-ConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..3)) OF CSI-IM-Config-r11
using csi_im_cfg_to_add_mod_list_r11_l = dyn_array<csi_im_cfg_r11_s>;
// CSI-IM-ConfigToAddModListExt-r13 ::= SEQUENCE (SIZE (1..20)) OF CSI-IM-ConfigExt-r12
using csi_im_cfg_to_add_mod_list_ext_r13_l = dyn_array<csi_im_cfg_ext_r12_s>;
// CSI-IM-ConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (1..3)
using csi_im_cfg_to_release_list_r11_l = bounded_array<uint8_t, 3>;
// CSI-IM-ConfigToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..20)) OF INTEGER (5..24)
using csi_im_cfg_to_release_list_ext_r13_l = bounded_array<uint8_t, 20>;
// CSI-ProcessToAddModList-r11 ::= SEQUENCE (SIZE (1..4)) OF CSI-Process-r11
using csi_process_to_add_mod_list_r11_l = dyn_array<csi_process_r11_s>;
// CSI-ProcessToReleaseList-r11 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..4)
using csi_process_to_release_list_r11_l = bounded_array<uint8_t, 4>;
// DCI7-CandidatesPerAL-SPDCCH-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..6)
using dci7_candidates_per_al_spdcch_r15_l = bounded_array<uint8_t, 4>;
// N4SPUCCH-Resource-r15 ::= SEQUENCE
struct n4_spucch_res_r15_s {
uint8_t n4start_prb_r15 = 0;
uint8_t n4nof_prb_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PollByte-r14 ::= ENUMERATED
struct poll_byte_r14_opts {
enum options {
kb1,
kb2,
kb5,
kb8,
kb10,
kb15,
kb3500,
kb4000,
kb4500,
kb5000,
kb5500,
kb6000,
kb6500,
kb7000,
kb7500,
kb8000,
kb9000,
kb10000,
kb11000,
kb12000,
kb13000,
kb14000,
kb15000,
kb16000,
kb17000,
kb18000,
kb19000,
kb20000,
kb25000,
kb30000,
kb35000,
kb40000,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<poll_byte_r14_opts> poll_byte_r14_e;
// PollPDU-r15 ::= ENUMERATED
struct poll_pdu_r15_opts {
enum options {
p4,
p8,
p16,
p32,
p64,
p128,
p256,
p512,
p1024,
p2048_r15,
p4096_r15,
p6144_r15,
p8192_r15,
p12288_r15,
p16384_r15,
pinfinity,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<poll_pdu_r15_opts> poll_pdu_r15_e;
// SN-FieldLength ::= ENUMERATED
struct sn_field_len_opts {
enum options { size5, size10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sn_field_len_opts> sn_field_len_e;
// SN-FieldLength-r15 ::= ENUMERATED
struct sn_field_len_r15_opts {
enum options { size5, size10, size16_r15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sn_field_len_r15_opts> sn_field_len_r15_e;
// T-PollRetransmit ::= ENUMERATED
struct t_poll_retx_opts {
enum options {
ms5,
ms10,
ms15,
ms20,
ms25,
ms30,
ms35,
ms40,
ms45,
ms50,
ms55,
ms60,
ms65,
ms70,
ms75,
ms80,
ms85,
ms90,
ms95,
ms100,
ms105,
ms110,
ms115,
ms120,
ms125,
ms130,
ms135,
ms140,
ms145,
ms150,
ms155,
ms160,
ms165,
ms170,
ms175,
ms180,
ms185,
ms190,
ms195,
ms200,
ms205,
ms210,
ms215,
ms220,
ms225,
ms230,
ms235,
ms240,
ms245,
ms250,
ms300,
ms350,
ms400,
ms450,
ms500,
ms800_v1310,
ms1000_v1310,
ms2000_v1310,
ms4000_v1310,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t_poll_retx_opts> t_poll_retx_e;
// T-Reordering ::= ENUMERATED
struct t_reordering_opts {
enum options {
ms0,
ms5,
ms10,
ms15,
ms20,
ms25,
ms30,
ms35,
ms40,
ms45,
ms50,
ms55,
ms60,
ms65,
ms70,
ms75,
ms80,
ms85,
ms90,
ms95,
ms100,
ms110,
ms120,
ms130,
ms140,
ms150,
ms160,
ms170,
ms180,
ms190,
ms200,
ms1600_v1310,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t_reordering_opts> t_reordering_e;
// T-StatusProhibit ::= ENUMERATED
struct t_status_prohibit_opts {
enum options {
ms0,
ms5,
ms10,
ms15,
ms20,
ms25,
ms30,
ms35,
ms40,
ms45,
ms50,
ms55,
ms60,
ms65,
ms70,
ms75,
ms80,
ms85,
ms90,
ms95,
ms100,
ms105,
ms110,
ms115,
ms120,
ms125,
ms130,
ms135,
ms140,
ms145,
ms150,
ms155,
ms160,
ms165,
ms170,
ms175,
ms180,
ms185,
ms190,
ms195,
ms200,
ms205,
ms210,
ms215,
ms220,
ms225,
ms230,
ms235,
ms240,
ms245,
ms250,
ms300,
ms350,
ms400,
ms450,
ms500,
ms800_v1310,
ms1000_v1310,
ms1200_v1310,
ms1600_v1310,
ms2000_v1310,
ms2400_v1310,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t_status_prohibit_opts> t_status_prohibit_e;
// ZeroTxPowerCSI-RS-r12 ::= SEQUENCE
struct zero_tx_pwr_csi_rs_r12_s {
fixed_bitstring<16> zero_tx_pwr_res_cfg_list_r12;
uint8_t zero_tx_pwr_sf_cfg_r12 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportAperiodic-r10 ::= CHOICE
struct cqi_report_aperiodic_r10_c {
struct setup_s_ {
struct aperiodic_csi_trigger_r10_s_ {
fixed_bitstring<8> trigger1_r10;
fixed_bitstring<8> trigger2_r10;
};
// member variables
bool aperiodic_csi_trigger_r10_present = false;
cqi_report_mode_aperiodic_e cqi_report_mode_aperiodic_r10;
aperiodic_csi_trigger_r10_s_ aperiodic_csi_trigger_r10;
};
typedef setup_e types;
// choice methods
cqi_report_aperiodic_r10_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportAperiodic-v1250 ::= CHOICE
struct cqi_report_aperiodic_v1250_c {
struct setup_s_ {
struct aperiodic_csi_trigger_v1250_s_ {
struct trigger_sf_set_ind_r12_opts {
enum options { s1, s2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<trigger_sf_set_ind_r12_opts> trigger_sf_set_ind_r12_e_;
// member variables
trigger_sf_set_ind_r12_e_ trigger_sf_set_ind_r12;
fixed_bitstring<8> trigger1_sf_set_ind_r12;
fixed_bitstring<8> trigger2_sf_set_ind_r12;
};
// member variables
aperiodic_csi_trigger_v1250_s_ aperiodic_csi_trigger_v1250;
};
typedef setup_e types;
// choice methods
cqi_report_aperiodic_v1250_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1250");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1250");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportAperiodic-v1310 ::= CHOICE
struct cqi_report_aperiodic_v1310_c {
struct setup_s_ {
struct aperiodic_csi_trigger_v1310_s_ {
fixed_bitstring<32> trigger1_r13;
fixed_bitstring<32> trigger2_r13;
fixed_bitstring<32> trigger3_r13;
fixed_bitstring<32> trigger4_r13;
fixed_bitstring<32> trigger5_r13;
fixed_bitstring<32> trigger6_r13;
};
struct aperiodic_csi_trigger2_r13_c_ {
struct setup_s_ {
fixed_bitstring<32> trigger1_sf_set_ind_r13;
fixed_bitstring<32> trigger2_sf_set_ind_r13;
fixed_bitstring<32> trigger3_sf_set_ind_r13;
fixed_bitstring<32> trigger4_sf_set_ind_r13;
fixed_bitstring<32> trigger5_sf_set_ind_r13;
fixed_bitstring<32> trigger6_sf_set_ind_r13;
};
typedef setup_e types;
// choice methods
aperiodic_csi_trigger2_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "aperiodicCSI-Trigger2-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "aperiodicCSI-Trigger2-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool aperiodic_csi_trigger_v1310_present = false;
bool aperiodic_csi_trigger2_r13_present = false;
aperiodic_csi_trigger_v1310_s_ aperiodic_csi_trigger_v1310;
aperiodic_csi_trigger2_r13_c_ aperiodic_csi_trigger2_r13;
};
typedef setup_e types;
// choice methods
cqi_report_aperiodic_v1310_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1310");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportAperiodic-v1310");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportAperiodicHybrid-r14 ::= SEQUENCE
struct cqi_report_aperiodic_hybrid_r14_s {
struct triggers_r14_c_ {
struct one_bit_r14_s_ {
fixed_bitstring<8> trigger1_ind_r14;
};
struct two_bit_r14_s_ {
fixed_bitstring<8> trigger01_ind_r14;
fixed_bitstring<8> trigger10_ind_r14;
fixed_bitstring<8> trigger11_ind_r14;
};
struct three_bit_r14_s_ {
fixed_bitstring<32> trigger001_ind_r14;
fixed_bitstring<32> trigger010_ind_r14;
fixed_bitstring<32> trigger011_ind_r14;
fixed_bitstring<32> trigger100_ind_r14;
fixed_bitstring<32> trigger101_ind_r14;
fixed_bitstring<32> trigger110_ind_r14;
fixed_bitstring<32> trigger111_ind_r14;
};
struct types_opts {
enum options { one_bit_r14, two_bit_r14, three_bit_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
triggers_r14_c_() = default;
triggers_r14_c_(const triggers_r14_c_& other);
triggers_r14_c_& operator=(const triggers_r14_c_& other);
~triggers_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
one_bit_r14_s_& one_bit_r14()
{
assert_choice_type("oneBit-r14", type_.to_string(), "triggers-r14");
return c.get<one_bit_r14_s_>();
}
two_bit_r14_s_& two_bit_r14()
{
assert_choice_type("twoBit-r14", type_.to_string(), "triggers-r14");
return c.get<two_bit_r14_s_>();
}
three_bit_r14_s_& three_bit_r14()
{
assert_choice_type("threeBit-r14", type_.to_string(), "triggers-r14");
return c.get<three_bit_r14_s_>();
}
const one_bit_r14_s_& one_bit_r14() const
{
assert_choice_type("oneBit-r14", type_.to_string(), "triggers-r14");
return c.get<one_bit_r14_s_>();
}
const two_bit_r14_s_& two_bit_r14() const
{
assert_choice_type("twoBit-r14", type_.to_string(), "triggers-r14");
return c.get<two_bit_r14_s_>();
}
const three_bit_r14_s_& three_bit_r14() const
{
assert_choice_type("threeBit-r14", type_.to_string(), "triggers-r14");
return c.get<three_bit_r14_s_>();
}
one_bit_r14_s_& set_one_bit_r14()
{
set(types::one_bit_r14);
return c.get<one_bit_r14_s_>();
}
two_bit_r14_s_& set_two_bit_r14()
{
set(types::two_bit_r14);
return c.get<two_bit_r14_s_>();
}
three_bit_r14_s_& set_three_bit_r14()
{
set(types::three_bit_r14);
return c.get<three_bit_r14_s_>();
}
private:
types type_;
choice_buffer_t<one_bit_r14_s_, three_bit_r14_s_, two_bit_r14_s_> c;
void destroy_();
};
// member variables
bool triggers_r14_present = false;
triggers_r14_c_ triggers_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportBoth-r11 ::= SEQUENCE
struct cqi_report_both_r11_s {
bool csi_im_cfg_to_release_list_r11_present = false;
bool csi_im_cfg_to_add_mod_list_r11_present = false;
bool csi_process_to_release_list_r11_present = false;
bool csi_process_to_add_mod_list_r11_present = false;
csi_im_cfg_to_release_list_r11_l csi_im_cfg_to_release_list_r11;
csi_im_cfg_to_add_mod_list_r11_l csi_im_cfg_to_add_mod_list_r11;
csi_process_to_release_list_r11_l csi_process_to_release_list_r11;
csi_process_to_add_mod_list_r11_l csi_process_to_add_mod_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportBoth-v1250 ::= SEQUENCE
struct cqi_report_both_v1250_s {
bool csi_im_cfg_to_release_list_ext_r12_present = false;
bool csi_im_cfg_to_add_mod_list_ext_r12_present = false;
uint8_t csi_im_cfg_to_release_list_ext_r12 = 4;
csi_im_cfg_ext_r12_s csi_im_cfg_to_add_mod_list_ext_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportBoth-v1310 ::= SEQUENCE
struct cqi_report_both_v1310_s {
bool csi_im_cfg_to_release_list_ext_r13_present = false;
bool csi_im_cfg_to_add_mod_list_ext_r13_present = false;
csi_im_cfg_to_release_list_ext_r13_l csi_im_cfg_to_release_list_ext_r13;
csi_im_cfg_to_add_mod_list_ext_r13_l csi_im_cfg_to_add_mod_list_ext_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportPeriodic-r10 ::= CHOICE
struct cqi_report_periodic_r10_c {
struct setup_s_ {
struct cqi_format_ind_periodic_r10_c_ {
struct wideband_cqi_r10_s_ {
struct csi_report_mode_r10_opts {
enum options { submode1, submode2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_mode_r10_opts> csi_report_mode_r10_e_;
// member variables
bool csi_report_mode_r10_present = false;
csi_report_mode_r10_e_ csi_report_mode_r10;
};
struct subband_cqi_r10_s_ {
struct periodicity_factor_r10_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_r10_opts> periodicity_factor_r10_e_;
// member variables
uint8_t k = 1;
periodicity_factor_r10_e_ periodicity_factor_r10;
};
struct types_opts {
enum options { wideband_cqi_r10, subband_cqi_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cqi_format_ind_periodic_r10_c_() = default;
cqi_format_ind_periodic_r10_c_(const cqi_format_ind_periodic_r10_c_& other);
cqi_format_ind_periodic_r10_c_& operator=(const cqi_format_ind_periodic_r10_c_& other);
~cqi_format_ind_periodic_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wideband_cqi_r10_s_& wideband_cqi_r10()
{
assert_choice_type("widebandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10");
return c.get<wideband_cqi_r10_s_>();
}
subband_cqi_r10_s_& subband_cqi_r10()
{
assert_choice_type("subbandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10");
return c.get<subband_cqi_r10_s_>();
}
const wideband_cqi_r10_s_& wideband_cqi_r10() const
{
assert_choice_type("widebandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10");
return c.get<wideband_cqi_r10_s_>();
}
const subband_cqi_r10_s_& subband_cqi_r10() const
{
assert_choice_type("subbandCQI-r10", type_.to_string(), "cqi-FormatIndicatorPeriodic-r10");
return c.get<subband_cqi_r10_s_>();
}
wideband_cqi_r10_s_& set_wideband_cqi_r10()
{
set(types::wideband_cqi_r10);
return c.get<wideband_cqi_r10_s_>();
}
subband_cqi_r10_s_& set_subband_cqi_r10()
{
set(types::subband_cqi_r10);
return c.get<subband_cqi_r10_s_>();
}
private:
types type_;
choice_buffer_t<subband_cqi_r10_s_, wideband_cqi_r10_s_> c;
void destroy_();
};
struct csi_cfg_idx_r10_c_ {
struct setup_s_ {
bool ri_cfg_idx2_r10_present = false;
uint16_t cqi_pmi_cfg_idx2_r10 = 0;
uint16_t ri_cfg_idx2_r10 = 0;
};
typedef setup_e types;
// choice methods
csi_cfg_idx_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-ConfigIndex-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool cqi_pucch_res_idx_p1_r10_present = false;
bool ri_cfg_idx_present = false;
bool cqi_mask_r9_present = false;
bool csi_cfg_idx_r10_present = false;
uint16_t cqi_pucch_res_idx_r10 = 0;
uint16_t cqi_pucch_res_idx_p1_r10 = 0;
uint16_t cqi_pmi_cfg_idx = 0;
cqi_format_ind_periodic_r10_c_ cqi_format_ind_periodic_r10;
uint16_t ri_cfg_idx = 0;
bool simul_ack_nack_and_cqi = false;
csi_cfg_idx_r10_c_ csi_cfg_idx_r10;
};
typedef setup_e types;
// choice methods
cqi_report_periodic_r10_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportPeriodic-v1130 ::= SEQUENCE
struct cqi_report_periodic_v1130_s {
bool simul_ack_nack_and_cqi_format3_r11_present = false;
bool cqi_report_periodic_proc_ext_to_release_list_r11_present = false;
bool cqi_report_periodic_proc_ext_to_add_mod_list_r11_present = false;
cqi_report_periodic_proc_ext_to_release_list_r11_l cqi_report_periodic_proc_ext_to_release_list_r11;
cqi_report_periodic_proc_ext_to_add_mod_list_r11_l cqi_report_periodic_proc_ext_to_add_mod_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportPeriodic-v1310 ::= SEQUENCE
struct cqi_report_periodic_v1310_s {
bool cri_report_cfg_r13_present = false;
bool simul_ack_nack_and_cqi_format4_format5_r13_present = false;
cri_report_cfg_r13_c cri_report_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportPeriodic-v1320 ::= SEQUENCE
struct cqi_report_periodic_v1320_s {
struct periodicity_factor_wb_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_wb_r13_opts> periodicity_factor_wb_r13_e_;
// member variables
bool periodicity_factor_wb_r13_present = false;
periodicity_factor_wb_r13_e_ periodicity_factor_wb_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-AM-RLC-r15 ::= SEQUENCE
struct dl_am_rlc_r15_s {
t_reordering_e t_reordering_r15;
t_status_prohibit_e t_status_prohibit_r15;
bool extended_rlc_li_field_r15 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-UM-RLC-r15 ::= SEQUENCE
struct dl_um_rlc_r15_s {
sn_field_len_r15_e sn_field_len_r15;
t_reordering_e t_reordering_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasSubframePattern-r10 ::= CHOICE
struct meas_sf_pattern_r10_c {
struct sf_pattern_tdd_r10_c_ {
struct types_opts {
enum options { sf_cfg1_minus5_r10, sf_cfg0_r10, sf_cfg6_r10, /*...*/ nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
sf_pattern_tdd_r10_c_() = default;
sf_pattern_tdd_r10_c_(const sf_pattern_tdd_r10_c_& other);
sf_pattern_tdd_r10_c_& operator=(const sf_pattern_tdd_r10_c_& other);
~sf_pattern_tdd_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<20>& sf_cfg1_minus5_r10()
{
assert_choice_type("subframeConfig1-5-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<20> >();
}
fixed_bitstring<70>& sf_cfg0_r10()
{
assert_choice_type("subframeConfig0-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<70> >();
}
fixed_bitstring<60>& sf_cfg6_r10()
{
assert_choice_type("subframeConfig6-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<60> >();
}
const fixed_bitstring<20>& sf_cfg1_minus5_r10() const
{
assert_choice_type("subframeConfig1-5-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<20> >();
}
const fixed_bitstring<70>& sf_cfg0_r10() const
{
assert_choice_type("subframeConfig0-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<70> >();
}
const fixed_bitstring<60>& sf_cfg6_r10() const
{
assert_choice_type("subframeConfig6-r10", type_.to_string(), "subframePatternTDD-r10");
return c.get<fixed_bitstring<60> >();
}
fixed_bitstring<20>& set_sf_cfg1_minus5_r10()
{
set(types::sf_cfg1_minus5_r10);
return c.get<fixed_bitstring<20> >();
}
fixed_bitstring<70>& set_sf_cfg0_r10()
{
set(types::sf_cfg0_r10);
return c.get<fixed_bitstring<70> >();
}
fixed_bitstring<60>& set_sf_cfg6_r10()
{
set(types::sf_cfg6_r10);
return c.get<fixed_bitstring<60> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<70> > c;
void destroy_();
};
struct types_opts {
enum options { sf_pattern_fdd_r10, sf_pattern_tdd_r10, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
meas_sf_pattern_r10_c() = default;
meas_sf_pattern_r10_c(const meas_sf_pattern_r10_c& other);
meas_sf_pattern_r10_c& operator=(const meas_sf_pattern_r10_c& other);
~meas_sf_pattern_r10_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<40>& sf_pattern_fdd_r10()
{
assert_choice_type("subframePatternFDD-r10", type_.to_string(), "MeasSubframePattern-r10");
return c.get<fixed_bitstring<40> >();
}
sf_pattern_tdd_r10_c_& sf_pattern_tdd_r10()
{
assert_choice_type("subframePatternTDD-r10", type_.to_string(), "MeasSubframePattern-r10");
return c.get<sf_pattern_tdd_r10_c_>();
}
const fixed_bitstring<40>& sf_pattern_fdd_r10() const
{
assert_choice_type("subframePatternFDD-r10", type_.to_string(), "MeasSubframePattern-r10");
return c.get<fixed_bitstring<40> >();
}
const sf_pattern_tdd_r10_c_& sf_pattern_tdd_r10() const
{
assert_choice_type("subframePatternTDD-r10", type_.to_string(), "MeasSubframePattern-r10");
return c.get<sf_pattern_tdd_r10_c_>();
}
fixed_bitstring<40>& set_sf_pattern_fdd_r10()
{
set(types::sf_pattern_fdd_r10);
return c.get<fixed_bitstring<40> >();
}
sf_pattern_tdd_r10_c_& set_sf_pattern_tdd_r10()
{
set(types::sf_pattern_tdd_r10);
return c.get<sf_pattern_tdd_r10_c_>();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<40>, sf_pattern_tdd_r10_c_> c;
void destroy_();
};
// PollByte ::= ENUMERATED
struct poll_byte_opts {
enum options {
kb25,
kb50,
kb75,
kb100,
kb125,
kb250,
kb375,
kb500,
kb750,
kb1000,
kb1250,
kb1500,
kb2000,
kb3000,
kbinfinity,
spare1,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<poll_byte_opts> poll_byte_e;
// PollPDU ::= ENUMERATED
struct poll_pdu_opts {
enum options { p4, p8, p16, p32, p64, p128, p256, pinfinity, nulltype } value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<poll_pdu_opts> poll_pdu_e;
// SPDCCH-Elements-r15 ::= CHOICE
struct spdcch_elems_r15_c {
struct setup_s_ {
struct spdcch_set_ref_sig_r15_opts {
enum options { crs, dmrs, nulltype } value;
std::string to_string() const;
};
typedef enumerated<spdcch_set_ref_sig_r15_opts> spdcch_set_ref_sig_r15_e_;
struct tx_type_r15_opts {
enum options { localised, distributed, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tx_type_r15_opts> tx_type_r15_e_;
using dci7_candidates_per_al_pdcch_r15_l_ = bounded_array<uint8_t, 4>;
using dci7_candidate_sets_per_al_spdcch_r15_l_ = dyn_array<dci7_candidates_per_al_spdcch_r15_l>;
struct res_block_assign_r15_s_ {
uint8_t num_rb_in_freq_domain_r15 = 2;
fixed_bitstring<98> res_block_assign_r15;
};
using al_start_point_spdcch_r15_l_ = bounded_array<uint8_t, 4>;
struct sf_type_r15_opts {
enum options { mbsfn, nonmbsfn, all, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sf_type_r15_opts> sf_type_r15_e_;
struct rate_matching_mode_r15_opts {
enum options { m1, m2, m3, m4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rate_matching_mode_r15_opts> rate_matching_mode_r15_e_;
// member variables
bool ext = false;
bool spdcch_set_cfg_id_r15_present = false;
bool spdcch_set_ref_sig_r15_present = false;
bool tx_type_r15_present = false;
bool spdcch_no_of_symbols_r15_present = false;
bool dmrs_scrambling_seq_int_r15_present = false;
bool dci7_candidates_per_al_pdcch_r15_present = false;
bool dci7_candidate_sets_per_al_spdcch_r15_present = false;
bool res_block_assign_r15_present = false;
bool subslot_applicability_r15_present = false;
bool al_start_point_spdcch_r15_present = false;
bool sf_type_r15_present = false;
bool rate_matching_mode_r15_present = false;
uint8_t spdcch_set_cfg_id_r15 = 0;
spdcch_set_ref_sig_r15_e_ spdcch_set_ref_sig_r15;
tx_type_r15_e_ tx_type_r15;
uint8_t spdcch_no_of_symbols_r15 = 1;
uint16_t dmrs_scrambling_seq_int_r15 = 0;
dci7_candidates_per_al_pdcch_r15_l_ dci7_candidates_per_al_pdcch_r15;
dci7_candidate_sets_per_al_spdcch_r15_l_ dci7_candidate_sets_per_al_spdcch_r15;
res_block_assign_r15_s_ res_block_assign_r15;
fixed_bitstring<5> subslot_applicability_r15;
al_start_point_spdcch_r15_l_ al_start_point_spdcch_r15;
sf_type_r15_e_ sf_type_r15;
rate_matching_mode_r15_e_ rate_matching_mode_r15;
// ...
};
typedef setup_e types;
// choice methods
spdcch_elems_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPDCCH-Elements-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPDCCH-Elements-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SPUCCH-Elements-r15 ::= CHOICE
struct spucch_elems_r15_c {
struct setup_s_ {
using n1_subslot_spucch_an_list_r15_l_ = bounded_array<uint16_t, 4>;
using n4_spucch_slot_res_r15_l_ = dyn_array<n4_spucch_res_r15_s>;
using n4_spucch_subslot_res_r15_l_ = dyn_array<n4_spucch_res_r15_s>;
// member variables
bool n1_subslot_spucch_an_list_r15_present = false;
bool n1_slot_spucch_fh_an_list_r15_present = false;
bool n1_slot_spucch_no_fh_an_list_r15_present = false;
bool n3_spucch_an_list_r15_present = false;
bool n4_spucch_slot_res_r15_present = false;
bool n4_spucch_subslot_res_r15_present = false;
bool n4max_coderate_slot_pucch_r15_present = false;
bool n4max_coderate_subslot_pucch_r15_present = false;
bool n4max_coderate_multi_res_slot_pucch_r15_present = false;
bool n4max_coderate_multi_res_subslot_pucch_r15_present = false;
n1_subslot_spucch_an_list_r15_l_ n1_subslot_spucch_an_list_r15;
uint16_t n1_slot_spucch_fh_an_list_r15 = 0;
uint16_t n1_slot_spucch_no_fh_an_list_r15 = 0;
uint16_t n3_spucch_an_list_r15 = 0;
n4_spucch_slot_res_r15_l_ n4_spucch_slot_res_r15;
n4_spucch_subslot_res_r15_l_ n4_spucch_subslot_res_r15;
uint8_t n4max_coderate_slot_pucch_r15 = 0;
uint8_t n4max_coderate_subslot_pucch_r15 = 0;
uint8_t n4max_coderate_multi_res_slot_pucch_r15 = 0;
uint8_t n4max_coderate_multi_res_subslot_pucch_r15 = 0;
};
typedef setup_e types;
// choice methods
spucch_elems_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Elements-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Elements-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// TPC-Index ::= CHOICE
struct tpc_idx_c {
struct types_opts {
enum options { idx_of_format3, idx_of_format3_a, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
tpc_idx_c() = default;
tpc_idx_c(const tpc_idx_c& other);
tpc_idx_c& operator=(const tpc_idx_c& other);
~tpc_idx_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& idx_of_format3()
{
assert_choice_type("indexOfFormat3", type_.to_string(), "TPC-Index");
return c.get<uint8_t>();
}
uint8_t& idx_of_format3_a()
{
assert_choice_type("indexOfFormat3A", type_.to_string(), "TPC-Index");
return c.get<uint8_t>();
}
const uint8_t& idx_of_format3() const
{
assert_choice_type("indexOfFormat3", type_.to_string(), "TPC-Index");
return c.get<uint8_t>();
}
const uint8_t& idx_of_format3_a() const
{
assert_choice_type("indexOfFormat3A", type_.to_string(), "TPC-Index");
return c.get<uint8_t>();
}
uint8_t& set_idx_of_format3()
{
set(types::idx_of_format3);
return c.get<uint8_t>();
}
uint8_t& set_idx_of_format3_a()
{
set(types::idx_of_format3_a);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// UL-AM-RLC-r15 ::= SEQUENCE
struct ul_am_rlc_r15_s {
struct max_retx_thres_r15_opts {
enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_retx_thres_r15_opts> max_retx_thres_r15_e_;
// member variables
t_poll_retx_e t_poll_retx_r15;
poll_pdu_r15_e poll_pdu_r15;
poll_byte_r14_e poll_byte_r15;
max_retx_thres_r15_e_ max_retx_thres_r15;
bool extended_rlc_li_field_r15 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-UM-RLC ::= SEQUENCE
struct ul_um_rlc_s {
sn_field_len_e sn_field_len;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ZeroTxPowerCSI-RS-Conf-r12 ::= CHOICE
struct zero_tx_pwr_csi_rs_conf_r12_c {
typedef setup_e types;
// choice methods
zero_tx_pwr_csi_rs_conf_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
zero_tx_pwr_csi_rs_r12_s& setup()
{
assert_choice_type("setup", type_.to_string(), "ZeroTxPowerCSI-RS-Conf-r12");
return c;
}
const zero_tx_pwr_csi_rs_r12_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "ZeroTxPowerCSI-RS-Conf-r12");
return c;
}
zero_tx_pwr_csi_rs_r12_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
zero_tx_pwr_csi_rs_r12_s c;
};
// CQI-ReportConfig-r10 ::= SEQUENCE
struct cqi_report_cfg_r10_s {
struct csi_sf_pattern_cfg_r10_c_ {
struct setup_s_ {
meas_sf_pattern_r10_c csi_meas_sf_set1_r10;
meas_sf_pattern_r10_c csi_meas_sf_set2_r10;
};
typedef setup_e types;
// choice methods
csi_sf_pattern_cfg_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool cqi_report_aperiodic_r10_present = false;
bool cqi_report_periodic_r10_present = false;
bool pmi_ri_report_r9_present = false;
bool csi_sf_pattern_cfg_r10_present = false;
cqi_report_aperiodic_r10_c cqi_report_aperiodic_r10;
int8_t nom_pdsch_rs_epre_offset = -1;
cqi_report_periodic_r10_c cqi_report_periodic_r10;
csi_sf_pattern_cfg_r10_c_ csi_sf_pattern_cfg_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1130 ::= SEQUENCE
struct cqi_report_cfg_v1130_s {
cqi_report_periodic_v1130_s cqi_report_periodic_v1130;
cqi_report_both_r11_s cqi_report_both_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1250 ::= SEQUENCE
struct cqi_report_cfg_v1250_s {
struct csi_sf_pattern_cfg_r12_c_ {
struct setup_s_ {
fixed_bitstring<10> csi_meas_sf_sets_r12;
};
typedef setup_e types;
// choice methods
csi_sf_pattern_cfg_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternConfig-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct alt_cqi_table_r12_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table_r12_opts> alt_cqi_table_r12_e_;
// member variables
bool csi_sf_pattern_cfg_r12_present = false;
bool cqi_report_both_v1250_present = false;
bool cqi_report_aperiodic_v1250_present = false;
bool alt_cqi_table_r12_present = false;
csi_sf_pattern_cfg_r12_c_ csi_sf_pattern_cfg_r12;
cqi_report_both_v1250_s cqi_report_both_v1250;
cqi_report_aperiodic_v1250_c cqi_report_aperiodic_v1250;
alt_cqi_table_r12_e_ alt_cqi_table_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1310 ::= SEQUENCE
struct cqi_report_cfg_v1310_s {
bool cqi_report_both_v1310_present = false;
bool cqi_report_aperiodic_v1310_present = false;
bool cqi_report_periodic_v1310_present = false;
cqi_report_both_v1310_s cqi_report_both_v1310;
cqi_report_aperiodic_v1310_c cqi_report_aperiodic_v1310;
cqi_report_periodic_v1310_s cqi_report_periodic_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1320 ::= SEQUENCE
struct cqi_report_cfg_v1320_s {
bool cqi_report_periodic_v1320_present = false;
cqi_report_periodic_v1320_s cqi_report_periodic_v1320;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1430 ::= SEQUENCE
struct cqi_report_cfg_v1430_s {
bool cqi_report_aperiodic_hybrid_r14_present = false;
cqi_report_aperiodic_hybrid_r14_s cqi_report_aperiodic_hybrid_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-r10 ::= SEQUENCE
struct csi_rs_cfg_r10_s {
struct csi_rs_r10_c_ {
struct setup_s_ {
struct ant_ports_count_r10_opts {
enum options { an1, an2, an4, an8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ant_ports_count_r10_opts> ant_ports_count_r10_e_;
// member variables
ant_ports_count_r10_e_ ant_ports_count_r10;
uint8_t res_cfg_r10 = 0;
uint8_t sf_cfg_r10 = 0;
int8_t p_c_r10 = -8;
};
typedef setup_e types;
// choice methods
csi_rs_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-RS-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-RS-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool csi_rs_r10_present = false;
bool zero_tx_pwr_csi_rs_r10_present = false;
csi_rs_r10_c_ csi_rs_r10;
zero_tx_pwr_csi_rs_conf_r12_c zero_tx_pwr_csi_rs_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-v1250 ::= SEQUENCE
struct csi_rs_cfg_v1250_s {
struct ds_zero_tx_pwr_csi_rs_r12_c_ {
struct setup_s_ {
using zero_tx_pwr_csi_rs_list_r12_l_ = dyn_array<zero_tx_pwr_csi_rs_r12_s>;
// member variables
zero_tx_pwr_csi_rs_list_r12_l_ zero_tx_pwr_csi_rs_list_r12;
};
typedef setup_e types;
// choice methods
ds_zero_tx_pwr_csi_rs_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ds-ZeroTxPowerCSI-RS-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ds-ZeroTxPowerCSI-RS-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool zero_tx_pwr_csi_rs2_r12_present = false;
bool ds_zero_tx_pwr_csi_rs_r12_present = false;
zero_tx_pwr_csi_rs_conf_r12_c zero_tx_pwr_csi_rs2_r12;
ds_zero_tx_pwr_csi_rs_r12_c_ ds_zero_tx_pwr_csi_rs_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-v1310 ::= SEQUENCE
struct csi_rs_cfg_v1310_s {
bool emimo_type_r13_present = false;
csi_rs_cfg_emimo_r13_c emimo_type_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-v1430 ::= SEQUENCE
struct csi_rs_cfg_v1430_s {
bool dummy_present = false;
bool emimo_hybrid_r14_present = false;
bool advanced_codebook_enabled_r14_present = false;
csi_rs_cfg_emimo_v1430_c dummy;
csi_rs_cfg_emimo_hybrid_r14_c emimo_hybrid_r14;
bool advanced_codebook_enabled_r14 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigZP-r11 ::= SEQUENCE
struct csi_rs_cfg_zp_r11_s {
bool ext = false;
uint8_t csi_rs_cfg_zp_id_r11 = 1;
fixed_bitstring<16> res_cfg_list_r11;
uint8_t sf_cfg_r11 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-AM-RLC ::= SEQUENCE
struct dl_am_rlc_s {
t_reordering_e t_reordering;
t_status_prohibit_e t_status_prohibit;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-UM-RLC ::= SEQUENCE
struct dl_um_rlc_s {
sn_field_len_e sn_field_len;
t_reordering_e t_reordering;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DeltaTxD-OffsetListSPUCCH-r15 ::= SEQUENCE
struct delta_tx_d_offset_list_spucch_r15_s {
struct delta_tx_d_offset_spucch_format1_r15_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_spucch_format1_r15_opts> delta_tx_d_offset_spucch_format1_r15_e_;
struct delta_tx_d_offset_spucch_format1a_r15_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_spucch_format1a_r15_opts> delta_tx_d_offset_spucch_format1a_r15_e_;
struct delta_tx_d_offset_spucch_format1b_r15_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_spucch_format1b_r15_opts> delta_tx_d_offset_spucch_format1b_r15_e_;
struct delta_tx_d_offset_spucch_format3_r15_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_spucch_format3_r15_opts> delta_tx_d_offset_spucch_format3_r15_e_;
// member variables
bool ext = false;
delta_tx_d_offset_spucch_format1_r15_e_ delta_tx_d_offset_spucch_format1_r15;
delta_tx_d_offset_spucch_format1a_r15_e_ delta_tx_d_offset_spucch_format1a_r15;
delta_tx_d_offset_spucch_format1b_r15_e_ delta_tx_d_offset_spucch_format1b_r15;
delta_tx_d_offset_spucch_format3_r15_e_ delta_tx_d_offset_spucch_format3_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EPDCCH-SetConfig-r11 ::= SEQUENCE
struct epdcch_set_cfg_r11_s {
struct tx_type_r11_opts {
enum options { localised, distributed, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tx_type_r11_opts> tx_type_r11_e_;
struct res_block_assign_r11_s_ {
struct num_prb_pairs_r11_opts {
enum options { n2, n4, n8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_prb_pairs_r11_opts> num_prb_pairs_r11_e_;
// member variables
num_prb_pairs_r11_e_ num_prb_pairs_r11;
bounded_bitstring<4, 38> res_block_assign_r11;
};
struct csi_rs_cfg_zp_id2_r12_c_ {
typedef setup_e types;
// choice methods
csi_rs_cfg_zp_id2_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-RS-ConfigZPId2-r12");
return c;
}
const uint8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-RS-ConfigZPId2-r12");
return c;
}
uint8_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
uint8_t c;
};
struct num_prb_pairs_v1310_c_ {
typedef setup_e types;
// choice methods
num_prb_pairs_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
private:
types type_;
};
struct mpdcch_cfg_r13_c_ {
struct setup_s_ {
struct csi_num_repeat_ce_r13_opts {
enum options { sf1, sf2, sf4, sf8, sf16, sf32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_num_repeat_ce_r13_opts> csi_num_repeat_ce_r13_e_;
struct mpdcch_pdsch_hop_cfg_r13_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mpdcch_pdsch_hop_cfg_r13_opts> mpdcch_pdsch_hop_cfg_r13_e_;
struct mpdcch_start_sf_uess_r13_c_ {
struct fdd_r13_opts {
enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<fdd_r13_opts> fdd_r13_e_;
struct tdd_r13_opts {
enum options { v1, v2, v4, v5, v8, v10, v20, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tdd_r13_opts> tdd_r13_e_;
struct types_opts {
enum options { fdd_r13, tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mpdcch_start_sf_uess_r13_c_() = default;
mpdcch_start_sf_uess_r13_c_(const mpdcch_start_sf_uess_r13_c_& other);
mpdcch_start_sf_uess_r13_c_& operator=(const mpdcch_start_sf_uess_r13_c_& other);
~mpdcch_start_sf_uess_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fdd_r13_e_& fdd_r13()
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13");
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& tdd_r13()
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13");
return c.get<tdd_r13_e_>();
}
const fdd_r13_e_& fdd_r13() const
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13");
return c.get<fdd_r13_e_>();
}
const tdd_r13_e_& tdd_r13() const
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-StartSF-UESS-r13");
return c.get<tdd_r13_e_>();
}
fdd_r13_e_& set_fdd_r13()
{
set(types::fdd_r13);
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& set_tdd_r13()
{
set(types::tdd_r13);
return c.get<tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct mpdcch_num_repeat_r13_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mpdcch_num_repeat_r13_opts> mpdcch_num_repeat_r13_e_;
// member variables
csi_num_repeat_ce_r13_e_ csi_num_repeat_ce_r13;
mpdcch_pdsch_hop_cfg_r13_e_ mpdcch_pdsch_hop_cfg_r13;
mpdcch_start_sf_uess_r13_c_ mpdcch_start_sf_uess_r13;
mpdcch_num_repeat_r13_e_ mpdcch_num_repeat_r13;
uint8_t mpdcch_nb_r13 = 1;
};
typedef setup_e types;
// choice methods
mpdcch_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mpdcch-config-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mpdcch-config-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool re_map_qcl_cfg_id_r11_present = false;
uint8_t set_cfg_id_r11 = 0;
tx_type_r11_e_ tx_type_r11;
res_block_assign_r11_s_ res_block_assign_r11;
uint16_t dmrs_scrambling_seq_int_r11 = 0;
uint16_t pucch_res_start_offset_r11 = 0;
uint8_t re_map_qcl_cfg_id_r11 = 1;
// ...
// group 0
copy_ptr<csi_rs_cfg_zp_id2_r12_c_> csi_rs_cfg_zp_id2_r12;
// group 1
copy_ptr<num_prb_pairs_v1310_c_> num_prb_pairs_v1310;
copy_ptr<mpdcch_cfg_r13_c_> mpdcch_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Enable256QAM-r14 ::= CHOICE
struct enable256_qam_r14_c {
struct setup_c_ {
struct tpc_sf_set_cfgured_r14_s_ {
bool sf_set1_dci_format0_r14 = false;
bool sf_set1_dci_format4_r14 = false;
bool sf_set2_dci_format0_r14 = false;
bool sf_set2_dci_format4_r14 = false;
};
struct tpc_sf_set_not_cfgured_r14_s_ {
bool dci_format0_r14 = false;
bool dci_format4_r14 = false;
};
struct types_opts {
enum options { tpc_sf_set_cfgured_r14, tpc_sf_set_not_cfgured_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
tpc_sf_set_cfgured_r14_s_& tpc_sf_set_cfgured_r14()
{
assert_choice_type("tpc-SubframeSet-Configured-r14", type_.to_string(), "setup");
return c.get<tpc_sf_set_cfgured_r14_s_>();
}
tpc_sf_set_not_cfgured_r14_s_& tpc_sf_set_not_cfgured_r14()
{
assert_choice_type("tpc-SubframeSet-NotConfigured-r14", type_.to_string(), "setup");
return c.get<tpc_sf_set_not_cfgured_r14_s_>();
}
const tpc_sf_set_cfgured_r14_s_& tpc_sf_set_cfgured_r14() const
{
assert_choice_type("tpc-SubframeSet-Configured-r14", type_.to_string(), "setup");
return c.get<tpc_sf_set_cfgured_r14_s_>();
}
const tpc_sf_set_not_cfgured_r14_s_& tpc_sf_set_not_cfgured_r14() const
{
assert_choice_type("tpc-SubframeSet-NotConfigured-r14", type_.to_string(), "setup");
return c.get<tpc_sf_set_not_cfgured_r14_s_>();
}
tpc_sf_set_cfgured_r14_s_& set_tpc_sf_set_cfgured_r14()
{
set(types::tpc_sf_set_cfgured_r14);
return c.get<tpc_sf_set_cfgured_r14_s_>();
}
tpc_sf_set_not_cfgured_r14_s_& set_tpc_sf_set_not_cfgured_r14()
{
set(types::tpc_sf_set_not_cfgured_r14);
return c.get<tpc_sf_set_not_cfgured_r14_s_>();
}
private:
types type_;
choice_buffer_t<tpc_sf_set_cfgured_r14_s_, tpc_sf_set_not_cfgured_r14_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
enable256_qam_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "Enable256QAM-r14");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "Enable256QAM-r14");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// LogicalChannelConfig ::= SEQUENCE
struct lc_ch_cfg_s {
struct ul_specific_params_s_ {
struct prioritised_bit_rate_opts {
enum options {
kbps0,
kbps8,
kbps16,
kbps32,
kbps64,
kbps128,
kbps256,
infinity,
kbps512_v1020,
kbps1024_v1020,
kbps2048_v1020,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<prioritised_bit_rate_opts> prioritised_bit_rate_e_;
struct bucket_size_dur_opts {
enum options { ms50, ms100, ms150, ms300, ms500, ms1000, spare2, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<bucket_size_dur_opts> bucket_size_dur_e_;
// member variables
bool lc_ch_group_present = false;
uint8_t prio = 1;
prioritised_bit_rate_e_ prioritised_bit_rate;
bucket_size_dur_e_ bucket_size_dur;
uint8_t lc_ch_group = 0;
};
struct bit_rate_query_prohibit_timer_r14_opts {
enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<bit_rate_query_prohibit_timer_r14_opts> bit_rate_query_prohibit_timer_r14_e_;
struct allowed_tti_lens_r15_c_ {
struct setup_s_ {
bool short_tti_r15 = false;
bool sf_tti_r15 = false;
};
typedef setup_e types;
// choice methods
allowed_tti_lens_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "allowedTTI-Lengths-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "allowedTTI-Lengths-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct lc_ch_sr_restrict_r15_c_ {
struct setup_opts {
enum options { spucch, pucch, nulltype } value;
std::string to_string() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
lc_ch_sr_restrict_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Restriction-r15");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Restriction-r15");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
struct chl_access_prio_r15_c_ {
typedef setup_e types;
// choice methods
chl_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "channellAccessPriority-r15");
return c;
}
const uint8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "channellAccessPriority-r15");
return c;
}
uint8_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
uint8_t c;
};
// member variables
bool ext = false;
bool ul_specific_params_present = false;
ul_specific_params_s_ ul_specific_params;
// ...
// group 0
bool lc_ch_sr_mask_r9_present = false;
// group 1
bool lc_ch_sr_prohibit_r12_present = false;
bool lc_ch_sr_prohibit_r12 = false;
// group 2
bool laa_ul_allowed_r14_present = false;
bool bit_rate_query_prohibit_timer_r14_present = false;
bool laa_ul_allowed_r14 = false;
bit_rate_query_prohibit_timer_r14_e_ bit_rate_query_prohibit_timer_r14;
// group 3
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;
fixed_bitstring<32> lch_cell_restrict_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// P-a ::= ENUMERATED
struct p_a_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_opts> p_a_e;
// PDSCH-RE-MappingQCL-Config-r11 ::= SEQUENCE
struct pdsch_re_map_qcl_cfg_r11_s {
struct optional_set_of_fields_r11_s_ {
struct crs_ports_count_r11_opts {
enum options { n1, n2, n4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_ports_count_r11_opts> crs_ports_count_r11_e_;
struct mbsfn_sf_cfg_list_r11_c_ {
struct setup_s_ {
mbsfn_sf_cfg_list_l sf_cfg_list;
};
typedef setup_e types;
// choice methods
mbsfn_sf_cfg_list_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct pdsch_start_r11_opts {
enum options { reserved, n1, n2, n3, n4, assigned, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdsch_start_r11_opts> pdsch_start_r11_e_;
// member variables
bool mbsfn_sf_cfg_list_r11_present = false;
crs_ports_count_r11_e_ crs_ports_count_r11;
uint8_t crs_freq_shift_r11 = 0;
mbsfn_sf_cfg_list_r11_c_ mbsfn_sf_cfg_list_r11;
pdsch_start_r11_e_ pdsch_start_r11;
};
struct mbsfn_sf_cfg_list_v1430_c_ {
struct setup_s_ {
mbsfn_sf_cfg_list_v1430_l sf_cfg_list_v1430;
};
typedef setup_e types;
// choice methods
mbsfn_sf_cfg_list_v1430_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1430");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct codeword_one_cfg_v1530_c_ {
struct setup_s_ {
struct crs_ports_count_v1530_opts {
enum options { n1, n2, n4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_ports_count_v1530_opts> crs_ports_count_v1530_e_;
struct pdsch_start_v1530_opts {
enum options { reserved, n1, n2, n3, n4, assigned, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdsch_start_v1530_opts> pdsch_start_v1530_e_;
// member variables
bool mbsfn_sf_cfg_list_v1530_present = false;
bool mbsfn_sf_cfg_list_ext_v1530_present = false;
bool qcl_csi_rs_cfg_nzp_id_v1530_present = false;
crs_ports_count_v1530_e_ crs_ports_count_v1530;
uint8_t crs_freq_shift_v1530 = 0;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list_v1530;
mbsfn_sf_cfg_list_v1430_l mbsfn_sf_cfg_list_ext_v1530;
pdsch_start_v1530_e_ pdsch_start_v1530;
uint8_t csi_rs_cfg_zp_id_v1530 = 1;
uint8_t qcl_csi_rs_cfg_nzp_id_v1530 = 1;
};
typedef setup_e types;
// choice methods
codeword_one_cfg_v1530_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "codewordOneConfig-v1530");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "codewordOneConfig-v1530");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool optional_set_of_fields_r11_present = false;
bool qcl_csi_rs_cfg_nzp_id_r11_present = false;
uint8_t pdsch_re_map_qcl_cfg_id_r11 = 1;
optional_set_of_fields_r11_s_ optional_set_of_fields_r11;
uint8_t csi_rs_cfg_zp_id_r11 = 1;
uint8_t qcl_csi_rs_cfg_nzp_id_r11 = 1;
// ...
// group 0
copy_ptr<mbsfn_sf_cfg_list_v1430_c_> mbsfn_sf_cfg_list_v1430;
// group 1
copy_ptr<codeword_one_cfg_v1530_c_> codeword_one_cfg_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PollPDU-v1310 ::= ENUMERATED
struct poll_pdu_v1310_opts {
enum options { p512, p1024, p2048, p4096, p6144, p8192, p12288, p16384, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<poll_pdu_v1310_opts> poll_pdu_v1310_e;
// RLC-Config-r15 ::= SEQUENCE
struct rlc_cfg_r15_s {
struct mode_r15_c_ {
struct am_r15_s_ {
ul_am_rlc_r15_s ul_am_rlc_r15;
dl_am_rlc_r15_s dl_am_rlc_r15;
};
struct um_bi_dir_r15_s_ {
ul_um_rlc_s ul_um_rlc_r15;
dl_um_rlc_r15_s dl_um_rlc_r15;
};
struct um_uni_dir_ul_r15_s_ {
ul_um_rlc_s ul_um_rlc_r15;
};
struct um_uni_dir_dl_r15_s_ {
dl_um_rlc_r15_s dl_um_rlc_r15;
};
struct types_opts {
enum options { am_r15, um_bi_dir_r15, um_uni_dir_ul_r15, um_uni_dir_dl_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mode_r15_c_() = default;
mode_r15_c_(const mode_r15_c_& other);
mode_r15_c_& operator=(const mode_r15_c_& other);
~mode_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
am_r15_s_& am_r15()
{
assert_choice_type("am-r15", type_.to_string(), "mode-r15");
return c.get<am_r15_s_>();
}
um_bi_dir_r15_s_& um_bi_dir_r15()
{
assert_choice_type("um-Bi-Directional-r15", type_.to_string(), "mode-r15");
return c.get<um_bi_dir_r15_s_>();
}
um_uni_dir_ul_r15_s_& um_uni_dir_ul_r15()
{
assert_choice_type("um-Uni-Directional-UL-r15", type_.to_string(), "mode-r15");
return c.get<um_uni_dir_ul_r15_s_>();
}
um_uni_dir_dl_r15_s_& um_uni_dir_dl_r15()
{
assert_choice_type("um-Uni-Directional-DL-r15", type_.to_string(), "mode-r15");
return c.get<um_uni_dir_dl_r15_s_>();
}
const am_r15_s_& am_r15() const
{
assert_choice_type("am-r15", type_.to_string(), "mode-r15");
return c.get<am_r15_s_>();
}
const um_bi_dir_r15_s_& um_bi_dir_r15() const
{
assert_choice_type("um-Bi-Directional-r15", type_.to_string(), "mode-r15");
return c.get<um_bi_dir_r15_s_>();
}
const um_uni_dir_ul_r15_s_& um_uni_dir_ul_r15() const
{
assert_choice_type("um-Uni-Directional-UL-r15", type_.to_string(), "mode-r15");
return c.get<um_uni_dir_ul_r15_s_>();
}
const um_uni_dir_dl_r15_s_& um_uni_dir_dl_r15() const
{
assert_choice_type("um-Uni-Directional-DL-r15", type_.to_string(), "mode-r15");
return c.get<um_uni_dir_dl_r15_s_>();
}
am_r15_s_& set_am_r15()
{
set(types::am_r15);
return c.get<am_r15_s_>();
}
um_bi_dir_r15_s_& set_um_bi_dir_r15()
{
set(types::um_bi_dir_r15);
return c.get<um_bi_dir_r15_s_>();
}
um_uni_dir_ul_r15_s_& set_um_uni_dir_ul_r15()
{
set(types::um_uni_dir_ul_r15);
return c.get<um_uni_dir_ul_r15_s_>();
}
um_uni_dir_dl_r15_s_& set_um_uni_dir_dl_r15()
{
set(types::um_uni_dir_dl_r15);
return c.get<um_uni_dir_dl_r15_s_>();
}
private:
types type_;
choice_buffer_t<am_r15_s_, um_bi_dir_r15_s_, um_uni_dir_dl_r15_s_, um_uni_dir_ul_r15_s_> c;
void destroy_();
};
// member variables
bool ext = false;
bool reestablish_rlc_r15_present = false;
bool rlc_out_of_order_delivery_r15_present = false;
mode_r15_c_ mode_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPDCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPDCCH-Elements-r15
using spdcch_set_r15_l = dyn_array<spdcch_elems_r15_c>;
// SPUCCH-Set-r15 ::= SEQUENCE (SIZE (1..4)) OF SPUCCH-Elements-r15
using spucch_set_r15_l = dyn_array<spucch_elems_r15_c>;
// SR-SubslotSPUCCH-ResourceList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..1319)
using sr_subslot_spucch_res_list_r15_l = bounded_array<uint16_t, 4>;
// SRS-AntennaPort ::= ENUMERATED
struct srs_ant_port_opts {
enum options { an1, an2, an4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_ant_port_opts> srs_ant_port_e;
// ShortTTI-Length-r15 ::= ENUMERATED
struct short_tti_len_r15_opts {
enum options { slot, subslot, nulltype } value;
std::string to_string() const;
};
typedef enumerated<short_tti_len_r15_opts> short_tti_len_r15_e;
// TPC-PDCCH-Config ::= CHOICE
struct tpc_pdcch_cfg_c {
struct setup_s_ {
fixed_bitstring<16> tpc_rnti;
tpc_idx_c tpc_idx;
};
typedef setup_e types;
// choice methods
tpc_pdcch_cfg_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-Config");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-Config");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// UL-AM-RLC ::= SEQUENCE
struct ul_am_rlc_s {
struct max_retx_thres_opts {
enum options { t1, t2, t3, t4, t6, t8, t16, t32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_retx_thres_opts> max_retx_thres_e_;
// member variables
t_poll_retx_e t_poll_retx;
poll_pdu_e poll_pdu;
poll_byte_e poll_byte;
max_retx_thres_e_ max_retx_thres;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicatedSTTI-r15 ::= CHOICE
struct ant_info_ded_stti_r15_c {
struct setup_s_ {
struct tx_mode_dl_mbsfn_r15_opts {
enum options { tm9, tm10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_mode_dl_mbsfn_r15_opts> tx_mode_dl_mbsfn_r15_e_;
struct tx_mode_dl_non_mbsfn_r15_opts {
enum options { tm1, tm2, tm3, tm4, tm6, tm8, tm9, tm10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_mode_dl_non_mbsfn_r15_opts> tx_mode_dl_non_mbsfn_r15_e_;
struct codebook_subset_restrict_c_ {
struct types_opts {
enum options {
n2_tx_ant_tm3_r15,
n4_tx_ant_tm3_r15,
n2_tx_ant_tm4_r15,
n4_tx_ant_tm4_r15,
n2_tx_ant_tm5_r15,
n4_tx_ant_tm5_r15,
n2_tx_ant_tm6_r15,
n4_tx_ant_tm6_r15,
n2_tx_ant_tm8_r15,
n4_tx_ant_tm8_r15,
n2_tx_ant_tm9and10_r15,
n4_tx_ant_tm9and10_r15,
n8_tx_ant_tm9and10_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
codebook_subset_restrict_c_() = default;
codebook_subset_restrict_c_(const codebook_subset_restrict_c_& other);
codebook_subset_restrict_c_& operator=(const codebook_subset_restrict_c_& other);
~codebook_subset_restrict_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<2>& n2_tx_ant_tm3_r15()
{
assert_choice_type("n2TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<4>& n4_tx_ant_tm3_r15()
{
assert_choice_type("n4TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<6>& n2_tx_ant_tm4_r15()
{
assert_choice_type("n2TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& n4_tx_ant_tm4_r15()
{
assert_choice_type("n4TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<4>& n2_tx_ant_tm5_r15()
{
assert_choice_type("n2TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& n4_tx_ant_tm5_r15()
{
assert_choice_type("n4TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<4>& n2_tx_ant_tm6_r15()
{
assert_choice_type("n2TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& n4_tx_ant_tm6_r15()
{
assert_choice_type("n4TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<6>& n2_tx_ant_tm8_r15()
{
assert_choice_type("n2TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& n4_tx_ant_tm8_r15()
{
assert_choice_type("n4TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<6>& n2_tx_ant_tm9and10_r15()
{
assert_choice_type("n2TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<96>& n4_tx_ant_tm9and10_r15()
{
assert_choice_type("n4TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<96> >();
}
fixed_bitstring<109>& n8_tx_ant_tm9and10_r15()
{
assert_choice_type("n8TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<109> >();
}
const fixed_bitstring<2>& n2_tx_ant_tm3_r15() const
{
assert_choice_type("n2TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<2> >();
}
const fixed_bitstring<4>& n4_tx_ant_tm3_r15() const
{
assert_choice_type("n4TxAntenna-tm3-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<6>& n2_tx_ant_tm4_r15() const
{
assert_choice_type("n2TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<64>& n4_tx_ant_tm4_r15() const
{
assert_choice_type("n4TxAntenna-tm4-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
const fixed_bitstring<4>& n2_tx_ant_tm5_r15() const
{
assert_choice_type("n2TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<16>& n4_tx_ant_tm5_r15() const
{
assert_choice_type("n4TxAntenna-tm5-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<4>& n2_tx_ant_tm6_r15() const
{
assert_choice_type("n2TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<16>& n4_tx_ant_tm6_r15() const
{
assert_choice_type("n4TxAntenna-tm6-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<6>& n2_tx_ant_tm8_r15() const
{
assert_choice_type("n2TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<64>& n4_tx_ant_tm8_r15() const
{
assert_choice_type("n4TxAntenna-tm8-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
const fixed_bitstring<6>& n2_tx_ant_tm9and10_r15() const
{
assert_choice_type("n2TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<96>& n4_tx_ant_tm9and10_r15() const
{
assert_choice_type("n4TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<96> >();
}
const fixed_bitstring<109>& n8_tx_ant_tm9and10_r15() const
{
assert_choice_type("n8TxAntenna-tm9and10-r15", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<109> >();
}
fixed_bitstring<2>& set_n2_tx_ant_tm3_r15()
{
set(types::n2_tx_ant_tm3_r15);
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<4>& set_n4_tx_ant_tm3_r15()
{
set(types::n4_tx_ant_tm3_r15);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<6>& set_n2_tx_ant_tm4_r15()
{
set(types::n2_tx_ant_tm4_r15);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& set_n4_tx_ant_tm4_r15()
{
set(types::n4_tx_ant_tm4_r15);
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<4>& set_n2_tx_ant_tm5_r15()
{
set(types::n2_tx_ant_tm5_r15);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& set_n4_tx_ant_tm5_r15()
{
set(types::n4_tx_ant_tm5_r15);
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<4>& set_n2_tx_ant_tm6_r15()
{
set(types::n2_tx_ant_tm6_r15);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& set_n4_tx_ant_tm6_r15()
{
set(types::n4_tx_ant_tm6_r15);
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<6>& set_n2_tx_ant_tm8_r15()
{
set(types::n2_tx_ant_tm8_r15);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& set_n4_tx_ant_tm8_r15()
{
set(types::n4_tx_ant_tm8_r15);
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<6>& set_n2_tx_ant_tm9and10_r15()
{
set(types::n2_tx_ant_tm9and10_r15);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<96>& set_n4_tx_ant_tm9and10_r15()
{
set(types::n4_tx_ant_tm9and10_r15);
return c.get<fixed_bitstring<96> >();
}
fixed_bitstring<109>& set_n8_tx_ant_tm9and10_r15()
{
set(types::n8_tx_ant_tm9and10_r15);
return c.get<fixed_bitstring<109> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<109> > c;
void destroy_();
};
struct max_layers_mimo_stti_r15_opts {
enum options { two_layers, four_layers, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_layers_mimo_stti_r15_opts> max_layers_mimo_stti_r15_e_;
// member variables
bool tx_mode_dl_mbsfn_r15_present = false;
bool tx_mode_dl_non_mbsfn_r15_present = false;
bool codebook_subset_restrict_present = false;
bool max_layers_mimo_stti_r15_present = false;
tx_mode_dl_mbsfn_r15_e_ tx_mode_dl_mbsfn_r15;
tx_mode_dl_non_mbsfn_r15_e_ tx_mode_dl_non_mbsfn_r15;
codebook_subset_restrict_c_ codebook_subset_restrict;
max_layers_mimo_stti_r15_e_ max_layers_mimo_stti_r15;
bool slot_subslot_pdsch_tx_div_minus2_layer_r15 = false;
bool slot_subslot_pdsch_tx_div_minus4_layer_r15 = false;
};
typedef setup_e types;
// choice methods
ant_info_ded_stti_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicatedSTTI-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicatedSTTI-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// AntennaInfoUL-STTI-r15 ::= SEQUENCE
struct ant_info_ul_stti_r15_s {
struct tx_mode_ul_stti_r15_opts {
enum options { tm1, tm2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_mode_ul_stti_r15_opts> tx_mode_ul_stti_r15_e_;
// member variables
bool tx_mode_ul_stti_r15_present = false;
tx_mode_ul_stti_r15_e_ tx_mode_ul_stti_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-r15 ::= CHOICE
struct cqi_report_cfg_r15_c {
struct setup_s_ {
struct alt_cqi_table_minus1024_qam_r15_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table_minus1024_qam_r15_opts> alt_cqi_table_minus1024_qam_r15_e_;
// member variables
bool cqi_report_cfg_r10_present = false;
bool cqi_report_cfg_v1130_present = false;
bool cqi_report_cfg_pcell_v1250_present = false;
bool cqi_report_cfg_v1310_present = false;
bool cqi_report_cfg_v1320_present = false;
bool cqi_report_cfg_v1430_present = false;
bool alt_cqi_table_minus1024_qam_r15_present = false;
cqi_report_cfg_r10_s cqi_report_cfg_r10;
cqi_report_cfg_v1130_s cqi_report_cfg_v1130;
cqi_report_cfg_v1250_s cqi_report_cfg_pcell_v1250;
cqi_report_cfg_v1310_s cqi_report_cfg_v1310;
cqi_report_cfg_v1320_s cqi_report_cfg_v1320;
cqi_report_cfg_v1430_s cqi_report_cfg_v1430;
alt_cqi_table_minus1024_qam_r15_e_ alt_cqi_table_minus1024_qam_r15;
};
typedef setup_e types;
// choice methods
cqi_report_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportPeriodic ::= CHOICE
struct cqi_report_periodic_c {
struct setup_s_ {
struct cqi_format_ind_periodic_c_ {
struct subband_cqi_s_ {
uint8_t k = 1;
};
struct types_opts {
enum options { wideband_cqi, subband_cqi, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cqi_format_ind_periodic_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
subband_cqi_s_& subband_cqi()
{
assert_choice_type("subbandCQI", type_.to_string(), "cqi-FormatIndicatorPeriodic");
return c;
}
const subband_cqi_s_& subband_cqi() const
{
assert_choice_type("subbandCQI", type_.to_string(), "cqi-FormatIndicatorPeriodic");
return c;
}
subband_cqi_s_& set_subband_cqi()
{
set(types::subband_cqi);
return c;
}
private:
types type_;
subband_cqi_s_ c;
};
// member variables
bool ri_cfg_idx_present = false;
uint16_t cqi_pucch_res_idx = 0;
uint16_t cqi_pmi_cfg_idx = 0;
cqi_format_ind_periodic_c_ cqi_format_ind_periodic;
uint16_t ri_cfg_idx = 0;
bool simul_ack_nack_and_cqi = false;
};
typedef setup_e types;
// choice methods
cqi_report_periodic_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodic");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CRS-AssistanceInfo-r11 ::= SEQUENCE
struct crs_assist_info_r11_s {
struct ant_ports_count_r11_opts {
enum options { an1, an2, an4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ant_ports_count_r11_opts> ant_ports_count_r11_e_;
// member variables
bool ext = false;
uint16_t pci_r11 = 0;
ant_ports_count_r11_e_ ant_ports_count_r11;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list_r11;
// ...
// group 0
copy_ptr<mbsfn_sf_cfg_list_v1430_l> mbsfn_sf_cfg_list_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CRS-AssistanceInfo-r13 ::= SEQUENCE
struct crs_assist_info_r13_s {
struct ant_ports_count_r13_opts {
enum options { an1, an2, an4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ant_ports_count_r13_opts> ant_ports_count_r13_e_;
// member variables
bool ext = false;
bool mbsfn_sf_cfg_list_r13_present = false;
uint16_t pci_r13 = 0;
ant_ports_count_r13_e_ ant_ports_count_r13;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list_r13;
// ...
// group 0
copy_ptr<mbsfn_sf_cfg_list_v1430_l> mbsfn_sf_cfg_list_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CRS-AssistanceInfo-r15 ::= SEQUENCE
struct crs_assist_info_r15_s {
bool crs_intf_mitig_enabled_minus15_present = false;
uint16_t pci_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-r15 ::= CHOICE
struct csi_rs_cfg_r15_c {
struct setup_s_ {
bool csi_rs_cfg_r10_present = false;
bool csi_rs_cfg_v1250_present = false;
bool csi_rs_cfg_v1310_present = false;
bool csi_rs_cfg_v1430_present = false;
csi_rs_cfg_r10_s csi_rs_cfg_r10;
csi_rs_cfg_v1250_s csi_rs_cfg_v1250;
csi_rs_cfg_v1310_s csi_rs_cfg_v1310;
csi_rs_cfg_v1430_s csi_rs_cfg_v1430;
};
typedef setup_e types;
// choice methods
csi_rs_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CSI-RS-ConfigNZPToAddModList-r15 ::= SEQUENCE (SIZE (1..24)) OF CSI-RS-ConfigNZP-r11
using csi_rs_cfg_nzp_to_add_mod_list_r15_l = dyn_array<csi_rs_cfg_nzp_r11_s>;
// CSI-RS-ConfigNZPToReleaseList-r15 ::= SEQUENCE (SIZE (1..24)) OF INTEGER (1..24)
using csi_rs_cfg_nzp_to_release_list_r15_l = bounded_array<uint8_t, 24>;
// CSI-RS-ConfigZP-ApList-r14 ::= CHOICE
struct csi_rs_cfg_zp_ap_list_r14_c {
using setup_l_ = dyn_array<csi_rs_cfg_zp_r11_s>;
typedef setup_e types;
// choice methods
csi_rs_cfg_zp_ap_list_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_l_& setup()
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigZP-ApList-r14");
return c;
}
const setup_l_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CSI-RS-ConfigZP-ApList-r14");
return c;
}
setup_l_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_l_ c;
};
// CSI-RS-ConfigZPToAddModList-r11 ::= SEQUENCE (SIZE (1..4)) OF CSI-RS-ConfigZP-r11
using csi_rs_cfg_zp_to_add_mod_list_r11_l = dyn_array<csi_rs_cfg_zp_r11_s>;
// CSI-RS-ConfigZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..4)
using csi_rs_cfg_zp_to_release_list_r11_l = bounded_array<uint8_t, 4>;
// DMRS-Config-r11 ::= CHOICE
struct dmrs_cfg_r11_c {
struct setup_s_ {
uint16_t scrambling_id_r11 = 0;
uint16_t scrambling_id2_r11 = 0;
};
typedef setup_e types;
// choice methods
dmrs_cfg_r11_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "DMRS-Config-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "DMRS-Config-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// DMRS-Config-v1310 ::= SEQUENCE
struct dmrs_cfg_v1310_s {
bool dmrs_table_alt_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DeltaTxD-OffsetListPUCCH-r10 ::= SEQUENCE
struct delta_tx_d_offset_list_pucch_r10_s {
struct delta_tx_d_offset_pucch_format1_r10_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_pucch_format1_r10_opts> delta_tx_d_offset_pucch_format1_r10_e_;
struct delta_tx_d_offset_pucch_format1a1b_r10_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_pucch_format1a1b_r10_opts> delta_tx_d_offset_pucch_format1a1b_r10_e_;
struct delta_tx_d_offset_pucch_format22a2b_r10_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_pucch_format22a2b_r10_opts> delta_tx_d_offset_pucch_format22a2b_r10_e_;
struct delta_tx_d_offset_pucch_format3_r10_opts {
enum options { db0, db_minus2, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_pucch_format3_r10_opts> delta_tx_d_offset_pucch_format3_r10_e_;
// member variables
bool ext = false;
delta_tx_d_offset_pucch_format1_r10_e_ delta_tx_d_offset_pucch_format1_r10;
delta_tx_d_offset_pucch_format1a1b_r10_e_ delta_tx_d_offset_pucch_format1a1b_r10;
delta_tx_d_offset_pucch_format22a2b_r10_e_ delta_tx_d_offset_pucch_format22a2b_r10;
delta_tx_d_offset_pucch_format3_r10_e_ delta_tx_d_offset_pucch_format3_r10;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DeltaTxD-OffsetListPUCCH-v1130 ::= SEQUENCE
struct delta_tx_d_offset_list_pucch_v1130_s {
struct delta_tx_d_offset_pucch_format1b_cs_r11_opts {
enum options { db0, db_minus1, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_tx_d_offset_pucch_format1b_cs_r11_opts> delta_tx_d_offset_pucch_format1b_cs_r11_e_;
// member variables
delta_tx_d_offset_pucch_format1b_cs_r11_e_ delta_tx_d_offset_pucch_format1b_cs_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EIMTA-MainConfig-r12 ::= CHOICE
struct eimta_main_cfg_r12_c {
struct setup_s_ {
struct eimta_cmd_periodicity_r12_opts {
enum options { sf10, sf20, sf40, sf80, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<eimta_cmd_periodicity_r12_opts> eimta_cmd_periodicity_r12_e_;
// member variables
fixed_bitstring<16> eimta_rnti_r12;
eimta_cmd_periodicity_r12_e_ eimta_cmd_periodicity_r12;
fixed_bitstring<10> eimta_cmd_sf_set_r12;
};
typedef setup_e types;
// choice methods
eimta_main_cfg_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfig-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfig-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// EIMTA-MainConfigServCell-r12 ::= CHOICE
struct eimta_main_cfg_serv_cell_r12_c {
struct setup_s_ {
struct eimta_harq_ref_cfg_r12_opts {
enum options { sa2, sa4, sa5, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<eimta_harq_ref_cfg_r12_opts> eimta_harq_ref_cfg_r12_e_;
struct mbsfn_sf_cfg_list_v1250_c_ {
struct setup_s_ {
mbsfn_sf_cfg_list_l sf_cfg_list_r12;
};
typedef setup_e types;
// choice methods
mbsfn_sf_cfg_list_v1250_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1250");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "mbsfn-SubframeConfigList-v1250");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
uint8_t eimta_ul_dl_cfg_idx_r12 = 1;
eimta_harq_ref_cfg_r12_e_ eimta_harq_ref_cfg_r12;
mbsfn_sf_cfg_list_v1250_c_ mbsfn_sf_cfg_list_v1250;
};
typedef setup_e types;
// choice methods
eimta_main_cfg_serv_cell_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfigServCell-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "EIMTA-MainConfigServCell-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// EPDCCH-SetConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..2)) OF EPDCCH-SetConfig-r11
using epdcch_set_cfg_to_add_mod_list_r11_l = dyn_array<epdcch_set_cfg_r11_s>;
// EPDCCH-SetConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..2)) OF INTEGER (0..1)
using epdcch_set_cfg_to_release_list_r11_l = bounded_array<uint8_t, 2>;
// Format4-resource-r13 ::= SEQUENCE
struct format4_res_r13_s {
uint8_t start_prb_format4_r13 = 0;
uint8_t nof_prb_format4_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Format5-resource-r13 ::= SEQUENCE
struct format5_res_r13_s {
uint8_t start_prb_format5_r13 = 0;
uint8_t cdm_idx_format5_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// N1PUCCH-AN-CS-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
using n1_pucch_an_cs_r10_l = bounded_array<uint16_t, 4>;
// N1PUCCH-AN-PersistentList ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
using n1_pucch_an_persistent_list_l = bounded_array<uint16_t, 4>;
// NeighCellsInfo-r12 ::= SEQUENCE
struct neigh_cells_info_r12_s {
struct crs_ports_count_r12_opts {
enum options { n1, n2, n4, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<crs_ports_count_r12_opts> crs_ports_count_r12_e_;
using p_a_list_r12_l_ = bounded_array<p_a_e, 3>;
// member variables
bool ext = false;
bool mbsfn_sf_cfg_r12_present = false;
uint16_t pci_r12 = 0;
uint8_t p_b_r12 = 0;
crs_ports_count_r12_e_ crs_ports_count_r12;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_r12;
p_a_list_r12_l_ p_a_list_r12;
fixed_bitstring<8> tx_mode_list_r12;
uint8_t res_alloc_granularity_r12 = 1;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCCH-CandidateReductionValue-r13 ::= ENUMERATED
struct pdcch_candidate_reduction_value_r13_opts {
enum options { n0, n33, n66, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdcch_candidate_reduction_value_r13_opts> pdcch_candidate_reduction_value_r13_e;
// PDCP-Config ::= SEQUENCE
struct pdcp_cfg_s {
struct discard_timer_opts {
enum options { ms50, ms100, ms150, ms300, ms500, ms750, ms1500, infinity, nulltype } value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<discard_timer_opts> discard_timer_e_;
struct rlc_am_s_ {
bool status_report_required = false;
};
struct rlc_um_s_ {
struct pdcp_sn_size_opts {
enum options { len7bits, len12bits, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdcp_sn_size_opts> pdcp_sn_size_e_;
// member variables
pdcp_sn_size_e_ pdcp_sn_size;
};
struct hdr_compress_c_ {
struct rohc_s_ {
struct profiles_s_ {
bool profile0x0001 = false;
bool profile0x0002 = false;
bool profile0x0003 = false;
bool profile0x0004 = false;
bool profile0x0006 = false;
bool profile0x0101 = false;
bool profile0x0102 = false;
bool profile0x0103 = false;
bool profile0x0104 = false;
};
// member variables
bool ext = false;
bool max_cid_present = false;
uint16_t max_cid = 1;
profiles_s_ profiles;
// ...
};
struct types_opts {
enum options { not_used, rohc, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
hdr_compress_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rohc_s_& rohc()
{
assert_choice_type("rohc", type_.to_string(), "headerCompression");
return c;
}
const rohc_s_& rohc() const
{
assert_choice_type("rohc", type_.to_string(), "headerCompression");
return c;
}
rohc_s_& set_rohc()
{
set(types::rohc);
return c;
}
private:
types type_;
rohc_s_ c;
};
struct t_reordering_r12_opts {
enum options {
ms0,
ms20,
ms40,
ms60,
ms80,
ms100,
ms120,
ms140,
ms160,
ms180,
ms200,
ms220,
ms240,
ms260,
ms280,
ms300,
ms500,
ms750,
spare14,
spare13,
spare12,
spare11,
spare10,
spare9,
spare8,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t_reordering_r12_opts> t_reordering_r12_e_;
struct ul_data_split_thres_r13_c_ {
struct setup_opts {
enum options {
b0,
b100,
b200,
b400,
b800,
b1600,
b3200,
b6400,
b12800,
b25600,
b51200,
b102400,
b204800,
b409600,
b819200,
spare1,
nulltype
} value;
typedef uint32_t number_type;
std::string to_string() const;
uint32_t to_number() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
ul_data_split_thres_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "ul-DataSplitThreshold-r13");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ul-DataSplitThreshold-r13");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
struct status_feedback_r13_c_ {
struct setup_s_ {
struct status_pdu_type_for_polling_r13_opts {
enum options { type1, type2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<status_pdu_type_for_polling_r13_opts> status_pdu_type_for_polling_r13_e_;
struct status_pdu_periodicity_type1_r13_opts {
enum options {
ms5,
ms10,
ms20,
ms30,
ms40,
ms50,
ms60,
ms70,
ms80,
ms90,
ms100,
ms150,
ms200,
ms300,
ms500,
ms1000,
ms2000,
ms5000,
ms10000,
ms20000,
ms50000,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<status_pdu_periodicity_type1_r13_opts> status_pdu_periodicity_type1_r13_e_;
struct status_pdu_periodicity_type2_r13_opts {
enum options {
ms5,
ms10,
ms20,
ms30,
ms40,
ms50,
ms60,
ms70,
ms80,
ms90,
ms100,
ms150,
ms200,
ms300,
ms500,
ms1000,
ms2000,
ms5000,
ms10000,
ms20000,
ms50000,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<status_pdu_periodicity_type2_r13_opts> status_pdu_periodicity_type2_r13_e_;
struct status_pdu_periodicity_offset_r13_opts {
enum options { ms1, ms2, ms5, ms10, ms25, ms50, ms100, ms250, ms500, ms2500, ms5000, ms25000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<status_pdu_periodicity_offset_r13_opts> status_pdu_periodicity_offset_r13_e_;
// member variables
bool status_pdu_type_for_polling_r13_present = false;
bool status_pdu_periodicity_type1_r13_present = false;
bool status_pdu_periodicity_type2_r13_present = false;
bool status_pdu_periodicity_offset_r13_present = false;
status_pdu_type_for_polling_r13_e_ status_pdu_type_for_polling_r13;
status_pdu_periodicity_type1_r13_e_ status_pdu_periodicity_type1_r13;
status_pdu_periodicity_type2_r13_e_ status_pdu_periodicity_type2_r13;
status_pdu_periodicity_offset_r13_e_ status_pdu_periodicity_offset_r13;
};
typedef setup_e types;
// choice methods
status_feedback_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "statusFeedback-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "statusFeedback-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct ul_lwa_cfg_r14_c_ {
struct setup_s_ {
struct ul_lwa_data_split_thres_r14_opts {
enum options {
b0,
b100,
b200,
b400,
b800,
b1600,
b3200,
b6400,
b12800,
b25600,
b51200,
b102400,
b204800,
b409600,
b819200,
nulltype
} value;
typedef uint32_t number_type;
std::string to_string() const;
uint32_t to_number() const;
};
typedef enumerated<ul_lwa_data_split_thres_r14_opts> ul_lwa_data_split_thres_r14_e_;
// member variables
bool ul_lwa_data_split_thres_r14_present = false;
bool ul_lwa_drb_via_wlan_r14 = false;
ul_lwa_data_split_thres_r14_e_ ul_lwa_data_split_thres_r14;
};
typedef setup_e types;
// choice methods
ul_lwa_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ul-LWA-Config-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ul-LWA-Config-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct ul_only_hdr_compress_r14_c_ {
struct rohc_r14_s_ {
struct profiles_r14_s_ {
bool profile0x0006_r14 = false;
};
// member variables
bool ext = false;
bool max_cid_r14_present = false;
uint16_t max_cid_r14 = 1;
profiles_r14_s_ profiles_r14;
// ...
};
struct types_opts {
enum options { not_used_r14, rohc_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ul_only_hdr_compress_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rohc_r14_s_& rohc_r14()
{
assert_choice_type("rohc-r14", type_.to_string(), "uplinkOnlyHeaderCompression-r14");
return c;
}
const rohc_r14_s_& rohc_r14() const
{
assert_choice_type("rohc-r14", type_.to_string(), "uplinkOnlyHeaderCompression-r14");
return c;
}
rohc_r14_s_& set_rohc_r14()
{
set(types::rohc_r14);
return c;
}
private:
types type_;
rohc_r14_s_ c;
};
struct ul_data_compress_r15_s_ {
struct buffer_size_r15_opts {
enum options { kbyte2, kbyte4, kbyte8, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<buffer_size_r15_opts> buffer_size_r15_e_;
struct dictionary_r15_opts {
enum options { sip_sdp, operator_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<dictionary_r15_opts> dictionary_r15_e_;
// member variables
bool ext = false;
bool dictionary_r15_present = false;
buffer_size_r15_e_ buffer_size_r15;
dictionary_r15_e_ dictionary_r15;
// ...
};
struct pdcp_dupl_cfg_r15_c_ {
struct setup_s_ {
struct pdcp_dupl_r15_opts {
enum options { cfgured, activ, nulltype } value;
std::string to_string() const;
};
typedef enumerated<pdcp_dupl_r15_opts> pdcp_dupl_r15_e_;
// member variables
pdcp_dupl_r15_e_ pdcp_dupl_r15;
};
typedef setup_e types;
// choice methods
pdcp_dupl_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "pdcp-DuplicationConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pdcp-DuplicationConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool discard_timer_present = false;
bool rlc_am_present = false;
bool rlc_um_present = false;
discard_timer_e_ discard_timer;
rlc_am_s_ rlc_am;
rlc_um_s_ rlc_um;
hdr_compress_c_ hdr_compress;
// ...
// group 0
bool rn_integrity_protection_r10_present = false;
// group 1
bool pdcp_sn_size_v1130_present = false;
// group 2
bool ul_data_split_drb_via_scg_r12_present = false;
bool t_reordering_r12_present = false;
bool ul_data_split_drb_via_scg_r12 = false;
t_reordering_r12_e_ t_reordering_r12;
// group 3
bool pdcp_sn_size_v1310_present = false;
copy_ptr<ul_data_split_thres_r13_c_> ul_data_split_thres_r13;
copy_ptr<status_feedback_r13_c_> status_feedback_r13;
// group 4
copy_ptr<ul_lwa_cfg_r14_c_> ul_lwa_cfg_r14;
copy_ptr<ul_only_hdr_compress_r14_c_> ul_only_hdr_compress_r14;
// group 5
copy_ptr<ul_data_compress_r15_s_> ul_data_compress_r15;
copy_ptr<pdcp_dupl_cfg_r15_c_> pdcp_dupl_cfg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1530 ::= SEQUENCE
struct pucch_cfg_ded_v1530_s {
struct codebooksize_determination_stti_r15_opts {
enum options { dai, cc, nulltype } value;
std::string to_string() const;
};
typedef enumerated<codebooksize_determination_stti_r15_opts> codebooksize_determination_stti_r15_e_;
// member variables
bool n1_pucch_an_spt_r15_present = false;
bool codebooksize_determination_stti_r15_present = false;
uint16_t n1_pucch_an_spt_r15 = 0;
codebooksize_determination_stti_r15_e_ codebooksize_determination_stti_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-Format3-Conf-r13 ::= SEQUENCE
struct pucch_format3_conf_r13_s {
using n3_pucch_an_list_r13_l_ = bounded_array<uint16_t, 4>;
struct two_ant_port_activ_pucch_format3_r13_c_ {
struct setup_s_ {
using n3_pucch_an_list_p1_r13_l_ = bounded_array<uint16_t, 4>;
// member variables
n3_pucch_an_list_p1_r13_l_ n3_pucch_an_list_p1_r13;
};
typedef setup_e types;
// choice methods
two_ant_port_activ_pucch_format3_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool n3_pucch_an_list_r13_present = false;
bool two_ant_port_activ_pucch_format3_r13_present = false;
n3_pucch_an_list_r13_l_ n3_pucch_an_list_r13;
two_ant_port_activ_pucch_format3_r13_c_ two_ant_port_activ_pucch_format3_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RE-MappingQCLConfigToAddModList-r11 ::= SEQUENCE (SIZE (1..4)) OF PDSCH-RE-MappingQCL-Config-r11
using re_map_qcl_cfg_to_add_mod_list_r11_l = dyn_array<pdsch_re_map_qcl_cfg_r11_s>;
// RE-MappingQCLConfigToReleaseList-r11 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..4)
using re_map_qcl_cfg_to_release_list_r11_l = bounded_array<uint8_t, 4>;
// RLC-BearerConfig-r15 ::= CHOICE
struct rlc_bearer_cfg_r15_c {
struct setup_s_ {
struct lc_ch_id_cfg_r15_c_ {
struct types_opts {
enum options { lc_ch_id_r15, lc_ch_id_ext_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
lc_ch_id_cfg_r15_c_() = default;
lc_ch_id_cfg_r15_c_(const lc_ch_id_cfg_r15_c_& other);
lc_ch_id_cfg_r15_c_& operator=(const lc_ch_id_cfg_r15_c_& other);
~lc_ch_id_cfg_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& lc_ch_id_r15()
{
assert_choice_type("logicalChannelIdentity-r15", type_.to_string(), "logicalChannelIdentityConfig-r15");
return c.get<uint8_t>();
}
uint8_t& lc_ch_id_ext_r15()
{
assert_choice_type("logicalChannelIdentityExt-r15", type_.to_string(), "logicalChannelIdentityConfig-r15");
return c.get<uint8_t>();
}
const uint8_t& lc_ch_id_r15() const
{
assert_choice_type("logicalChannelIdentity-r15", type_.to_string(), "logicalChannelIdentityConfig-r15");
return c.get<uint8_t>();
}
const uint8_t& lc_ch_id_ext_r15() const
{
assert_choice_type("logicalChannelIdentityExt-r15", type_.to_string(), "logicalChannelIdentityConfig-r15");
return c.get<uint8_t>();
}
uint8_t& set_lc_ch_id_r15()
{
set(types::lc_ch_id_r15);
return c.get<uint8_t>();
}
uint8_t& set_lc_ch_id_ext_r15()
{
set(types::lc_ch_id_ext_r15);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool rlc_cfg_r15_present = false;
bool lc_ch_cfg_r15_present = false;
rlc_cfg_r15_s rlc_cfg_r15;
lc_ch_id_cfg_r15_c_ lc_ch_id_cfg_r15;
lc_ch_cfg_s lc_ch_cfg_r15;
};
typedef setup_e types;
// choice methods
rlc_bearer_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLC-BearerConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLC-BearerConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RLC-Config ::= CHOICE
struct rlc_cfg_c {
struct am_s_ {
ul_am_rlc_s ul_am_rlc;
dl_am_rlc_s dl_am_rlc;
};
struct um_bi_dir_s_ {
ul_um_rlc_s ul_um_rlc;
dl_um_rlc_s dl_um_rlc;
};
struct um_uni_dir_ul_s_ {
ul_um_rlc_s ul_um_rlc;
};
struct um_uni_dir_dl_s_ {
dl_um_rlc_s dl_um_rlc;
};
struct types_opts {
enum options { am, um_bi_dir, um_uni_dir_ul, um_uni_dir_dl, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
rlc_cfg_c() = default;
rlc_cfg_c(const rlc_cfg_c& other);
rlc_cfg_c& operator=(const rlc_cfg_c& other);
~rlc_cfg_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
am_s_& am()
{
assert_choice_type("am", type_.to_string(), "RLC-Config");
return c.get<am_s_>();
}
um_bi_dir_s_& um_bi_dir()
{
assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config");
return c.get<um_bi_dir_s_>();
}
um_uni_dir_ul_s_& um_uni_dir_ul()
{
assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config");
return c.get<um_uni_dir_ul_s_>();
}
um_uni_dir_dl_s_& um_uni_dir_dl()
{
assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config");
return c.get<um_uni_dir_dl_s_>();
}
const am_s_& am() const
{
assert_choice_type("am", type_.to_string(), "RLC-Config");
return c.get<am_s_>();
}
const um_bi_dir_s_& um_bi_dir() const
{
assert_choice_type("um-Bi-Directional", type_.to_string(), "RLC-Config");
return c.get<um_bi_dir_s_>();
}
const um_uni_dir_ul_s_& um_uni_dir_ul() const
{
assert_choice_type("um-Uni-Directional-UL", type_.to_string(), "RLC-Config");
return c.get<um_uni_dir_ul_s_>();
}
const um_uni_dir_dl_s_& um_uni_dir_dl() const
{
assert_choice_type("um-Uni-Directional-DL", type_.to_string(), "RLC-Config");
return c.get<um_uni_dir_dl_s_>();
}
am_s_& set_am()
{
set(types::am);
return c.get<am_s_>();
}
um_bi_dir_s_& set_um_bi_dir()
{
set(types::um_bi_dir);
return c.get<um_bi_dir_s_>();
}
um_uni_dir_ul_s_& set_um_uni_dir_ul()
{
set(types::um_uni_dir_ul);
return c.get<um_uni_dir_ul_s_>();
}
um_uni_dir_dl_s_& set_um_uni_dir_dl()
{
set(types::um_uni_dir_dl);
return c.get<um_uni_dir_dl_s_>();
}
private:
types type_;
choice_buffer_t<am_s_, um_bi_dir_s_, um_uni_dir_dl_s_, um_uni_dir_ul_s_> c;
void destroy_();
};
// RLC-Config-v1250 ::= SEQUENCE
struct rlc_cfg_v1250_s {
bool ul_extended_rlc_li_field_r12 = false;
bool dl_extended_rlc_li_field_r12 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Config-v1310 ::= SEQUENCE
struct rlc_cfg_v1310_s {
bool poll_pdu_v1310_present = false;
bool ul_extended_rlc_am_sn_r13 = false;
bool dl_extended_rlc_am_sn_r13 = false;
poll_pdu_v1310_e poll_pdu_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Config-v1430 ::= CHOICE
struct rlc_cfg_v1430_c {
struct setup_s_ {
poll_byte_r14_e poll_byte_r14;
};
typedef setup_e types;
// choice methods
rlc_cfg_v1430_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLC-Config-v1430");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLC-Config-v1430");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RLC-Config-v1510 ::= SEQUENCE
struct rlc_cfg_v1510_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Config-v1530 ::= CHOICE
struct rlc_cfg_v1530_c {
struct setup_s_ {
};
typedef setup_e types;
// choice methods
rlc_cfg_v1530_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLC-Config-v1530");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLC-Config-v1530");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReject-v1320-IEs ::= SEQUENCE
struct rrc_conn_reject_v1320_ies_s {
bool rrc_suspend_ind_r13_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPDCCH-Config-r15 ::= CHOICE
struct spdcch_cfg_r15_c {
struct setup_s_ {
struct spdcch_l1_reuse_ind_r15_opts {
enum options { n0, n1, n2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<spdcch_l1_reuse_ind_r15_opts> spdcch_l1_reuse_ind_r15_e_;
// member variables
bool spdcch_l1_reuse_ind_r15_present = false;
bool spdcch_set_cfg_r15_present = false;
spdcch_l1_reuse_ind_r15_e_ spdcch_l1_reuse_ind_r15;
spdcch_set_r15_l spdcch_set_cfg_r15;
};
typedef setup_e types;
// choice methods
spdcch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPDCCH-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPDCCH-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SPS-ConfigSL-r14 ::= SEQUENCE
struct sps_cfg_sl_r14_s {
struct semi_persist_sched_interv_sl_r14_opts {
enum options {
sf20,
sf50,
sf100,
sf200,
sf300,
sf400,
sf500,
sf600,
sf700,
sf800,
sf900,
sf1000,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_sl_r14_opts> semi_persist_sched_interv_sl_r14_e_;
// member variables
uint8_t sps_cfg_idx_r14 = 1;
semi_persist_sched_interv_sl_r14_e_ semi_persist_sched_interv_sl_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPS-ConfigUL ::= CHOICE
struct sps_cfg_ul_c {
struct setup_s_ {
struct semi_persist_sched_interv_ul_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf320,
sf640,
sf1_v1430,
sf2_v1430,
sf3_v1430,
sf4_v1430,
sf5_v1430,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_ul_opts> semi_persist_sched_interv_ul_e_;
struct implicit_release_after_opts {
enum options { e2, e3, e4, e8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<implicit_release_after_opts> implicit_release_after_e_;
struct p0_persistent_s_ {
int8_t p0_nominal_pusch_persistent = -126;
int8_t p0_ue_pusch_persistent = -8;
};
struct p0_persistent_sf_set2_r12_c_ {
struct setup_s_ {
int8_t p0_nominal_pusch_persistent_sf_set2_r12 = -126;
int8_t p0_ue_pusch_persistent_sf_set2_r12 = -8;
};
typedef setup_e types;
// choice methods
p0_persistent_sf_set2_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct semi_persist_sched_interv_ul_v1430_opts {
enum options {
sf50,
sf100,
sf200,
sf300,
sf400,
sf500,
sf600,
sf700,
sf800,
sf900,
sf1000,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_ul_v1430_opts> semi_persist_sched_interv_ul_v1430_e_;
struct cyclic_shift_sps_r15_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_sps_r15_opts> cyclic_shift_sps_r15_e_;
struct rv_sps_ul_repeats_r15_opts {
enum options { ulrvseq1, ulrvseq2, ulrvseq3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_sps_ul_repeats_r15_opts> rv_sps_ul_repeats_r15_e_;
struct total_num_pusch_sps_ul_repeats_r15_opts {
enum options { n2, n3, n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<total_num_pusch_sps_ul_repeats_r15_opts> total_num_pusch_sps_ul_repeats_r15_e_;
// member variables
bool ext = false;
bool p0_persistent_present = false;
bool two_intervs_cfg_present = false;
semi_persist_sched_interv_ul_e_ semi_persist_sched_interv_ul;
implicit_release_after_e_ implicit_release_after;
p0_persistent_s_ p0_persistent;
// ...
// group 0
copy_ptr<p0_persistent_sf_set2_r12_c_> p0_persistent_sf_set2_r12;
// group 1
bool nof_conf_ul_sps_processes_r13_present = false;
uint8_t nof_conf_ul_sps_processes_r13 = 1;
// group 2
bool fixed_rv_non_adaptive_r14_present = false;
bool sps_cfg_idx_r14_present = false;
bool semi_persist_sched_interv_ul_v1430_present = false;
uint8_t sps_cfg_idx_r14 = 1;
semi_persist_sched_interv_ul_v1430_e_ semi_persist_sched_interv_ul_v1430;
// group 3
bool cyclic_shift_sps_r15_present = false;
bool harq_proc_id_offset_r15_present = false;
bool rv_sps_ul_repeats_r15_present = false;
bool total_num_pusch_sps_ul_repeats_r15_present = false;
bool sps_cfg_idx_r15_present = false;
cyclic_shift_sps_r15_e_ cyclic_shift_sps_r15;
uint8_t harq_proc_id_offset_r15 = 0;
rv_sps_ul_repeats_r15_e_ rv_sps_ul_repeats_r15;
copy_ptr<tpc_pdcch_cfg_c> tpc_pdcch_cfg_pusch_sps_r15;
total_num_pusch_sps_ul_repeats_r15_e_ total_num_pusch_sps_ul_repeats_r15;
uint8_t sps_cfg_idx_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
typedef setup_e types;
// choice methods
sps_cfg_ul_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SPS-ConfigUL-STTI-r15 ::= CHOICE
struct sps_cfg_ul_stti_r15_c {
struct setup_s_ {
struct semi_persist_sched_interv_ul_stti_r15_opts {
enum options {
stti1,
stti2,
stti3,
stti4,
stti6,
stti8,
stti12,
stti16,
stti20,
stti40,
stti60,
stti80,
stti120,
stti240,
spare2,
spare1,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_ul_stti_r15_opts> semi_persist_sched_interv_ul_stti_r15_e_;
struct implicit_release_after_opts {
enum options { e2, e3, e4, e8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<implicit_release_after_opts> implicit_release_after_e_;
struct p0_persistent_r15_s_ {
int8_t p0_nominal_spusch_persistent_r15 = -126;
int8_t p0_ue_spusch_persistent_r15 = -8;
};
struct p0_persistent_sf_set2_r15_c_ {
struct setup_s_ {
int8_t p0_nominal_spusch_persistent_sf_set2_r15 = -126;
int8_t p0_ue_spusch_persistent_sf_set2_r15 = -8;
};
typedef setup_e types;
// choice methods
p0_persistent_sf_set2_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "p0-PersistentSubframeSet2-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct cyclic_shift_sps_s_tti_r15_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_sps_s_tti_r15_opts> cyclic_shift_sps_s_tti_r15_e_;
struct rv_sps_stti_ul_repeats_r15_opts {
enum options { ulrvseq1, ulrvseq2, ulrvseq3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_sps_stti_ul_repeats_r15_opts> rv_sps_stti_ul_repeats_r15_e_;
struct tbs_scaling_factor_subslot_sps_ul_repeats_r15_opts {
enum options { n6, n12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tbs_scaling_factor_subslot_sps_ul_repeats_r15_opts>
tbs_scaling_factor_subslot_sps_ul_repeats_r15_e_;
struct total_num_pusch_sps_stti_ul_repeats_r15_opts {
enum options { n2, n3, n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<total_num_pusch_sps_stti_ul_repeats_r15_opts> total_num_pusch_sps_stti_ul_repeats_r15_e_;
// member variables
bool ext = false;
bool p0_persistent_r15_present = false;
bool two_intervs_cfg_r15_present = false;
bool p0_persistent_sf_set2_r15_present = false;
bool nof_conf_ul_sps_processes_stti_r15_present = false;
bool tpc_pdcch_cfg_pusch_sps_r15_present = false;
bool cyclic_shift_sps_s_tti_r15_present = false;
bool ifdma_cfg_sps_r15_present = false;
bool harq_proc_id_offset_r15_present = false;
bool rv_sps_stti_ul_repeats_r15_present = false;
bool sps_cfg_idx_r15_present = false;
bool tbs_scaling_factor_subslot_sps_ul_repeats_r15_present = false;
bool total_num_pusch_sps_stti_ul_repeats_r15_present = false;
semi_persist_sched_interv_ul_stti_r15_e_ semi_persist_sched_interv_ul_stti_r15;
implicit_release_after_e_ implicit_release_after;
p0_persistent_r15_s_ p0_persistent_r15;
p0_persistent_sf_set2_r15_c_ p0_persistent_sf_set2_r15;
uint8_t nof_conf_ul_sps_processes_stti_r15 = 1;
uint8_t stti_start_time_ul_r15 = 0;
tpc_pdcch_cfg_c tpc_pdcch_cfg_pusch_sps_r15;
cyclic_shift_sps_s_tti_r15_e_ cyclic_shift_sps_s_tti_r15;
bool ifdma_cfg_sps_r15 = false;
uint8_t harq_proc_id_offset_r15 = 0;
rv_sps_stti_ul_repeats_r15_e_ rv_sps_stti_ul_repeats_r15;
uint8_t sps_cfg_idx_r15 = 1;
tbs_scaling_factor_subslot_sps_ul_repeats_r15_e_ tbs_scaling_factor_subslot_sps_ul_repeats_r15;
total_num_pusch_sps_stti_ul_repeats_r15_e_ total_num_pusch_sps_stti_ul_repeats_r15;
// ...
};
typedef setup_e types;
// choice methods
sps_cfg_ul_stti_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL-STTI-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigUL-STTI-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SPUCCH-Config-r15 ::= CHOICE
struct spucch_cfg_r15_c {
struct setup_s_ {
struct two_ant_port_activ_spucch_format3_r15_s_ {
using n3_spucch_an_list_r15_l_ = bounded_array<uint16_t, 4>;
// member variables
n3_spucch_an_list_r15_l_ n3_spucch_an_list_r15;
};
// member variables
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;
};
typedef setup_e types;
// choice methods
spucch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPUCCH-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SRS-CC-SetIndex-r14 ::= SEQUENCE
struct srs_cc_set_idx_r14_s {
uint8_t cc_set_idx_r14 = 0;
uint8_t cc_idx_in_one_cc_set_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SRS-ConfigAp-r10 ::= SEQUENCE
struct srs_cfg_ap_r10_s {
struct srs_bw_ap_r10_opts {
enum options { bw0, bw1, bw2, bw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_bw_ap_r10_opts> srs_bw_ap_r10_e_;
struct cyclic_shift_ap_r10_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_ap_r10_opts> cyclic_shift_ap_r10_e_;
// member variables
srs_ant_port_e srs_ant_port_ap_r10;
srs_bw_ap_r10_e_ srs_bw_ap_r10;
uint8_t freq_domain_position_ap_r10 = 0;
uint8_t tx_comb_ap_r10 = 0;
cyclic_shift_ap_r10_e_ cyclic_shift_ap_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SRS-ConfigAp-r13 ::= SEQUENCE
struct srs_cfg_ap_r13_s {
struct srs_bw_ap_r13_opts {
enum options { bw0, bw1, bw2, bw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_bw_ap_r13_opts> srs_bw_ap_r13_e_;
struct cyclic_shift_ap_r13_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, cs8, cs9, cs10, cs11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_ap_r13_opts> cyclic_shift_ap_r13_e_;
struct tx_comb_num_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_comb_num_r13_opts> tx_comb_num_r13_e_;
// member variables
srs_ant_port_e srs_ant_port_ap_r13;
srs_bw_ap_r13_e_ srs_bw_ap_r13;
uint8_t freq_domain_position_ap_r13 = 0;
uint8_t tx_comb_ap_r13 = 0;
cyclic_shift_ap_r13_e_ cyclic_shift_ap_r13;
tx_comb_num_r13_e_ tx_comb_num_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SRS-ConfigAp-v1310 ::= SEQUENCE
struct srs_cfg_ap_v1310_s {
struct cyclic_shift_ap_v1310_opts {
enum options { cs8, cs9, cs10, cs11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_ap_v1310_opts> cyclic_shift_ap_v1310_e_;
struct tx_comb_num_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_comb_num_r13_opts> tx_comb_num_r13_e_;
// member variables
bool tx_comb_ap_v1310_present = false;
bool cyclic_shift_ap_v1310_present = false;
bool tx_comb_num_r13_present = false;
uint8_t tx_comb_ap_v1310 = 2;
cyclic_shift_ap_v1310_e_ cyclic_shift_ap_v1310;
tx_comb_num_r13_e_ tx_comb_num_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// STAG-ToAddMod-r11 ::= SEQUENCE
struct stag_to_add_mod_r11_s {
bool ext = false;
uint8_t stag_id_r11 = 1;
time_align_timer_e time_align_timer_stag_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SchedulingRequestConfig-v1530 ::= CHOICE
struct sched_request_cfg_v1530_c {
struct setup_s_ {
struct dssr_trans_max_r15_opts {
enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dssr_trans_max_r15_opts> dssr_trans_max_r15_e_;
// member variables
bool sr_slot_spucch_idx_fh_r15_present = false;
bool sr_slot_spucch_idx_no_fh_r15_present = false;
bool sr_subslot_spucch_res_list_r15_present = false;
bool sr_cfg_idx_slot_r15_present = false;
bool sr_cfg_idx_subslot_r15_present = false;
uint16_t sr_slot_spucch_idx_fh_r15 = 0;
uint16_t sr_slot_spucch_idx_no_fh_r15 = 0;
sr_subslot_spucch_res_list_r15_l sr_subslot_spucch_res_list_r15;
uint8_t sr_cfg_idx_slot_r15 = 0;
uint8_t sr_cfg_idx_subslot_r15 = 0;
dssr_trans_max_r15_e_ dssr_trans_max_r15;
};
typedef setup_e types;
// choice methods
sched_request_cfg_v1530_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig-v1530");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig-v1530");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// ShortTTI-r15 ::= SEQUENCE
struct short_tti_r15_s {
bool dl_stti_len_r15_present = false;
bool ul_stti_len_r15_present = false;
short_tti_len_r15_e dl_stti_len_r15;
short_tti_len_r15_e ul_stti_len_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SlotOrSubslotPDSCH-Config-r15 ::= CHOICE
struct slot_or_subslot_pdsch_cfg_r15_c {
struct setup_s_ {
struct alt_cqi_table_stti_r15_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table_stti_r15_opts> alt_cqi_table_stti_r15_e_;
struct alt_cqi_table1024_qam_stti_r15_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table1024_qam_stti_r15_opts> alt_cqi_table1024_qam_stti_r15_e_;
struct res_alloc_r15_opts {
enum options { res_alloc_type0, res_alloc_type2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<res_alloc_r15_opts> res_alloc_r15_e_;
// member variables
bool ext = false;
bool alt_cqi_table_stti_r15_present = false;
bool alt_cqi_table1024_qam_stti_r15_present = false;
bool res_alloc_r15_present = false;
bool tbs_idx_alt_stti_r15_present = false;
bool tbs_idx_alt2_stti_r15_present = false;
bool tbs_idx_alt3_stti_r15_present = false;
alt_cqi_table_stti_r15_e_ alt_cqi_table_stti_r15;
alt_cqi_table1024_qam_stti_r15_e_ alt_cqi_table1024_qam_stti_r15;
res_alloc_r15_e_ res_alloc_r15;
// ...
};
typedef setup_e types;
// choice methods
slot_or_subslot_pdsch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPDSCH-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPDSCH-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SlotOrSubslotPUSCH-Config-r15 ::= CHOICE
struct slot_or_subslot_pusch_cfg_r15_c {
struct setup_s_ {
using beta_offset_subslot_ack_idx_r15_l_ = bounded_array<uint8_t, 2>;
using beta_offset2_subslot_ack_idx_r15_l_ = bounded_array<uint8_t, 2>;
using beta_offset_subslot_ri_idx_r15_l_ = bounded_array<uint8_t, 2>;
// member variables
bool ext = false;
bool beta_offset_slot_ack_idx_r15_present = false;
bool beta_offset2_slot_ack_idx_r15_present = false;
bool beta_offset_subslot_ack_idx_r15_present = false;
bool beta_offset2_subslot_ack_idx_r15_present = false;
bool beta_offset_slot_ri_idx_r15_present = false;
bool beta_offset_subslot_ri_idx_r15_present = false;
bool beta_offset_slot_cqi_idx_r15_present = false;
bool beta_offset_subslot_cqi_idx_r15_present = false;
bool enable256_qam_slot_or_subslot_r15_present = false;
bool res_alloc_offset_r15_present = false;
uint8_t beta_offset_slot_ack_idx_r15 = 0;
uint8_t beta_offset2_slot_ack_idx_r15 = 0;
beta_offset_subslot_ack_idx_r15_l_ beta_offset_subslot_ack_idx_r15;
beta_offset2_subslot_ack_idx_r15_l_ beta_offset2_subslot_ack_idx_r15;
uint8_t beta_offset_slot_ri_idx_r15 = 0;
beta_offset_subslot_ri_idx_r15_l_ beta_offset_subslot_ri_idx_r15;
uint8_t beta_offset_slot_cqi_idx_r15 = 0;
uint8_t beta_offset_subslot_cqi_idx_r15 = 0;
enable256_qam_r14_c enable256_qam_slot_or_subslot_r15;
uint8_t res_alloc_offset_r15 = 1;
bool ul_dmrs_ifdma_slot_or_subslot_r15 = false;
// ...
};
typedef setup_e types;
// choice methods
slot_or_subslot_pusch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPUSCH-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SlotOrSubslotPUSCH-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// TDD-PUSCH-UpPTS-r14 ::= CHOICE
struct tdd_pusch_up_pts_r14_c {
struct setup_s_ {
struct sym_pusch_up_pts_r14_opts {
enum options { sym1, sym2, sym3, sym4, sym5, sym6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sym_pusch_up_pts_r14_opts> sym_pusch_up_pts_r14_e_;
// member variables
bool sym_pusch_up_pts_r14_present = false;
bool dmrs_less_up_pts_cfg_r14_present = false;
sym_pusch_up_pts_r14_e_ sym_pusch_up_pts_r14;
};
typedef setup_e types;
// choice methods
tdd_pusch_up_pts_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "TDD-PUSCH-UpPTS-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "TDD-PUSCH-UpPTS-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// UplinkPowerControlDedicatedSTTI-r15 ::= SEQUENCE
struct ul_pwr_ctrl_ded_stti_r15_s {
bool delta_tx_d_offset_list_spucch_r15_present = false;
bool accumulation_enabled_stti_r15 = false;
delta_tx_d_offset_list_spucch_r15_s delta_tx_d_offset_list_spucch_r15;
bool ul_pwr_csi_payload = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated ::= SEQUENCE
struct ant_info_ded_s {
struct tx_mode_opts {
enum options { tm1, tm2, tm3, tm4, tm5, tm6, tm7, tm8_v920, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_mode_opts> tx_mode_e_;
struct codebook_subset_restrict_c_ {
struct types_opts {
enum options {
n2_tx_ant_tm3,
n4_tx_ant_tm3,
n2_tx_ant_tm4,
n4_tx_ant_tm4,
n2_tx_ant_tm5,
n4_tx_ant_tm5,
n2_tx_ant_tm6,
n4_tx_ant_tm6,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
codebook_subset_restrict_c_() = default;
codebook_subset_restrict_c_(const codebook_subset_restrict_c_& other);
codebook_subset_restrict_c_& operator=(const codebook_subset_restrict_c_& other);
~codebook_subset_restrict_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<2>& n2_tx_ant_tm3()
{
assert_choice_type("n2TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<4>& n4_tx_ant_tm3()
{
assert_choice_type("n4TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<6>& n2_tx_ant_tm4()
{
assert_choice_type("n2TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& n4_tx_ant_tm4()
{
assert_choice_type("n4TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<4>& n2_tx_ant_tm5()
{
assert_choice_type("n2TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& n4_tx_ant_tm5()
{
assert_choice_type("n4TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<4>& n2_tx_ant_tm6()
{
assert_choice_type("n2TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& n4_tx_ant_tm6()
{
assert_choice_type("n4TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<2>& n2_tx_ant_tm3() const
{
assert_choice_type("n2TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<2> >();
}
const fixed_bitstring<4>& n4_tx_ant_tm3() const
{
assert_choice_type("n4TxAntenna-tm3", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<6>& n2_tx_ant_tm4() const
{
assert_choice_type("n2TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<64>& n4_tx_ant_tm4() const
{
assert_choice_type("n4TxAntenna-tm4", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<64> >();
}
const fixed_bitstring<4>& n2_tx_ant_tm5() const
{
assert_choice_type("n2TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<16>& n4_tx_ant_tm5() const
{
assert_choice_type("n4TxAntenna-tm5", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
const fixed_bitstring<4>& n2_tx_ant_tm6() const
{
assert_choice_type("n2TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<4> >();
}
const fixed_bitstring<16>& n4_tx_ant_tm6() const
{
assert_choice_type("n4TxAntenna-tm6", type_.to_string(), "codebookSubsetRestriction");
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<2>& set_n2_tx_ant_tm3()
{
set(types::n2_tx_ant_tm3);
return c.get<fixed_bitstring<2> >();
}
fixed_bitstring<4>& set_n4_tx_ant_tm3()
{
set(types::n4_tx_ant_tm3);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<6>& set_n2_tx_ant_tm4()
{
set(types::n2_tx_ant_tm4);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<64>& set_n4_tx_ant_tm4()
{
set(types::n4_tx_ant_tm4);
return c.get<fixed_bitstring<64> >();
}
fixed_bitstring<4>& set_n2_tx_ant_tm5()
{
set(types::n2_tx_ant_tm5);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& set_n4_tx_ant_tm5()
{
set(types::n4_tx_ant_tm5);
return c.get<fixed_bitstring<16> >();
}
fixed_bitstring<4>& set_n2_tx_ant_tm6()
{
set(types::n2_tx_ant_tm6);
return c.get<fixed_bitstring<4> >();
}
fixed_bitstring<16>& set_n4_tx_ant_tm6()
{
set(types::n4_tx_ant_tm6);
return c.get<fixed_bitstring<16> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<64> > c;
void destroy_();
};
struct ue_tx_ant_sel_c_ {
struct setup_opts {
enum options { closed_loop, open_loop, nulltype } value;
std::string to_string() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
ue_tx_ant_sel_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
// member variables
bool codebook_subset_restrict_present = false;
tx_mode_e_ tx_mode;
codebook_subset_restrict_c_ codebook_subset_restrict;
ue_tx_ant_sel_c_ ue_tx_ant_sel;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated-r10 ::= SEQUENCE
struct ant_info_ded_r10_s {
struct tx_mode_r10_opts {
enum options {
tm1,
tm2,
tm3,
tm4,
tm5,
tm6,
tm7,
tm8_v920,
tm9_v1020,
tm10_v1130,
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<tx_mode_r10_opts> tx_mode_r10_e_;
struct ue_tx_ant_sel_c_ {
struct setup_opts {
enum options { closed_loop, open_loop, nulltype } value;
std::string to_string() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
ue_tx_ant_sel_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ue-TransmitAntennaSelection");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
// member variables
bool codebook_subset_restrict_r10_present = false;
tx_mode_r10_e_ tx_mode_r10;
dyn_bitstring codebook_subset_restrict_r10;
ue_tx_ant_sel_c_ ue_tx_ant_sel;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated-v1250 ::= SEQUENCE
struct ant_info_ded_v1250_s {
bool alt_codebook_enabled_for4_tx_r12 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated-v1430 ::= SEQUENCE
struct ant_info_ded_v1430_s {
bool ce_ue_tx_ant_sel_cfg_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated-v1530 ::= CHOICE
struct ant_info_ded_v1530_c {
struct setup_c_ {
struct ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_opts {
enum options { two, three, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_opts>
ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_;
struct types_opts {
enum options {
ue_tx_ant_sel_srs_minus1_t4_r_cfg_r15,
ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15()
{
assert_choice_type("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", type_.to_string(), "setup");
return c;
}
const ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15() const
{
assert_choice_type("ue-TxAntennaSelection-SRS-2T4R-NrOfPairs-r15", type_.to_string(), "setup");
return c;
}
ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_& set_ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15()
{
set(types::ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15);
return c;
}
private:
types type_;
ue_tx_ant_sel_srs_minus2_t4_r_nr_of_pairs_r15_e_ c;
};
typedef setup_e types;
// choice methods
ant_info_ded_v1530_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicated-v1530");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "AntennaInfoDedicated-v1530");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// AntennaInfoDedicated-v920 ::= SEQUENCE
struct ant_info_ded_v920_s {
struct codebook_subset_restrict_v920_c_ {
struct types_opts {
enum options { n2_tx_ant_tm8_r9, n4_tx_ant_tm8_r9, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
codebook_subset_restrict_v920_c_() = default;
codebook_subset_restrict_v920_c_(const codebook_subset_restrict_v920_c_& other);
codebook_subset_restrict_v920_c_& operator=(const codebook_subset_restrict_v920_c_& other);
~codebook_subset_restrict_v920_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<6>& n2_tx_ant_tm8_r9()
{
assert_choice_type("n2TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<32>& n4_tx_ant_tm8_r9()
{
assert_choice_type("n4TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920");
return c.get<fixed_bitstring<32> >();
}
const fixed_bitstring<6>& n2_tx_ant_tm8_r9() const
{
assert_choice_type("n2TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<32>& n4_tx_ant_tm8_r9() const
{
assert_choice_type("n4TxAntenna-tm8-r9", type_.to_string(), "codebookSubsetRestriction-v920");
return c.get<fixed_bitstring<32> >();
}
fixed_bitstring<6>& set_n2_tx_ant_tm8_r9()
{
set(types::n2_tx_ant_tm8_r9);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<32>& set_n4_tx_ant_tm8_r9()
{
set(types::n4_tx_ant_tm8_r9);
return c.get<fixed_bitstring<32> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<32> > c;
void destroy_();
};
// member variables
bool codebook_subset_restrict_v920_present = false;
codebook_subset_restrict_v920_c_ codebook_subset_restrict_v920;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoUL-r10 ::= SEQUENCE
struct ant_info_ul_r10_s {
struct tx_mode_ul_r10_opts {
enum options { tm1, tm2, 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<tx_mode_ul_r10_opts> tx_mode_ul_r10_e_;
// member variables
bool tx_mode_ul_r10_present = false;
bool four_ant_port_activ_r10_present = false;
tx_mode_ul_r10_e_ tx_mode_ul_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassPriority1XRTT ::= SEQUENCE
struct band_class_prio1_xrtt_s {
bandclass_cdma2000_e band_class;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassPriorityHRPD ::= SEQUENCE
struct band_class_prio_hrpd_s {
bandclass_cdma2000_e band_class;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CFI-Config-r15 ::= SEQUENCE
struct cfi_cfg_r15_s {
bool cfi_sf_non_mbsfn_r15_present = false;
bool cfi_slot_subslot_non_mbsfn_r15_present = false;
bool cfi_sf_mbsfn_r15_present = false;
bool cfi_slot_subslot_mbsfn_r15_present = false;
uint8_t cfi_sf_non_mbsfn_r15 = 1;
uint8_t cfi_slot_subslot_non_mbsfn_r15 = 1;
uint8_t cfi_sf_mbsfn_r15 = 1;
uint8_t cfi_slot_subslot_mbsfn_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CFI-PatternConfig-r15 ::= SEQUENCE
struct cfi_pattern_cfg_r15_s {
using cfi_pattern_sf_r15_l_ = std::array<uint8_t, 10>;
using cfi_pattern_slot_subslot_r15_l_ = std::array<uint8_t, 10>;
// member variables
bool cfi_pattern_sf_r15_present = false;
bool cfi_pattern_slot_subslot_r15_present = false;
cfi_pattern_sf_r15_l_ cfi_pattern_sf_r15;
cfi_pattern_slot_subslot_r15_l_ cfi_pattern_slot_subslot_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig ::= SEQUENCE
struct cqi_report_cfg_s {
bool cqi_report_mode_aperiodic_present = false;
bool cqi_report_periodic_present = false;
cqi_report_mode_aperiodic_e cqi_report_mode_aperiodic;
int8_t nom_pdsch_rs_epre_offset = -1;
cqi_report_periodic_c cqi_report_periodic;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v1530 ::= SEQUENCE
struct cqi_report_cfg_v1530_s {
struct alt_cqi_table_minus1024_qam_r15_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table_minus1024_qam_r15_opts> alt_cqi_table_minus1024_qam_r15_e_;
// member variables
bool alt_cqi_table_minus1024_qam_r15_present = false;
alt_cqi_table_minus1024_qam_r15_e_ alt_cqi_table_minus1024_qam_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfig-v920 ::= SEQUENCE
struct cqi_report_cfg_v920_s {
bool cqi_mask_r9_present = false;
bool pmi_ri_report_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CRS-AssistanceInfoList-r11 ::= SEQUENCE (SIZE (1..8)) OF CRS-AssistanceInfo-r11
using crs_assist_info_list_r11_l = dyn_array<crs_assist_info_r11_s>;
// CRS-AssistanceInfoList-r13 ::= SEQUENCE (SIZE (1..8)) OF CRS-AssistanceInfo-r13
using crs_assist_info_list_r13_l = dyn_array<crs_assist_info_r13_s>;
// CRS-AssistanceInfoList-r15 ::= SEQUENCE (SIZE (1..8)) OF CRS-AssistanceInfo-r15
using crs_assist_info_list_r15_l = dyn_array<crs_assist_info_r15_s>;
// CSI-RS-Config-v1480 ::= SEQUENCE
struct csi_rs_cfg_v1480_s {
bool emimo_type_v1480_present = false;
csi_rs_cfg_emimo_v1480_c emimo_type_v1480;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-Config-v1530 ::= SEQUENCE
struct csi_rs_cfg_v1530_s {
bool emimo_type_v1530_present = false;
csi_rs_cfg_emimo_v1530_c emimo_type_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSI-RS-ConfigNZPToAddModList-r11 ::= SEQUENCE (SIZE (1..3)) OF CSI-RS-ConfigNZP-r11
using csi_rs_cfg_nzp_to_add_mod_list_r11_l = dyn_array<csi_rs_cfg_nzp_r11_s>;
// CSI-RS-ConfigNZPToAddModListExt-r13 ::= SEQUENCE (SIZE (1..21)) OF CSI-RS-ConfigNZP-r11
using csi_rs_cfg_nzp_to_add_mod_list_ext_r13_l = dyn_array<csi_rs_cfg_nzp_r11_s>;
// CSI-RS-ConfigNZPToReleaseList-r11 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (1..3)
using csi_rs_cfg_nzp_to_release_list_r11_l = bounded_array<uint8_t, 3>;
// CSI-RS-ConfigNZPToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..21)) OF INTEGER (4..24)
using csi_rs_cfg_nzp_to_release_list_ext_r13_l = bounded_array<uint8_t, 21>;
// DRB-ToAddMod ::= SEQUENCE
struct drb_to_add_mod_s {
struct drb_type_lwip_r13_opts {
enum options { lwip, lwip_dl_only, lwip_ul_only, eutran, nulltype } value;
std::string to_string() const;
};
typedef enumerated<drb_type_lwip_r13_opts> drb_type_lwip_r13_e_;
struct lwa_wlan_ac_r14_opts {
enum options { ac_bk, ac_be, ac_vi, ac_vo, nulltype } value;
std::string to_string() const;
};
typedef enumerated<lwa_wlan_ac_r14_opts> lwa_wlan_ac_r14_e_;
// member variables
bool ext = false;
bool eps_bearer_id_present = false;
bool pdcp_cfg_present = false;
bool rlc_cfg_present = false;
bool lc_ch_id_present = false;
bool lc_ch_cfg_present = false;
uint8_t eps_bearer_id = 0;
uint8_t drb_id = 1;
pdcp_cfg_s pdcp_cfg;
rlc_cfg_c rlc_cfg;
uint8_t lc_ch_id = 3;
lc_ch_cfg_s lc_ch_cfg;
// ...
// group 0
bool drb_type_change_r12_present = false;
copy_ptr<rlc_cfg_v1250_s> rlc_cfg_v1250;
// group 1
bool drb_type_lwa_r13_present = false;
bool drb_type_lwip_r13_present = false;
copy_ptr<rlc_cfg_v1310_s> rlc_cfg_v1310;
bool drb_type_lwa_r13 = false;
drb_type_lwip_r13_e_ drb_type_lwip_r13;
// group 2
bool lwip_ul_aggregation_r14_present = false;
bool lwip_dl_aggregation_r14_present = false;
bool lwa_wlan_ac_r14_present = false;
copy_ptr<rlc_cfg_v1430_c> rlc_cfg_v1430;
bool lwip_ul_aggregation_r14 = false;
bool lwip_dl_aggregation_r14 = false;
lwa_wlan_ac_r14_e_ lwa_wlan_ac_r14;
// group 3
copy_ptr<rlc_cfg_v1510_s> rlc_cfg_v1510;
// 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;
uint8_t lc_ch_id_r15 = 32;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRX-Config ::= CHOICE
struct drx_cfg_c {
struct setup_s_ {
struct on_dur_timer_opts {
enum options {
psf1,
psf2,
psf3,
psf4,
psf5,
psf6,
psf8,
psf10,
psf20,
psf30,
psf40,
psf50,
psf60,
psf80,
psf100,
psf200,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<on_dur_timer_opts> on_dur_timer_e_;
struct drx_inactivity_timer_opts {
enum options {
psf1,
psf2,
psf3,
psf4,
psf5,
psf6,
psf8,
psf10,
psf20,
psf30,
psf40,
psf50,
psf60,
psf80,
psf100,
psf200,
psf300,
psf500,
psf750,
psf1280,
psf1920,
psf2560,
psf0_v1020,
spare9,
spare8,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_inactivity_timer_opts> drx_inactivity_timer_e_;
struct drx_retx_timer_opts {
enum options { psf1, psf2, psf4, psf6, psf8, psf16, psf24, psf33, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<drx_retx_timer_opts> drx_retx_timer_e_;
struct long_drx_cycle_start_offset_c_ {
struct types_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf256,
sf320,
sf512,
sf640,
sf1024,
sf1280,
sf2048,
sf2560,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
long_drx_cycle_start_offset_c_() = default;
long_drx_cycle_start_offset_c_(const long_drx_cycle_start_offset_c_& other);
long_drx_cycle_start_offset_c_& operator=(const long_drx_cycle_start_offset_c_& other);
~long_drx_cycle_start_offset_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf10()
{
assert_choice_type("sf10", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf20()
{
assert_choice_type("sf20", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type("sf32", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type("sf40", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type("sf64", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type("sf80", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type("sf128", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type("sf160", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type("sf256", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type("sf320", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type("sf512", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type("sf640", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type("sf1024", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf1280()
{
assert_choice_type("sf1280", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type("sf2048", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint16_t& sf2560()
{
assert_choice_type("sf2560", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type("sf10", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type("sf20", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type("sf32", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type("sf40", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type("sf64", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type("sf80", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type("sf128", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type("sf160", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type("sf256", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type("sf320", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type("sf512", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type("sf640", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type("sf1024", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf1280() const
{
assert_choice_type("sf1280", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type("sf2048", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
const uint16_t& sf2560() const
{
assert_choice_type("sf2560", type_.to_string(), "longDRX-CycleStartOffset");
return c.get<uint16_t>();
}
uint8_t& set_sf10()
{
set(types::sf10);
return c.get<uint8_t>();
}
uint8_t& set_sf20()
{
set(types::sf20);
return c.get<uint8_t>();
}
uint8_t& set_sf32()
{
set(types::sf32);
return c.get<uint8_t>();
}
uint8_t& set_sf40()
{
set(types::sf40);
return c.get<uint8_t>();
}
uint8_t& set_sf64()
{
set(types::sf64);
return c.get<uint8_t>();
}
uint8_t& set_sf80()
{
set(types::sf80);
return c.get<uint8_t>();
}
uint8_t& set_sf128()
{
set(types::sf128);
return c.get<uint8_t>();
}
uint8_t& set_sf160()
{
set(types::sf160);
return c.get<uint8_t>();
}
uint16_t& set_sf256()
{
set(types::sf256);
return c.get<uint16_t>();
}
uint16_t& set_sf320()
{
set(types::sf320);
return c.get<uint16_t>();
}
uint16_t& set_sf512()
{
set(types::sf512);
return c.get<uint16_t>();
}
uint16_t& set_sf640()
{
set(types::sf640);
return c.get<uint16_t>();
}
uint16_t& set_sf1024()
{
set(types::sf1024);
return c.get<uint16_t>();
}
uint16_t& set_sf1280()
{
set(types::sf1280);
return c.get<uint16_t>();
}
uint16_t& set_sf2048()
{
set(types::sf2048);
return c.get<uint16_t>();
}
uint16_t& set_sf2560()
{
set(types::sf2560);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct short_drx_s_ {
struct short_drx_cycle_opts {
enum options {
sf2,
sf5,
sf8,
sf10,
sf16,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf256,
sf320,
sf512,
sf640,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<short_drx_cycle_opts> short_drx_cycle_e_;
// member variables
short_drx_cycle_e_ short_drx_cycle;
uint8_t drx_short_cycle_timer = 1;
};
// member variables
bool short_drx_present = false;
on_dur_timer_e_ on_dur_timer;
drx_inactivity_timer_e_ drx_inactivity_timer;
drx_retx_timer_e_ drx_retx_timer;
long_drx_cycle_start_offset_c_ long_drx_cycle_start_offset;
short_drx_s_ short_drx;
};
typedef setup_e types;
// choice methods
drx_cfg_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "DRX-Config");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "DRX-Config");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// DRX-Config-r13 ::= SEQUENCE
struct drx_cfg_r13_s {
struct on_dur_timer_v1310_opts {
enum options { psf300, psf400, psf500, psf600, psf800, psf1000, psf1200, psf1600, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<on_dur_timer_v1310_opts> on_dur_timer_v1310_e_;
struct drx_retx_timer_v1310_opts {
enum options { psf40, psf64, psf80, psf96, psf112, psf128, psf160, psf320, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_retx_timer_v1310_opts> drx_retx_timer_v1310_e_;
struct drx_ul_retx_timer_r13_opts {
enum options {
psf0,
psf1,
psf2,
psf4,
psf6,
psf8,
psf16,
psf24,
psf33,
psf40,
psf64,
psf80,
psf96,
psf112,
psf128,
psf160,
psf320,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_ul_retx_timer_r13_opts> drx_ul_retx_timer_r13_e_;
// member variables
bool on_dur_timer_v1310_present = false;
bool drx_retx_timer_v1310_present = false;
bool drx_ul_retx_timer_r13_present = false;
on_dur_timer_v1310_e_ on_dur_timer_v1310;
drx_retx_timer_v1310_e_ drx_retx_timer_v1310;
drx_ul_retx_timer_r13_e_ drx_ul_retx_timer_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRX-Config-r15 ::= SEQUENCE
struct drx_cfg_r15_s {
struct drx_retx_timer_short_tti_r15_opts {
enum options { tti10, tti20, tti40, tti64, tti80, tti96, tti112, tti128, tti160, tti320, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_retx_timer_short_tti_r15_opts> drx_retx_timer_short_tti_r15_e_;
struct drx_ul_retx_timer_short_tti_r15_opts {
enum options {
tti0,
tti1,
tti2,
tti4,
tti6,
tti8,
tti16,
tti24,
tti33,
tti40,
tti64,
tti80,
tti96,
tti112,
tti128,
tti160,
tti320,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_ul_retx_timer_short_tti_r15_opts> drx_ul_retx_timer_short_tti_r15_e_;
// member variables
bool drx_retx_timer_short_tti_r15_present = false;
bool drx_ul_retx_timer_short_tti_r15_present = false;
drx_retx_timer_short_tti_r15_e_ drx_retx_timer_short_tti_r15;
drx_ul_retx_timer_short_tti_r15_e_ drx_ul_retx_timer_short_tti_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRX-Config-v1130 ::= SEQUENCE
struct drx_cfg_v1130_s {
struct long_drx_cycle_start_offset_v1130_c_ {
struct types_opts {
enum options { sf60_v1130, sf70_v1130, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
long_drx_cycle_start_offset_v1130_c_() = default;
long_drx_cycle_start_offset_v1130_c_(const long_drx_cycle_start_offset_v1130_c_& other);
long_drx_cycle_start_offset_v1130_c_& operator=(const long_drx_cycle_start_offset_v1130_c_& other);
~long_drx_cycle_start_offset_v1130_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf60_v1130()
{
assert_choice_type("sf60-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130");
return c.get<uint8_t>();
}
uint8_t& sf70_v1130()
{
assert_choice_type("sf70-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130");
return c.get<uint8_t>();
}
const uint8_t& sf60_v1130() const
{
assert_choice_type("sf60-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130");
return c.get<uint8_t>();
}
const uint8_t& sf70_v1130() const
{
assert_choice_type("sf70-v1130", type_.to_string(), "longDRX-CycleStartOffset-v1130");
return c.get<uint8_t>();
}
uint8_t& set_sf60_v1130()
{
set(types::sf60_v1130);
return c.get<uint8_t>();
}
uint8_t& set_sf70_v1130()
{
set(types::sf70_v1130);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool drx_retx_timer_v1130_present = false;
bool long_drx_cycle_start_offset_v1130_present = false;
bool short_drx_cycle_v1130_present = false;
long_drx_cycle_start_offset_v1130_c_ long_drx_cycle_start_offset_v1130;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRX-Config-v1310 ::= SEQUENCE
struct drx_cfg_v1310_s {
struct long_drx_cycle_start_offset_v1310_s_ {
uint8_t sf60_v1310 = 0;
};
// member variables
bool long_drx_cycle_start_offset_v1310_present = false;
long_drx_cycle_start_offset_v1310_s_ long_drx_cycle_start_offset_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DataInactivityTimer-r14 ::= ENUMERATED
struct data_inactivity_timer_r14_opts {
enum options { s1, s2, s3, s5, s7, s10, s15, s20, s40, s50, s60, s80, s100, s120, s150, s180, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<data_inactivity_timer_r14_opts> data_inactivity_timer_r14_e;
// EPDCCH-Config-r11 ::= SEQUENCE
struct epdcch_cfg_r11_s {
struct cfg_r11_c_ {
struct setup_s_ {
struct sf_pattern_cfg_r11_c_ {
struct setup_s_ {
meas_sf_pattern_r10_c sf_pattern_r11;
};
typedef setup_e types;
// choice methods
sf_pattern_cfg_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "subframePatternConfig-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "subframePatternConfig-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool sf_pattern_cfg_r11_present = false;
bool start_symbol_r11_present = false;
bool set_cfg_to_release_list_r11_present = false;
bool set_cfg_to_add_mod_list_r11_present = false;
sf_pattern_cfg_r11_c_ sf_pattern_cfg_r11;
uint8_t start_symbol_r11 = 1;
epdcch_set_cfg_to_release_list_r11_l set_cfg_to_release_list_r11;
epdcch_set_cfg_to_add_mod_list_r11_l set_cfg_to_add_mod_list_r11;
};
typedef setup_e types;
// choice methods
cfg_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "config-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "config-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
cfg_r11_c_ cfg_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityEUTRA ::= SEQUENCE
struct freq_prio_eutra_s {
uint32_t carrier_freq = 0;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityEUTRA-r12 ::= SEQUENCE
struct freq_prio_eutra_r12_s {
uint32_t carrier_freq_r12 = 0;
uint8_t cell_resel_prio_r12 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityEUTRA-v1310 ::= SEQUENCE
struct freq_prio_eutra_v1310_s {
bool cell_resel_sub_prio_r13_present = false;
cell_resel_sub_prio_r13_e cell_resel_sub_prio_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityNR-r15 ::= SEQUENCE
struct freq_prio_nr_r15_s {
bool cell_resel_sub_prio_r15_present = false;
uint32_t carrier_freq_r15 = 0;
uint8_t cell_resel_prio_r15 = 0;
cell_resel_sub_prio_r13_e cell_resel_sub_prio_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityUTRA-FDD ::= SEQUENCE
struct freq_prio_utra_fdd_s {
uint16_t carrier_freq = 0;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityUTRA-TDD ::= SEQUENCE
struct freq_prio_utra_tdd_s {
uint16_t carrier_freq = 0;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqsPriorityGERAN ::= SEQUENCE
struct freqs_prio_geran_s {
carrier_freqs_geran_s carrier_freqs;
uint8_t cell_resel_prio = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellsToAddModList-r12 ::= SEQUENCE (SIZE (1..8)) OF NeighCellsInfo-r12
using neigh_cells_to_add_mod_list_r12_l = dyn_array<neigh_cells_info_r12_s>;
// NeighCellsToReleaseList-r12 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..503)
using neigh_cells_to_release_list_r12_l = bounded_array<uint16_t, 8>;
// PDCCH-CandidateReductions-r13 ::= CHOICE
struct pdcch_candidate_reductions_r13_c {
struct setup_s_ {
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al1_r13;
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al2_r13;
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al3_r13;
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al4_r13;
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al5_r13;
};
typedef setup_e types;
// choice methods
pdcch_candidate_reductions_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductions-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductions-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// PDSCH-ConfigDedicated ::= SEQUENCE
struct pdsch_cfg_ded_s {
struct p_a_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_opts> p_a_e_;
// member variables
p_a_e_ p_a;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicated-v1130 ::= SEQUENCE
struct pdsch_cfg_ded_v1130_s {
struct qcl_operation_opts {
enum options { type_a, type_b, nulltype } value;
std::string to_string() const;
};
typedef enumerated<qcl_operation_opts> qcl_operation_e_;
// member variables
bool dmrs_cfg_pdsch_r11_present = false;
bool qcl_operation_present = false;
bool re_map_qcl_cfg_to_release_list_r11_present = false;
bool re_map_qcl_cfg_to_add_mod_list_r11_present = false;
dmrs_cfg_r11_c dmrs_cfg_pdsch_r11;
qcl_operation_e_ qcl_operation;
re_map_qcl_cfg_to_release_list_r11_l re_map_qcl_cfg_to_release_list_r11;
re_map_qcl_cfg_to_add_mod_list_r11_l re_map_qcl_cfg_to_add_mod_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicated-v1280 ::= SEQUENCE
struct pdsch_cfg_ded_v1280_s {
struct tbs_idx_alt_r12_opts {
enum options { a26, a33, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tbs_idx_alt_r12_opts> tbs_idx_alt_r12_e_;
// member variables
bool tbs_idx_alt_r12_present = false;
tbs_idx_alt_r12_e_ tbs_idx_alt_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicated-v1310 ::= SEQUENCE
struct pdsch_cfg_ded_v1310_s {
bool dmrs_cfg_pdsch_v1310_present = false;
dmrs_cfg_v1310_s dmrs_cfg_pdsch_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicated-v1430 ::= SEQUENCE
struct pdsch_cfg_ded_v1430_s {
struct ce_pdsch_max_bw_r14_opts {
enum options { bw5, bw20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ce_pdsch_max_bw_r14_opts> ce_pdsch_max_bw_r14_e_;
struct ce_sched_enhancement_r14_opts {
enum options { range1, range2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ce_sched_enhancement_r14_opts> ce_sched_enhancement_r14_e_;
// member variables
bool ce_pdsch_max_bw_r14_present = false;
bool ce_pdsch_ten_processes_r14_present = false;
bool ce_harq_ack_bundling_r14_present = false;
bool ce_sched_enhancement_r14_present = false;
bool tbs_idx_alt2_r14_present = false;
ce_pdsch_max_bw_r14_e_ ce_pdsch_max_bw_r14;
ce_sched_enhancement_r14_e_ ce_sched_enhancement_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicated-v1530 ::= SEQUENCE
struct pdsch_cfg_ded_v1530_s {
struct alt_mcs_table_scaling_cfg_r15_opts {
enum options { odot5, odot625, odot75, odot875, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<alt_mcs_table_scaling_cfg_r15_opts> alt_mcs_table_scaling_cfg_r15_e_;
// member variables
bool qcl_operation_v1530_present = false;
bool tbs_idx_alt3_r15_present = false;
bool ce_cqi_alt_table_cfg_r15_present = false;
bool ce_pdsch_minus64_qam_cfg_r15_present = false;
bool ce_pdsch_flex_start_prb_alloc_cfg_r15_present = false;
bool alt_mcs_table_scaling_cfg_r15_present = false;
alt_mcs_table_scaling_cfg_r15_e_ alt_mcs_table_scaling_cfg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated ::= SEQUENCE
struct pucch_cfg_ded_s {
struct ack_nack_repeat_c_ {
struct setup_s_ {
struct repeat_factor_opts {
enum options { n2, n4, n6, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<repeat_factor_opts> repeat_factor_e_;
// member variables
repeat_factor_e_ repeat_factor;
uint16_t n1_pucch_an_rep = 0;
};
typedef setup_e types;
// choice methods
ack_nack_repeat_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ackNackRepetition");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ackNackRepetition");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct tdd_ack_nack_feedback_mode_opts {
enum options { bundling, mux, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tdd_ack_nack_feedback_mode_opts> tdd_ack_nack_feedback_mode_e_;
// member variables
bool tdd_ack_nack_feedback_mode_present = false;
ack_nack_repeat_c_ ack_nack_repeat;
tdd_ack_nack_feedback_mode_e_ tdd_ack_nack_feedback_mode;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-r13 ::= SEQUENCE
struct pucch_cfg_ded_r13_s {
struct ack_nack_repeat_r13_c_ {
struct setup_s_ {
struct repeat_factor_r13_opts {
enum options { n2, n4, n6, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<repeat_factor_r13_opts> repeat_factor_r13_e_;
// member variables
repeat_factor_r13_e_ repeat_factor_r13;
uint16_t n1_pucch_an_rep_r13 = 0;
};
typedef setup_e types;
// choice methods
ack_nack_repeat_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ackNackRepetition-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ackNackRepetition-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct tdd_ack_nack_feedback_mode_r13_opts {
enum options { bundling, mux, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tdd_ack_nack_feedback_mode_r13_opts> tdd_ack_nack_feedback_mode_r13_e_;
struct pucch_format_r13_c_ {
struct format3_r13_s_ {
using n3_pucch_an_list_r13_l_ = bounded_array<uint16_t, 4>;
struct two_ant_port_activ_pucch_format3_r13_c_ {
struct setup_s_ {
using n3_pucch_an_list_p1_r13_l_ = bounded_array<uint16_t, 4>;
// member variables
n3_pucch_an_list_p1_r13_l_ n3_pucch_an_list_p1_r13;
};
typedef setup_e types;
// choice methods
two_ant_port_activ_pucch_format3_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivatedPUCCH-Format3-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool n3_pucch_an_list_r13_present = false;
bool two_ant_port_activ_pucch_format3_r13_present = false;
n3_pucch_an_list_r13_l_ n3_pucch_an_list_r13;
two_ant_port_activ_pucch_format3_r13_c_ two_ant_port_activ_pucch_format3_r13;
};
struct ch_sel_r13_s_ {
struct n1_pucch_an_cs_r13_c_ {
struct setup_s_ {
using n1_pucch_an_cs_list_r13_l_ = dyn_array<n1_pucch_an_cs_r10_l>;
using n1_pucch_an_cs_list_p1_r13_l_ = bounded_array<uint16_t, 4>;
// member variables
n1_pucch_an_cs_list_r13_l_ n1_pucch_an_cs_list_r13;
n1_pucch_an_cs_list_p1_r13_l_ n1_pucch_an_cs_list_p1_r13;
};
typedef setup_e types;
// choice methods
n1_pucch_an_cs_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool n1_pucch_an_cs_r13_present = false;
n1_pucch_an_cs_r13_c_ n1_pucch_an_cs_r13;
};
struct format4_r13_s_ {
using format4_res_cfg_r13_l_ = std::array<format4_res_r13_s, 4>;
using format4_multi_csi_res_cfg_r13_l_ = dyn_array<format4_res_r13_s>;
// member variables
bool format4_multi_csi_res_cfg_r13_present = false;
format4_res_cfg_r13_l_ format4_res_cfg_r13;
format4_multi_csi_res_cfg_r13_l_ format4_multi_csi_res_cfg_r13;
};
struct format5_r13_s_ {
using format5_res_cfg_r13_l_ = std::array<format5_res_r13_s, 4>;
// member variables
bool format5_multi_csi_res_cfg_r13_present = false;
format5_res_cfg_r13_l_ format5_res_cfg_r13;
format5_res_r13_s format5_multi_csi_res_cfg_r13;
};
struct types_opts {
enum options { format3_r13, ch_sel_r13, format4_r13, format5_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
pucch_format_r13_c_() = default;
pucch_format_r13_c_(const pucch_format_r13_c_& other);
pucch_format_r13_c_& operator=(const pucch_format_r13_c_& other);
~pucch_format_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
format3_r13_s_& format3_r13()
{
assert_choice_type("format3-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format3_r13_s_>();
}
ch_sel_r13_s_& ch_sel_r13()
{
assert_choice_type("channelSelection-r13", type_.to_string(), "pucch-Format-r13");
return c.get<ch_sel_r13_s_>();
}
format4_r13_s_& format4_r13()
{
assert_choice_type("format4-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format4_r13_s_>();
}
format5_r13_s_& format5_r13()
{
assert_choice_type("format5-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format5_r13_s_>();
}
const format3_r13_s_& format3_r13() const
{
assert_choice_type("format3-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format3_r13_s_>();
}
const ch_sel_r13_s_& ch_sel_r13() const
{
assert_choice_type("channelSelection-r13", type_.to_string(), "pucch-Format-r13");
return c.get<ch_sel_r13_s_>();
}
const format4_r13_s_& format4_r13() const
{
assert_choice_type("format4-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format4_r13_s_>();
}
const format5_r13_s_& format5_r13() const
{
assert_choice_type("format5-r13", type_.to_string(), "pucch-Format-r13");
return c.get<format5_r13_s_>();
}
format3_r13_s_& set_format3_r13()
{
set(types::format3_r13);
return c.get<format3_r13_s_>();
}
ch_sel_r13_s_& set_ch_sel_r13()
{
set(types::ch_sel_r13);
return c.get<ch_sel_r13_s_>();
}
format4_r13_s_& set_format4_r13()
{
set(types::format4_r13);
return c.get<format4_r13_s_>();
}
format5_r13_s_& set_format5_r13()
{
set(types::format5_r13);
return c.get<format5_r13_s_>();
}
private:
types type_;
choice_buffer_t<ch_sel_r13_s_, format3_r13_s_, format4_r13_s_, format5_r13_s_> c;
void destroy_();
};
struct npucch_param_r13_c_ {
struct setup_s_ {
uint16_t npucch_id_r13 = 0;
uint16_t n1_pucch_an_r13 = 0;
};
typedef setup_e types;
// choice methods
npucch_param_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct nka_pucch_param_r13_c_ {
struct setup_s_ {
uint16_t nka_pucch_an_r13 = 0;
};
typedef setup_e types;
// choice methods
nka_pucch_param_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct codebooksize_determination_r13_opts {
enum options { dai, cc, nulltype } value;
std::string to_string() const;
};
typedef enumerated<codebooksize_determination_r13_opts> codebooksize_determination_r13_e_;
struct pucch_num_repeat_ce_r13_c_ {
struct setup_c_ {
struct mode_a_s_ {
struct pucch_num_repeat_ce_format1_r13_opts {
enum options { r1, r2, r4, r8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_format1_r13_opts> pucch_num_repeat_ce_format1_r13_e_;
struct pucch_num_repeat_ce_format2_r13_opts {
enum options { r1, r2, r4, r8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_format2_r13_opts> pucch_num_repeat_ce_format2_r13_e_;
// member variables
pucch_num_repeat_ce_format1_r13_e_ pucch_num_repeat_ce_format1_r13;
pucch_num_repeat_ce_format2_r13_e_ pucch_num_repeat_ce_format2_r13;
};
struct mode_b_s_ {
struct pucch_num_repeat_ce_format1_r13_opts {
enum options { r4, r8, r16, r32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_format1_r13_opts> pucch_num_repeat_ce_format1_r13_e_;
struct pucch_num_repeat_ce_format2_r13_opts {
enum options { r4, r8, r16, r32, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_format2_r13_opts> pucch_num_repeat_ce_format2_r13_e_;
// member variables
pucch_num_repeat_ce_format1_r13_e_ pucch_num_repeat_ce_format1_r13;
pucch_num_repeat_ce_format2_r13_e_ pucch_num_repeat_ce_format2_r13;
};
struct types_opts {
enum options { mode_a, mode_b, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mode_a_s_& mode_a()
{
assert_choice_type("modeA", type_.to_string(), "setup");
return c.get<mode_a_s_>();
}
mode_b_s_& mode_b()
{
assert_choice_type("modeB", type_.to_string(), "setup");
return c.get<mode_b_s_>();
}
const mode_a_s_& mode_a() const
{
assert_choice_type("modeA", type_.to_string(), "setup");
return c.get<mode_a_s_>();
}
const mode_b_s_& mode_b() const
{
assert_choice_type("modeB", type_.to_string(), "setup");
return c.get<mode_b_s_>();
}
mode_a_s_& set_mode_a()
{
set(types::mode_a);
return c.get<mode_a_s_>();
}
mode_b_s_& set_mode_b()
{
set(types::mode_b);
return c.get<mode_b_s_>();
}
private:
types type_;
choice_buffer_t<mode_a_s_, mode_b_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
pucch_num_repeat_ce_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "pucch-NumRepetitionCE-r13");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pucch-NumRepetitionCE-r13");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// member variables
bool tdd_ack_nack_feedback_mode_r13_present = false;
bool pucch_format_r13_present = false;
bool two_ant_port_activ_pucch_format1a1b_r13_present = false;
bool simul_pucch_pusch_r13_present = false;
bool n1_pucch_an_rep_p1_r13_present = false;
bool npucch_param_r13_present = false;
bool nka_pucch_param_r13_present = false;
bool codebooksize_determination_r13_present = false;
bool maximum_payload_coderate_r13_present = false;
bool pucch_num_repeat_ce_r13_present = false;
ack_nack_repeat_r13_c_ ack_nack_repeat_r13;
tdd_ack_nack_feedback_mode_r13_e_ tdd_ack_nack_feedback_mode_r13;
pucch_format_r13_c_ pucch_format_r13;
uint16_t n1_pucch_an_rep_p1_r13 = 0;
npucch_param_r13_c_ npucch_param_r13;
nka_pucch_param_r13_c_ nka_pucch_param_r13;
bool spatial_bundling_pucch_r13 = false;
bool spatial_bundling_pusch_r13 = false;
bool harq_timing_tdd_r13 = false;
codebooksize_determination_r13_e_ codebooksize_determination_r13;
uint8_t maximum_payload_coderate_r13 = 0;
pucch_num_repeat_ce_r13_c_ pucch_num_repeat_ce_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1020 ::= SEQUENCE
struct pucch_cfg_ded_v1020_s {
struct pucch_format_r10_c_ {
struct ch_sel_r10_s_ {
struct n1_pucch_an_cs_r10_c_ {
struct setup_s_ {
using n1_pucch_an_cs_list_r10_l_ = dyn_array<n1_pucch_an_cs_r10_l>;
// member variables
n1_pucch_an_cs_list_r10_l_ n1_pucch_an_cs_list_r10;
};
typedef setup_e types;
// choice methods
n1_pucch_an_cs_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool n1_pucch_an_cs_r10_present = false;
n1_pucch_an_cs_r10_c_ n1_pucch_an_cs_r10;
};
struct types_opts {
enum options { format3_r10, ch_sel_r10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
pucch_format_r10_c_() = default;
pucch_format_r10_c_(const pucch_format_r10_c_& other);
pucch_format_r10_c_& operator=(const pucch_format_r10_c_& other);
~pucch_format_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
pucch_format3_conf_r13_s& format3_r10()
{
assert_choice_type("format3-r10", type_.to_string(), "pucch-Format-r10");
return c.get<pucch_format3_conf_r13_s>();
}
ch_sel_r10_s_& ch_sel_r10()
{
assert_choice_type("channelSelection-r10", type_.to_string(), "pucch-Format-r10");
return c.get<ch_sel_r10_s_>();
}
const pucch_format3_conf_r13_s& format3_r10() const
{
assert_choice_type("format3-r10", type_.to_string(), "pucch-Format-r10");
return c.get<pucch_format3_conf_r13_s>();
}
const ch_sel_r10_s_& ch_sel_r10() const
{
assert_choice_type("channelSelection-r10", type_.to_string(), "pucch-Format-r10");
return c.get<ch_sel_r10_s_>();
}
pucch_format3_conf_r13_s& set_format3_r10()
{
set(types::format3_r10);
return c.get<pucch_format3_conf_r13_s>();
}
ch_sel_r10_s_& set_ch_sel_r10()
{
set(types::ch_sel_r10);
return c.get<ch_sel_r10_s_>();
}
private:
types type_;
choice_buffer_t<ch_sel_r10_s_, pucch_format3_conf_r13_s> c;
void destroy_();
};
// member variables
bool pucch_format_r10_present = false;
bool two_ant_port_activ_pucch_format1a1b_r10_present = false;
bool simul_pucch_pusch_r10_present = false;
bool n1_pucch_an_rep_p1_r10_present = false;
pucch_format_r10_c_ pucch_format_r10;
uint16_t n1_pucch_an_rep_p1_r10 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1130 ::= SEQUENCE
struct pucch_cfg_ded_v1130_s {
struct n1_pucch_an_cs_v1130_c_ {
struct setup_s_ {
using n1_pucch_an_cs_list_p1_r11_l_ = bounded_array<uint16_t, 4>;
// member variables
n1_pucch_an_cs_list_p1_r11_l_ n1_pucch_an_cs_list_p1_r11;
};
typedef setup_e types;
// choice methods
n1_pucch_an_cs_v1130_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v1130");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "n1PUCCH-AN-CS-v1130");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct npucch_param_r11_c_ {
struct setup_s_ {
uint16_t npucch_id_r11 = 0;
uint16_t n1_pucch_an_r11 = 0;
};
typedef setup_e types;
// choice methods
npucch_param_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "nPUCCH-Param-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool n1_pucch_an_cs_v1130_present = false;
bool npucch_param_r11_present = false;
n1_pucch_an_cs_v1130_c_ n1_pucch_an_cs_v1130;
npucch_param_r11_c_ npucch_param_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1250 ::= SEQUENCE
struct pucch_cfg_ded_v1250_s {
struct nka_pucch_param_r12_c_ {
struct setup_s_ {
uint16_t nka_pucch_an_r12 = 0;
};
typedef setup_e types;
// choice methods
nka_pucch_param_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "nkaPUCCH-Param-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
nka_pucch_param_r12_c_ nka_pucch_param_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1430 ::= SEQUENCE
struct pucch_cfg_ded_v1430_s {
struct pucch_num_repeat_ce_format1_r14_opts {
enum options { r64, r128, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pucch_num_repeat_ce_format1_r14_opts> pucch_num_repeat_ce_format1_r14_e_;
// member variables
bool pucch_num_repeat_ce_format1_r14_present = false;
pucch_num_repeat_ce_format1_r14_e_ pucch_num_repeat_ce_format1_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated ::= SEQUENCE
struct pusch_cfg_ded_s {
uint8_t beta_offset_ack_idx = 0;
uint8_t beta_offset_ri_idx = 0;
uint8_t beta_offset_cqi_idx = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-r13 ::= SEQUENCE
struct pusch_cfg_ded_r13_s {
struct beta_offset_mc_r13_s_ {
bool beta_offset2_ack_idx_mc_r13_present = false;
uint8_t beta_offset_ack_idx_mc_r13 = 0;
uint8_t beta_offset2_ack_idx_mc_r13 = 0;
uint8_t beta_offset_ri_idx_mc_r13 = 0;
uint8_t beta_offset_cqi_idx_mc_r13 = 0;
};
struct pusch_dmrs_r11_c_ {
struct setup_s_ {
uint16_t npusch_id_r13 = 0;
uint16_t ndmrs_csh_id_r13 = 0;
};
typedef setup_e types;
// choice methods
pusch_dmrs_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct uci_on_pusch_c_ {
struct setup_s_ {
struct beta_offset_mc_r12_s_ {
bool beta_offset2_ack_idx_mc_sf_set2_r13_present = false;
uint8_t beta_offset_ack_idx_mc_sf_set2_r13 = 0;
uint8_t beta_offset2_ack_idx_mc_sf_set2_r13 = 0;
uint8_t beta_offset_ri_idx_mc_sf_set2_r13 = 0;
uint8_t beta_offset_cqi_idx_mc_sf_set2_r13 = 0;
};
// member variables
bool beta_offset2_ack_idx_sf_set2_r13_present = false;
bool beta_offset_mc_r12_present = false;
uint8_t beta_offset_ack_idx_sf_set2_r13 = 0;
uint8_t beta_offset2_ack_idx_sf_set2_r13 = 0;
uint8_t beta_offset_ri_idx_sf_set2_r13 = 0;
uint8_t beta_offset_cqi_idx_sf_set2_r13 = 0;
beta_offset_mc_r12_s_ beta_offset_mc_r12;
};
typedef setup_e types;
// choice methods
uci_on_pusch_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "uciOnPUSCH");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "uciOnPUSCH");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool beta_offset2_ack_idx_r13_present = false;
bool beta_offset_mc_r13_present = false;
bool group_hop_disabled_r13_present = false;
bool dmrs_with_occ_activ_r13_present = false;
bool pusch_dmrs_r11_present = false;
bool uci_on_pusch_present = false;
bool pusch_hop_cfg_r13_present = false;
uint8_t beta_offset_ack_idx_r13 = 0;
uint8_t beta_offset2_ack_idx_r13 = 0;
uint8_t beta_offset_ri_idx_r13 = 0;
uint8_t beta_offset_cqi_idx_r13 = 0;
beta_offset_mc_r13_s_ beta_offset_mc_r13;
pusch_dmrs_r11_c_ pusch_dmrs_r11;
uci_on_pusch_c_ uci_on_pusch;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-v1020 ::= SEQUENCE
struct pusch_cfg_ded_v1020_s {
struct beta_offset_mc_r10_s_ {
uint8_t beta_offset_ack_idx_mc_r10 = 0;
uint8_t beta_offset_ri_idx_mc_r10 = 0;
uint8_t beta_offset_cqi_idx_mc_r10 = 0;
};
// member variables
bool beta_offset_mc_r10_present = false;
bool group_hop_disabled_r10_present = false;
bool dmrs_with_occ_activ_r10_present = false;
beta_offset_mc_r10_s_ beta_offset_mc_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-v1130 ::= SEQUENCE
struct pusch_cfg_ded_v1130_s {
struct pusch_dmrs_r11_c_ {
struct setup_s_ {
uint16_t npusch_id_r11 = 0;
uint16_t ndmrs_csh_id_r11 = 0;
};
typedef setup_e types;
// choice methods
pusch_dmrs_r11_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pusch-DMRS-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
pusch_dmrs_r11_c_ pusch_dmrs_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-v1250 ::= SEQUENCE
struct pusch_cfg_ded_v1250_s {
struct uci_on_pusch_c_ {
struct setup_s_ {
struct beta_offset_mc_r12_s_ {
uint8_t beta_offset_ack_idx_mc_sf_set2_r12 = 0;
uint8_t beta_offset_ri_idx_mc_sf_set2_r12 = 0;
uint8_t beta_offset_cqi_idx_mc_sf_set2_r12 = 0;
};
// member variables
bool beta_offset_mc_r12_present = false;
uint8_t beta_offset_ack_idx_sf_set2_r12 = 0;
uint8_t beta_offset_ri_idx_sf_set2_r12 = 0;
uint8_t beta_offset_cqi_idx_sf_set2_r12 = 0;
beta_offset_mc_r12_s_ beta_offset_mc_r12;
};
typedef setup_e types;
// choice methods
uci_on_pusch_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "uciOnPUSCH");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "uciOnPUSCH");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
uci_on_pusch_c_ uci_on_pusch;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-v1430 ::= SEQUENCE
struct pusch_cfg_ded_v1430_s {
bool ce_pusch_nb_max_tbs_r14_present = false;
bool ce_pusch_max_bw_r14_present = false;
bool tdd_pusch_up_pts_r14_present = false;
bool enable256_qam_r14_present = false;
tdd_pusch_up_pts_r14_c tdd_pusch_up_pts_r14;
bool ul_dmrs_ifdma_r14 = false;
enable256_qam_r14_c enable256_qam_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicated-v1530 ::= SEQUENCE
struct pusch_cfg_ded_v1530_s {
struct ce_pusch_flex_start_prb_alloc_cfg_r15_c_ {
struct setup_s_ {
bool offset_ce_mode_b_r15_present = false;
int8_t offset_ce_mode_b_r15 = -1;
};
typedef setup_e types;
// choice methods
ce_pusch_flex_start_prb_alloc_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ce-PUSCH-FlexibleStartPRB-AllocConfig-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct ce_pusch_sub_prb_cfg_r15_c_ {
struct setup_s_ {
bool location_ce_mode_b_r15_present = false;
uint8_t location_ce_mode_b_r15 = 0;
uint8_t six_tone_cyclic_shift_r15 = 0;
uint8_t three_tone_cyclic_shift_r15 = 0;
};
typedef setup_e types;
// choice methods
ce_pusch_sub_prb_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "ce-PUSCH-SubPRB-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ce-PUSCH-SubPRB-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ce_pusch_sub_prb_cfg_r15_present = false;
ce_pusch_flex_start_prb_alloc_cfg_r15_c_ ce_pusch_flex_start_prb_alloc_cfg_r15;
ce_pusch_sub_prb_cfg_r15_c_ ce_pusch_sub_prb_cfg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-EnhancementsConfig-r14 ::= CHOICE
struct pusch_enhance_cfg_r14_c {
struct setup_s_ {
struct interv_ul_hop_pusch_enh_r14_c_ {
struct interv_fdd_pusch_enh_r14_opts {
enum options { int1, int2, int4, int8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_fdd_pusch_enh_r14_opts> interv_fdd_pusch_enh_r14_e_;
struct interv_tdd_pusch_enh_r14_opts {
enum options { int1, int5, int10, int20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<interv_tdd_pusch_enh_r14_opts> interv_tdd_pusch_enh_r14_e_;
struct types_opts {
enum options { interv_fdd_pusch_enh_r14, interv_tdd_pusch_enh_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
interv_ul_hop_pusch_enh_r14_c_() = default;
interv_ul_hop_pusch_enh_r14_c_(const interv_ul_hop_pusch_enh_r14_c_& other);
interv_ul_hop_pusch_enh_r14_c_& operator=(const interv_ul_hop_pusch_enh_r14_c_& other);
~interv_ul_hop_pusch_enh_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
interv_fdd_pusch_enh_r14_e_& interv_fdd_pusch_enh_r14()
{
assert_choice_type("interval-FDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14");
return c.get<interv_fdd_pusch_enh_r14_e_>();
}
interv_tdd_pusch_enh_r14_e_& interv_tdd_pusch_enh_r14()
{
assert_choice_type("interval-TDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14");
return c.get<interv_tdd_pusch_enh_r14_e_>();
}
const interv_fdd_pusch_enh_r14_e_& interv_fdd_pusch_enh_r14() const
{
assert_choice_type("interval-FDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14");
return c.get<interv_fdd_pusch_enh_r14_e_>();
}
const interv_tdd_pusch_enh_r14_e_& interv_tdd_pusch_enh_r14() const
{
assert_choice_type("interval-TDD-PUSCH-Enh-r14", type_.to_string(), "interval-ULHoppingPUSCH-Enh-r14");
return c.get<interv_tdd_pusch_enh_r14_e_>();
}
interv_fdd_pusch_enh_r14_e_& set_interv_fdd_pusch_enh_r14()
{
set(types::interv_fdd_pusch_enh_r14);
return c.get<interv_fdd_pusch_enh_r14_e_>();
}
interv_tdd_pusch_enh_r14_e_& set_interv_tdd_pusch_enh_r14()
{
set(types::interv_tdd_pusch_enh_r14);
return c.get<interv_tdd_pusch_enh_r14_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool pusch_hop_offset_pusch_enh_r14_present = false;
bool interv_ul_hop_pusch_enh_r14_present = false;
uint8_t pusch_hop_offset_pusch_enh_r14 = 1;
interv_ul_hop_pusch_enh_r14_c_ interv_ul_hop_pusch_enh_r14;
};
typedef setup_e types;
// choice methods
pusch_enhance_cfg_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "PUSCH-EnhancementsConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "PUSCH-EnhancementsConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// PeriodicBSR-Timer-r12 ::= ENUMERATED
struct periodic_bsr_timer_r12_opts {
enum options {
sf5,
sf10,
sf16,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf320,
sf640,
sf1280,
sf2560,
infinity,
spare1,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<periodic_bsr_timer_r12_opts> periodic_bsr_timer_r12_e;
// PhysicalConfigDedicatedSTTI-r15 ::= CHOICE
struct phys_cfg_ded_stti_r15_c {
struct setup_s_ {
bool ant_info_ded_stti_r15_present = false;
bool ant_info_ul_stti_r15_present = false;
bool pucch_cfg_ded_v1530_present = false;
bool sched_request_cfg_v1530_present = false;
bool ul_pwr_ctrl_ded_stti_r15_present = false;
bool cqi_report_cfg_r15_present = false;
bool csi_rs_cfg_r15_present = false;
bool csi_rs_cfg_nzp_to_release_list_r15_present = false;
bool csi_rs_cfg_nzp_to_add_mod_list_r15_present = false;
bool csi_rs_cfg_zp_to_release_list_r15_present = false;
bool csi_rs_cfg_zp_to_add_mod_list_r11_present = false;
bool csi_rs_cfg_zp_ap_list_r15_present = false;
bool eimta_main_cfg_r12_present = false;
bool eimta_main_cfg_serv_cell_r15_present = false;
bool slot_or_subslot_pdsch_cfg_r15_present = false;
bool slot_or_subslot_pusch_cfg_r15_present = false;
bool spdcch_cfg_r15_present = false;
bool spucch_cfg_r15_present = false;
bool short_tti_r15_present = false;
ant_info_ded_stti_r15_c ant_info_ded_stti_r15;
ant_info_ul_stti_r15_s ant_info_ul_stti_r15;
pucch_cfg_ded_v1530_s pucch_cfg_ded_v1530;
sched_request_cfg_v1530_c sched_request_cfg_v1530;
ul_pwr_ctrl_ded_stti_r15_s ul_pwr_ctrl_ded_stti_r15;
cqi_report_cfg_r15_c cqi_report_cfg_r15;
csi_rs_cfg_r15_c csi_rs_cfg_r15;
csi_rs_cfg_nzp_to_release_list_r15_l csi_rs_cfg_nzp_to_release_list_r15;
csi_rs_cfg_nzp_to_add_mod_list_r15_l csi_rs_cfg_nzp_to_add_mod_list_r15;
csi_rs_cfg_zp_to_release_list_r11_l csi_rs_cfg_zp_to_release_list_r15;
csi_rs_cfg_zp_to_add_mod_list_r11_l csi_rs_cfg_zp_to_add_mod_list_r11;
csi_rs_cfg_zp_ap_list_r14_c csi_rs_cfg_zp_ap_list_r15;
eimta_main_cfg_r12_c eimta_main_cfg_r12;
eimta_main_cfg_serv_cell_r12_c eimta_main_cfg_serv_cell_r15;
bool semi_open_loop_stti_r15 = false;
slot_or_subslot_pdsch_cfg_r15_c slot_or_subslot_pdsch_cfg_r15;
slot_or_subslot_pusch_cfg_r15_c slot_or_subslot_pusch_cfg_r15;
spdcch_cfg_r15_c spdcch_cfg_r15;
spucch_cfg_r15_c spucch_cfg_r15;
bool srs_dci7_trigger_cfg_r15 = false;
bool short_processing_time_r15 = false;
short_tti_r15_s short_tti_r15;
};
typedef setup_e types;
// choice methods
phys_cfg_ded_stti_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "PhysicalConfigDedicatedSTTI-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "PhysicalConfigDedicatedSTTI-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReject-v1130-IEs ::= SEQUENCE
struct rrc_conn_reject_v1130_ies_s {
struct depriorit_req_r11_s_ {
struct depriorit_type_r11_opts {
enum options { freq, e_utra, nulltype } value;
std::string to_string() const;
};
typedef enumerated<depriorit_type_r11_opts> depriorit_type_r11_e_;
struct depriorit_timer_r11_opts {
enum options { min5, min10, min15, min30, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<depriorit_timer_r11_opts> depriorit_timer_r11_e_;
// member variables
depriorit_type_r11_e_ depriorit_type_r11;
depriorit_timer_r11_e_ depriorit_timer_r11;
};
// member variables
bool depriorit_req_r11_present = false;
bool non_crit_ext_present = false;
depriorit_req_r11_s_ depriorit_req_r11;
rrc_conn_reject_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RetxBSR-Timer-r12 ::= ENUMERATED
struct retx_bsr_timer_r12_opts {
enum options { sf320, sf640, sf1280, sf2560, sf5120, sf10240, spare2, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<retx_bsr_timer_r12_opts> retx_bsr_timer_r12_e;
// SPS-ConfigDL ::= CHOICE
struct sps_cfg_dl_c {
struct setup_s_ {
struct semi_persist_sched_interv_dl_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf320,
sf640,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_dl_opts> semi_persist_sched_interv_dl_e_;
struct two_ant_port_activ_r10_c_ {
struct setup_s_ {
n1_pucch_an_persistent_list_l n1_pucch_an_persistent_list_p1_r10;
};
typedef setup_e types;
// choice methods
two_ant_port_activ_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
semi_persist_sched_interv_dl_e_ semi_persist_sched_interv_dl;
uint8_t nof_conf_sps_processes = 1;
n1_pucch_an_persistent_list_l n1_pucch_an_persistent_list;
// ...
// group 0
copy_ptr<two_ant_port_activ_r10_c_> two_ant_port_activ_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
typedef setup_e types;
// choice methods
sps_cfg_dl_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SPS-ConfigSL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..8)) OF SPS-ConfigSL-r14
using sps_cfg_sl_to_add_mod_list_r14_l = dyn_array<sps_cfg_sl_r14_s>;
// SPS-ConfigSL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..8)
using sps_cfg_sl_to_release_list_r14_l = bounded_array<uint8_t, 8>;
// SPS-ConfigUL-STTI-ToAddModList-r15 ::= SEQUENCE (SIZE (1..6)) OF SPS-ConfigUL-STTI-r15
using sps_cfg_ul_stti_to_add_mod_list_r15_l = dyn_array<sps_cfg_ul_stti_r15_c>;
// SPS-ConfigUL-STTI-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..6)) OF INTEGER (1..6)
using sps_cfg_ul_stti_to_release_list_r15_l = bounded_array<uint8_t, 6>;
// SPS-ConfigUL-ToAddModList-r14 ::= SEQUENCE (SIZE (1..8)) OF SPS-ConfigUL
using sps_cfg_ul_to_add_mod_list_r14_l = dyn_array<sps_cfg_ul_c>;
// SPS-ConfigUL-ToAddModList-r15 ::= SEQUENCE (SIZE (1..6)) OF SPS-ConfigUL
using sps_cfg_ul_to_add_mod_list_r15_l = dyn_array<sps_cfg_ul_c>;
// SPS-ConfigUL-ToReleaseList-r14 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..8)
using sps_cfg_ul_to_release_list_r14_l = bounded_array<uint8_t, 8>;
// SPS-ConfigUL-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..6)) OF INTEGER (1..6)
using sps_cfg_ul_to_release_list_r15_l = bounded_array<uint8_t, 6>;
// SRB-ToAddMod ::= SEQUENCE
struct srb_to_add_mod_s {
struct rlc_cfg_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
rlc_cfg_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rlc_cfg_c& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "rlc-Config");
return c;
}
const rlc_cfg_c& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "rlc-Config");
return c;
}
rlc_cfg_c& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
rlc_cfg_c c;
};
struct lc_ch_cfg_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
lc_ch_cfg_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
lc_ch_cfg_s& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig");
return c;
}
const lc_ch_cfg_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "logicalChannelConfig");
return c;
}
lc_ch_cfg_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
lc_ch_cfg_s c;
};
// member variables
bool ext = false;
bool rlc_cfg_present = false;
bool lc_ch_cfg_present = false;
uint8_t srb_id = 1;
rlc_cfg_c_ rlc_cfg;
lc_ch_cfg_c_ lc_ch_cfg;
// ...
// group 0
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;
uint8_t srb_id_v1530 = 4;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SRS-TPC-PDCCH-Config-r14 ::= CHOICE
struct srs_tpc_pdcch_cfg_r14_c {
struct setup_s_ {
using srs_cc_set_idxlist_r14_l_ = dyn_array<srs_cc_set_idx_r14_s>;
// member variables
bool srs_cc_set_idxlist_r14_present = false;
fixed_bitstring<16> srs_tpc_rnti_r14;
uint8_t start_bit_of_format3_b_r14 = 0;
uint8_t field_type_format3_b_r14 = 1;
srs_cc_set_idxlist_r14_l_ srs_cc_set_idxlist_r14;
};
typedef setup_e types;
// choice methods
srs_tpc_pdcch_cfg_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SRS-TPC-PDCCH-Config-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SRS-TPC-PDCCH-Config-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// STAG-ToAddModList-r11 ::= SEQUENCE (SIZE (1..3)) OF STAG-ToAddMod-r11
using stag_to_add_mod_list_r11_l = dyn_array<stag_to_add_mod_r11_s>;
// STAG-ToReleaseList-r11 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (1..3)
using stag_to_release_list_r11_l = bounded_array<uint8_t, 3>;
// SchedulingRequestConfig ::= CHOICE
struct sched_request_cfg_c {
struct setup_s_ {
struct dsr_trans_max_opts {
enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dsr_trans_max_opts> dsr_trans_max_e_;
// member variables
uint16_t sr_pucch_res_idx = 0;
uint8_t sr_cfg_idx = 0;
dsr_trans_max_e_ dsr_trans_max;
};
typedef setup_e types;
// choice methods
sched_request_cfg_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfig");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SchedulingRequestConfig-v1020 ::= SEQUENCE
struct sched_request_cfg_v1020_s {
bool sr_pucch_res_idx_p1_r10_present = false;
uint16_t sr_pucch_res_idx_p1_r10 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SoundingRS-UL-ConfigDedicated ::= CHOICE
struct srs_ul_cfg_ded_c {
struct setup_s_ {
struct srs_bw_opts {
enum options { bw0, bw1, bw2, bw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_bw_opts> srs_bw_e_;
struct srs_hop_bw_opts {
enum options { hbw0, hbw1, hbw2, hbw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_hop_bw_opts> srs_hop_bw_e_;
struct cyclic_shift_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_opts> cyclic_shift_e_;
// member variables
srs_bw_e_ srs_bw;
srs_hop_bw_e_ srs_hop_bw;
uint8_t freq_domain_position = 0;
bool dur = false;
uint16_t srs_cfg_idx = 0;
uint8_t tx_comb = 0;
cyclic_shift_e_ cyclic_shift;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-UL-ConfigDedicated-v1020 ::= SEQUENCE
struct srs_ul_cfg_ded_v1020_s {
srs_ant_port_e srs_ant_port_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SoundingRS-UL-ConfigDedicated-v1310 ::= CHOICE
struct srs_ul_cfg_ded_v1310_c {
struct setup_s_ {
struct cyclic_shift_v1310_opts {
enum options { cs8, cs9, cs10, cs11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_v1310_opts> cyclic_shift_v1310_e_;
struct tx_comb_num_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_comb_num_r13_opts> tx_comb_num_r13_e_;
// member variables
bool tx_comb_v1310_present = false;
bool cyclic_shift_v1310_present = false;
bool tx_comb_num_r13_present = false;
uint8_t tx_comb_v1310 = 2;
cyclic_shift_v1310_e_ cyclic_shift_v1310;
tx_comb_num_r13_e_ tx_comb_num_r13;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_v1310_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated-v1310");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicated-v1310");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-UL-ConfigDedicatedAperiodic-r10 ::= CHOICE
struct srs_ul_cfg_ded_aperiodic_r10_c {
struct setup_s_ {
using srs_cfg_ap_dci_format4_r10_l_ = dyn_array<srs_cfg_ap_r10_s>;
struct srs_activ_ap_r10_c_ {
struct setup_s_ {
bool ext = false;
srs_cfg_ap_r10_s srs_cfg_ap_dci_format0_r10;
srs_cfg_ap_r10_s srs_cfg_ap_dci_format1a2b2c_r10;
// ...
};
typedef setup_e types;
// choice methods
srs_activ_ap_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool srs_cfg_ap_dci_format4_r10_present = false;
bool srs_activ_ap_r10_present = false;
uint8_t srs_cfg_idx_ap_r10 = 0;
srs_cfg_ap_dci_format4_r10_l_ srs_cfg_ap_dci_format4_r10;
srs_activ_ap_r10_c_ srs_activ_ap_r10;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_aperiodic_r10_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-UL-ConfigDedicatedAperiodic-v1310 ::= CHOICE
struct srs_ul_cfg_ded_aperiodic_v1310_c {
struct setup_s_ {
using srs_cfg_ap_dci_format4_v1310_l_ = dyn_array<srs_cfg_ap_v1310_s>;
struct srs_activ_ap_v1310_c_ {
struct setup_s_ {
bool srs_cfg_ap_dci_format0_v1310_present = false;
bool srs_cfg_ap_dci_format1a2b2c_v1310_present = false;
srs_cfg_ap_v1310_s srs_cfg_ap_dci_format0_v1310;
srs_cfg_ap_v1310_s srs_cfg_ap_dci_format1a2b2c_v1310;
};
typedef setup_e types;
// choice methods
srs_activ_ap_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-v1310");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-v1310");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool srs_cfg_ap_dci_format4_v1310_present = false;
bool srs_activ_ap_v1310_present = false;
srs_cfg_ap_dci_format4_v1310_l_ srs_cfg_ap_dci_format4_v1310;
srs_activ_ap_v1310_c_ srs_activ_ap_v1310;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_aperiodic_v1310_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1310");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1310");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13 ::= CHOICE
struct srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c {
struct setup_s_ {
struct srs_up_pts_add_r13_opts {
enum options { sym2, sym4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_up_pts_add_r13_opts> srs_up_pts_add_r13_e_;
using srs_cfg_ap_dci_format4_r13_l_ = dyn_array<srs_cfg_ap_r13_s>;
struct srs_activ_ap_r13_c_ {
struct setup_s_ {
srs_cfg_ap_r13_s srs_cfg_ap_dci_format0_r13;
srs_cfg_ap_r13_s srs_cfg_ap_dci_format1a2b2c_r13;
};
typedef setup_e types;
// choice methods
srs_activ_ap_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "srs-ActivateAp-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool srs_cfg_ap_dci_format4_r13_present = false;
bool srs_activ_ap_r13_present = false;
srs_up_pts_add_r13_e_ srs_up_pts_add_r13;
uint8_t srs_cfg_idx_ap_r13 = 0;
srs_cfg_ap_dci_format4_r13_l_ srs_cfg_ap_dci_format4_r13;
srs_activ_ap_r13_c_ srs_activ_ap_r13;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-UL-ConfigDedicatedUpPTsExt-r13 ::= CHOICE
struct srs_ul_cfg_ded_up_pts_ext_r13_c {
struct setup_s_ {
struct srs_up_pts_add_r13_opts {
enum options { sym2, sym4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_up_pts_add_r13_opts> srs_up_pts_add_r13_e_;
struct srs_bw_r13_opts {
enum options { bw0, bw1, bw2, bw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_bw_r13_opts> srs_bw_r13_e_;
struct srs_hop_bw_r13_opts {
enum options { hbw0, hbw1, hbw2, hbw3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<srs_hop_bw_r13_opts> srs_hop_bw_r13_e_;
struct cyclic_shift_r13_opts {
enum options { cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, cs8, cs9, cs10, cs11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cyclic_shift_r13_opts> cyclic_shift_r13_e_;
struct tx_comb_num_r13_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_comb_num_r13_opts> tx_comb_num_r13_e_;
// member variables
srs_up_pts_add_r13_e_ srs_up_pts_add_r13;
srs_bw_r13_e_ srs_bw_r13;
srs_hop_bw_r13_e_ srs_hop_bw_r13;
uint8_t freq_domain_position_r13 = 0;
bool dur_r13 = false;
uint16_t srs_cfg_idx_r13 = 0;
uint8_t tx_comb_r13 = 0;
cyclic_shift_r13_e_ cyclic_shift_r13;
srs_ant_port_e srs_ant_port_r13;
tx_comb_num_r13_e_ tx_comb_num_r13;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_up_pts_ext_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedUpPTsExt-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// UplinkPowerControlDedicated ::= SEQUENCE
struct ul_pwr_ctrl_ded_s {
struct delta_mcs_enabled_opts {
enum options { en0, en1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_mcs_enabled_opts> delta_mcs_enabled_e_;
// member variables
bool filt_coef_present = false;
int8_t p0_ue_pusch = -8;
delta_mcs_enabled_e_ delta_mcs_enabled;
bool accumulation_enabled = false;
int8_t p0_ue_pucch = -8;
uint8_t psrs_offset = 0;
filt_coef_e filt_coef;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicated-v1020 ::= SEQUENCE
struct ul_pwr_ctrl_ded_v1020_s {
bool delta_tx_d_offset_list_pucch_r10_present = false;
bool psrs_offset_ap_r10_present = false;
delta_tx_d_offset_list_pucch_r10_s delta_tx_d_offset_list_pucch_r10;
uint8_t psrs_offset_ap_r10 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicated-v1130 ::= SEQUENCE
struct ul_pwr_ctrl_ded_v1130_s {
bool psrs_offset_v1130_present = false;
bool psrs_offset_ap_v1130_present = false;
bool delta_tx_d_offset_list_pucch_v1130_present = false;
uint8_t psrs_offset_v1130 = 16;
uint8_t psrs_offset_ap_v1130 = 16;
delta_tx_d_offset_list_pucch_v1130_s delta_tx_d_offset_list_pucch_v1130;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicated-v1250 ::= SEQUENCE
struct ul_pwr_ctrl_ded_v1250_s {
struct set2_pwr_ctrl_param_c_ {
struct setup_s_ {
fixed_bitstring<10> tpc_sf_set_r12;
int8_t p0_nominal_pusch_sf_set2_r12 = -126;
alpha_r12_e alpha_sf_set2_r12;
int8_t p0_ue_pusch_sf_set2_r12 = -8;
};
typedef setup_e types;
// choice methods
set2_pwr_ctrl_param_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "set2PowerControlParameter");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "set2PowerControlParameter");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
set2_pwr_ctrl_param_c_ set2_pwr_ctrl_param;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicated-v1530 ::= SEQUENCE
struct ul_pwr_ctrl_ded_v1530_s {
bool alpha_ue_r15_present = false;
bool p0_ue_pusch_r15_present = false;
alpha_r12_e alpha_ue_r15;
int8_t p0_ue_pusch_r15 = -16;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandClassPriorityList1XRTT ::= SEQUENCE (SIZE (1..32)) OF BandClassPriority1XRTT
using band_class_prio_list1_xrtt_l = dyn_array<band_class_prio1_xrtt_s>;
// BandClassPriorityListHRPD ::= SEQUENCE (SIZE (1..32)) OF BandClassPriorityHRPD
using band_class_prio_list_hrpd_l = dyn_array<band_class_prio_hrpd_s>;
// CarrierFreqCDMA2000 ::= SEQUENCE
struct carrier_freq_cdma2000_s {
bandclass_cdma2000_e band_class;
uint16_t arfcn = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..6)) OF INTEGER (0..16383)
using carrier_freq_list_utra_tdd_r10_l = bounded_array<uint16_t, 6>;
// DRB-ToAddModList ::= SEQUENCE (SIZE (1..11)) OF DRB-ToAddMod
using drb_to_add_mod_list_l = dyn_array<drb_to_add_mod_s>;
// DRB-ToAddModList-r15 ::= SEQUENCE (SIZE (1..15)) OF DRB-ToAddMod
using drb_to_add_mod_list_r15_l = dyn_array<drb_to_add_mod_s>;
// DRB-ToReleaseList ::= SEQUENCE (SIZE (1..11)) OF INTEGER (1..32)
using drb_to_release_list_l = bounded_array<uint8_t, 11>;
// DRB-ToReleaseList-r15 ::= SEQUENCE (SIZE (1..15)) OF INTEGER (1..32)
using drb_to_release_list_r15_l = bounded_array<uint8_t, 15>;
// FreqPriorityEUTRA-v9e0 ::= SEQUENCE
struct freq_prio_eutra_v9e0_s {
bool carrier_freq_v9e0_present = false;
uint32_t carrier_freq_v9e0 = 65536;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqPriorityListEUTRA ::= SEQUENCE (SIZE (1..8)) OF FreqPriorityEUTRA
using freq_prio_list_eutra_l = dyn_array<freq_prio_eutra_s>;
// FreqPriorityListEUTRA-v1310 ::= SEQUENCE (SIZE (1..8)) OF FreqPriorityEUTRA-v1310
using freq_prio_list_eutra_v1310_l = dyn_array<freq_prio_eutra_v1310_s>;
// FreqPriorityListExtEUTRA-r12 ::= SEQUENCE (SIZE (1..8)) OF FreqPriorityEUTRA-r12
using freq_prio_list_ext_eutra_r12_l = dyn_array<freq_prio_eutra_r12_s>;
// FreqPriorityListExtEUTRA-v1310 ::= SEQUENCE (SIZE (1..8)) OF FreqPriorityEUTRA-v1310
using freq_prio_list_ext_eutra_v1310_l = dyn_array<freq_prio_eutra_v1310_s>;
// FreqPriorityListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF FreqPriorityNR-r15
using freq_prio_list_nr_r15_l = dyn_array<freq_prio_nr_r15_s>;
// FreqPriorityListUTRA-FDD ::= SEQUENCE (SIZE (1..16)) OF FreqPriorityUTRA-FDD
using freq_prio_list_utra_fdd_l = dyn_array<freq_prio_utra_fdd_s>;
// FreqPriorityListUTRA-TDD ::= SEQUENCE (SIZE (1..16)) OF FreqPriorityUTRA-TDD
using freq_prio_list_utra_tdd_l = dyn_array<freq_prio_utra_tdd_s>;
// FreqsPriorityListGERAN ::= SEQUENCE (SIZE (1..16)) OF FreqsPriorityGERAN
using freqs_prio_list_geran_l = dyn_array<freqs_prio_geran_s>;
// MAC-MainConfig ::= SEQUENCE
struct mac_main_cfg_s {
struct ul_sch_cfg_s_ {
struct max_harq_tx_opts {
enum options { n1, n2, n3, n4, n5, n6, n7, n8, n10, n12, n16, n20, n24, n28, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_harq_tx_opts> max_harq_tx_e_;
// member variables
bool max_harq_tx_present = false;
bool periodic_bsr_timer_present = false;
max_harq_tx_e_ max_harq_tx;
periodic_bsr_timer_r12_e periodic_bsr_timer;
retx_bsr_timer_r12_e retx_bsr_timer;
bool tti_bundling = false;
};
struct phr_cfg_c_ {
struct setup_s_ {
struct periodic_phr_timer_opts {
enum options { sf10, sf20, sf50, sf100, sf200, sf500, sf1000, infinity, nulltype } value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<periodic_phr_timer_opts> periodic_phr_timer_e_;
struct prohibit_phr_timer_opts {
enum options { sf0, sf10, sf20, sf50, sf100, sf200, sf500, sf1000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<prohibit_phr_timer_opts> prohibit_phr_timer_e_;
struct dl_pathloss_change_opts {
enum options { db1, db3, db6, infinity, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<dl_pathloss_change_opts> dl_pathloss_change_e_;
// member variables
periodic_phr_timer_e_ periodic_phr_timer;
prohibit_phr_timer_e_ prohibit_phr_timer;
dl_pathloss_change_e_ dl_pathloss_change;
};
typedef setup_e types;
// choice methods
phr_cfg_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "phr-Config");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "phr-Config");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct mac_main_cfg_v1020_s_ {
struct scell_deactivation_timer_r10_opts {
enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<scell_deactivation_timer_r10_opts> scell_deactivation_timer_r10_e_;
// member variables
bool scell_deactivation_timer_r10_present = false;
bool extended_bsr_sizes_r10_present = false;
bool extended_phr_r10_present = false;
scell_deactivation_timer_r10_e_ scell_deactivation_timer_r10;
};
struct dual_connect_phr_c_ {
struct setup_s_ {
struct phr_mode_other_cg_r12_opts {
enum options { real, virtual_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<phr_mode_other_cg_r12_opts> phr_mode_other_cg_r12_e_;
// member variables
phr_mode_other_cg_r12_e_ phr_mode_other_cg_r12;
};
typedef setup_e types;
// choice methods
dual_connect_phr_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "dualConnectivityPHR");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "dualConnectivityPHR");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct lc_ch_sr_cfg_r12_c_ {
struct setup_s_ {
struct lc_ch_sr_prohibit_timer_r12_opts {
enum options { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<lc_ch_sr_prohibit_timer_r12_opts> lc_ch_sr_prohibit_timer_r12_e_;
// member variables
lc_ch_sr_prohibit_timer_r12_e_ lc_ch_sr_prohibit_timer_r12;
};
typedef setup_e types;
// choice methods
lc_ch_sr_cfg_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "logicalChannelSR-Config-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct edrx_cfg_cycle_start_offset_r13_c_ {
struct setup_c_ {
struct types_opts {
enum options { sf5120, sf10240, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf5120()
{
assert_choice_type("sf5120", type_.to_string(), "setup");
return c.get<uint8_t>();
}
uint8_t& sf10240()
{
assert_choice_type("sf10240", type_.to_string(), "setup");
return c.get<uint8_t>();
}
const uint8_t& sf5120() const
{
assert_choice_type("sf5120", type_.to_string(), "setup");
return c.get<uint8_t>();
}
const uint8_t& sf10240() const
{
assert_choice_type("sf10240", type_.to_string(), "setup");
return c.get<uint8_t>();
}
uint8_t& set_sf5120()
{
set(types::sf5120);
return c.get<uint8_t>();
}
uint8_t& set_sf10240()
{
set(types::sf10240);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
typedef setup_e types;
// choice methods
edrx_cfg_cycle_start_offset_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "eDRX-Config-CycleStartOffset-r13");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "eDRX-Config-CycleStartOffset-r13");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct drx_cfg_r13_c_ {
typedef setup_e types;
// choice methods
drx_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
drx_cfg_r13_s& setup()
{
assert_choice_type("setup", type_.to_string(), "drx-Config-r13");
return c;
}
const drx_cfg_r13_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "drx-Config-r13");
return c;
}
drx_cfg_r13_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
drx_cfg_r13_s c;
};
struct skip_ul_tx_r14_c_ {
struct setup_s_ {
bool skip_ul_tx_sps_r14_present = false;
bool skip_ul_tx_dynamic_r14_present = false;
};
typedef setup_e types;
// choice methods
skip_ul_tx_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "skipUplinkTx-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "skipUplinkTx-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct data_inactivity_timer_cfg_r14_c_ {
struct setup_s_ {
data_inactivity_timer_r14_e data_inactivity_timer_r14;
};
typedef setup_e types;
// choice methods
data_inactivity_timer_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "dataInactivityTimerConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct short_tti_and_spt_r15_c_ {
struct setup_s_ {
struct periodic_bsr_timer_r15_opts {
enum options {
sf1,
sf5,
sf10,
sf16,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf320,
sf640,
sf1280,
sf2560,
infinity,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<periodic_bsr_timer_r15_opts> periodic_bsr_timer_r15_e_;
struct proc_timeline_r15_opts {
enum options { nplus4set1, nplus6set1, nplus6set2, nplus8set2, nulltype } value;
std::string to_string() const;
};
typedef enumerated<proc_timeline_r15_opts> proc_timeline_r15_e_;
// member variables
bool drx_cfg_r15_present = false;
bool periodic_bsr_timer_r15_present = false;
bool proc_timeline_r15_present = false;
bool ssr_prohibit_timer_r15_present = false;
drx_cfg_r15_s drx_cfg_r15;
periodic_bsr_timer_r15_e_ periodic_bsr_timer_r15;
proc_timeline_r15_e_ proc_timeline_r15;
uint8_t ssr_prohibit_timer_r15 = 0;
};
typedef setup_e types;
// choice methods
short_tti_and_spt_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "shortTTI-AndSPT-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "shortTTI-AndSPT-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct dormant_state_timers_r15_c_ {
struct setup_s_ {
struct scell_hibernation_timer_r15_opts {
enum options { rf2, rf4, rf8, rf16, rf32, rf64, rf128, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<scell_hibernation_timer_r15_opts> scell_hibernation_timer_r15_e_;
struct dormant_scell_deactivation_timer_r15_opts {
enum options {
rf2,
rf4,
rf8,
rf16,
rf32,
rf64,
rf128,
rf320,
rf640,
rf1280,
rf2560,
rf5120,
rf10240,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<dormant_scell_deactivation_timer_r15_opts> dormant_scell_deactivation_timer_r15_e_;
// member variables
bool scell_hibernation_timer_r15_present = false;
bool dormant_scell_deactivation_timer_r15_present = false;
scell_hibernation_timer_r15_e_ scell_hibernation_timer_r15;
dormant_scell_deactivation_timer_r15_e_ dormant_scell_deactivation_timer_r15;
};
typedef setup_e types;
// choice methods
dormant_state_timers_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "dormantStateTimers-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "dormantStateTimers-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool ul_sch_cfg_present = false;
bool drx_cfg_present = false;
bool phr_cfg_present = false;
ul_sch_cfg_s_ ul_sch_cfg;
drx_cfg_c drx_cfg;
time_align_timer_e time_align_timer_ded;
phr_cfg_c_ phr_cfg;
// ...
// group 0
bool sr_prohibit_timer_r9_present = false;
uint8_t sr_prohibit_timer_r9 = 0;
// group 1
copy_ptr<mac_main_cfg_v1020_s_> mac_main_cfg_v1020;
// group 2
copy_ptr<stag_to_release_list_r11_l> stag_to_release_list_r11;
copy_ptr<stag_to_add_mod_list_r11_l> stag_to_add_mod_list_r11;
copy_ptr<drx_cfg_v1130_s> drx_cfg_v1130;
// group 3
bool e_harq_pattern_r12_present = false;
bool e_harq_pattern_r12 = false;
copy_ptr<dual_connect_phr_c_> dual_connect_phr;
copy_ptr<lc_ch_sr_cfg_r12_c_> lc_ch_sr_cfg_r12;
// group 4
bool extended_phr2_r13_present = false;
copy_ptr<drx_cfg_v1310_s> drx_cfg_v1310;
bool extended_phr2_r13 = false;
copy_ptr<edrx_cfg_cycle_start_offset_r13_c_> edrx_cfg_cycle_start_offset_r13;
// group 5
copy_ptr<drx_cfg_r13_c_> drx_cfg_r13;
// group 6
copy_ptr<skip_ul_tx_r14_c_> skip_ul_tx_r14;
copy_ptr<data_inactivity_timer_cfg_r14_c_> data_inactivity_timer_cfg_r14;
// group 7
bool rai_activation_r14_present = false;
// group 8
bool mpdcch_ul_harq_ack_feedback_cfg_r15_present = false;
copy_ptr<short_tti_and_spt_r15_c_> short_tti_and_spt_r15;
bool mpdcch_ul_harq_ack_feedback_cfg_r15 = false;
copy_ptr<dormant_state_timers_r15_c_> dormant_state_timers_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasSubframePatternPCell-r10 ::= CHOICE
struct meas_sf_pattern_pcell_r10_c {
typedef setup_e types;
// choice methods
meas_sf_pattern_pcell_r10_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_sf_pattern_r10_c& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasSubframePatternPCell-r10");
return c;
}
const meas_sf_pattern_r10_c& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasSubframePatternPCell-r10");
return c;
}
meas_sf_pattern_r10_c& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
meas_sf_pattern_r10_c c;
};
// NAICS-AssistanceInfo-r12 ::= CHOICE
struct naics_assist_info_r12_c {
struct setup_s_ {
bool neigh_cells_to_release_list_r12_present = false;
bool neigh_cells_to_add_mod_list_r12_present = false;
bool serv_cellp_a_r12_present = false;
neigh_cells_to_release_list_r12_l neigh_cells_to_release_list_r12;
neigh_cells_to_add_mod_list_r12_l neigh_cells_to_add_mod_list_r12;
p_a_e serv_cellp_a_r12;
};
typedef setup_e types;
// choice methods
naics_assist_info_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "NAICS-AssistanceInfo-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "NAICS-AssistanceInfo-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// NeighCellsCRS-Info-r11 ::= CHOICE
struct neigh_cells_crs_info_r11_c {
typedef setup_e types;
// choice methods
neigh_cells_crs_info_r11_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_assist_info_list_r11_l& setup()
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r11");
return c;
}
const crs_assist_info_list_r11_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r11");
return c;
}
crs_assist_info_list_r11_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
crs_assist_info_list_r11_l c;
};
// NeighCellsCRS-Info-r13 ::= CHOICE
struct neigh_cells_crs_info_r13_c {
typedef setup_e types;
// choice methods
neigh_cells_crs_info_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_assist_info_list_r13_l& setup()
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r13");
return c;
}
const crs_assist_info_list_r13_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r13");
return c;
}
crs_assist_info_list_r13_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
crs_assist_info_list_r13_l c;
};
// NeighCellsCRS-Info-r15 ::= CHOICE
struct neigh_cells_crs_info_r15_c {
typedef setup_e types;
// choice methods
neigh_cells_crs_info_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_assist_info_list_r15_l& setup()
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r15");
return c;
}
const crs_assist_info_list_r15_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "NeighCellsCRS-Info-r15");
return c;
}
crs_assist_info_list_r15_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
crs_assist_info_list_r15_l c;
};
// PhysicalConfigDedicated ::= SEQUENCE
struct phys_cfg_ded_s {
struct ant_info_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ant_info_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ant_info_ded_s& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "antennaInfo");
return c;
}
const ant_info_ded_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "antennaInfo");
return c;
}
ant_info_ded_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
ant_info_ded_s c;
};
struct ant_info_r10_c_ {
struct types_opts {
enum options { explicit_value_r10, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ant_info_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ant_info_ded_r10_s& explicit_value_r10()
{
assert_choice_type("explicitValue-r10", type_.to_string(), "antennaInfo-r10");
return c;
}
const ant_info_ded_r10_s& explicit_value_r10() const
{
assert_choice_type("explicitValue-r10", type_.to_string(), "antennaInfo-r10");
return c;
}
ant_info_ded_r10_s& set_explicit_value_r10()
{
set(types::explicit_value_r10);
return c;
}
private:
types type_;
ant_info_ded_r10_s c;
};
struct add_spec_emission_ca_r10_c_ {
struct setup_s_ {
uint8_t add_spec_emission_pcell_r10 = 1;
};
typedef setup_e types;
// choice methods
add_spec_emission_ca_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "additionalSpectrumEmissionCA-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "additionalSpectrumEmissionCA-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct ce_mode_r13_c_ {
struct setup_opts {
enum options { ce_mode_a, ce_mode_b, nulltype } value;
std::string to_string() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
ce_mode_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "ce-Mode-r13");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "ce-Mode-r13");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
struct type_a_srs_tpc_pdcch_group_r14_c_ {
using setup_l_ = dyn_array<srs_tpc_pdcch_cfg_r14_c>;
typedef setup_e types;
// choice methods
type_a_srs_tpc_pdcch_group_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_l_& setup()
{
assert_choice_type("setup", type_.to_string(), "typeA-SRS-TPC-PDCCH-Group-r14");
return c;
}
const setup_l_& setup() const
{
assert_choice_type("setup", type_.to_string(), "typeA-SRS-TPC-PDCCH-Group-r14");
return c;
}
setup_l_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_l_ c;
};
struct must_cfg_r14_c_ {
struct setup_s_ {
struct k_max_r14_opts {
enum options { l1, l3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<k_max_r14_opts> k_max_r14_e_;
struct p_a_must_r14_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_must_r14_opts> p_a_must_r14_e_;
// member variables
bool p_a_must_r14_present = false;
k_max_r14_e_ k_max_r14;
p_a_must_r14_e_ p_a_must_r14;
};
typedef setup_e types;
// choice methods
must_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "must-Config-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "must-Config-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
using srs_ul_periodic_cfg_ded_list_r14_l_ = dyn_array<srs_ul_cfg_ded_c>;
using srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_ = dyn_array<srs_ul_cfg_ded_up_pts_ext_r13_c>;
using srs_ul_aperiodic_cfg_ded_list_r14_l_ = dyn_array<srs_ul_cfg_ded_aperiodic_r10_c>;
using srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_ = dyn_array<srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c>;
struct semi_static_cfi_cfg_r15_c_ {
struct setup_c_ {
struct types_opts {
enum options { cfi_cfg_r15, cfi_pattern_cfg_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cfi_cfg_r15_s& cfi_cfg_r15()
{
assert_choice_type("cfi-Config-r15", type_.to_string(), "setup");
return c.get<cfi_cfg_r15_s>();
}
cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15()
{
assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup");
return c.get<cfi_pattern_cfg_r15_s>();
}
const cfi_cfg_r15_s& cfi_cfg_r15() const
{
assert_choice_type("cfi-Config-r15", type_.to_string(), "setup");
return c.get<cfi_cfg_r15_s>();
}
const cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() const
{
assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup");
return c.get<cfi_pattern_cfg_r15_s>();
}
cfi_cfg_r15_s& set_cfi_cfg_r15()
{
set(types::cfi_cfg_r15);
return c.get<cfi_cfg_r15_s>();
}
cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15()
{
set(types::cfi_pattern_cfg_r15);
return c.get<cfi_pattern_cfg_r15_s>();
}
private:
types type_;
choice_buffer_t<cfi_cfg_r15_s, cfi_pattern_cfg_r15_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
semi_static_cfi_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct blind_pdsch_repeat_cfg_r15_c_ {
struct setup_s_ {
struct max_num_sf_pdsch_repeats_r15_opts {
enum options { n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_sf_pdsch_repeats_r15_opts> max_num_sf_pdsch_repeats_r15_e_;
struct max_num_slot_subslot_pdsch_repeats_r15_opts {
enum options { n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_slot_subslot_pdsch_repeats_r15_opts> max_num_slot_subslot_pdsch_repeats_r15_e_;
struct rv_sf_pdsch_repeats_r15_opts {
enum options { dlrvseq1, dlrvseq2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_sf_pdsch_repeats_r15_opts> rv_sf_pdsch_repeats_r15_e_;
struct rv_slotsublot_pdsch_repeats_r15_opts {
enum options { dlrvseq1, dlrvseq2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_slotsublot_pdsch_repeats_r15_opts> rv_slotsublot_pdsch_repeats_r15_e_;
struct mcs_restrict_sf_pdsch_repeats_r15_opts {
enum options { n0, n1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mcs_restrict_sf_pdsch_repeats_r15_opts> mcs_restrict_sf_pdsch_repeats_r15_e_;
struct mcs_restrict_slot_subslot_pdsch_repeats_r15_opts {
enum options { n0, n1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mcs_restrict_slot_subslot_pdsch_repeats_r15_opts>
mcs_restrict_slot_subslot_pdsch_repeats_r15_e_;
// member variables
bool max_num_sf_pdsch_repeats_r15_present = false;
bool max_num_slot_subslot_pdsch_repeats_r15_present = false;
bool rv_sf_pdsch_repeats_r15_present = false;
bool rv_slotsublot_pdsch_repeats_r15_present = false;
bool nof_processes_sf_pdsch_repeats_r15_present = false;
bool nof_processes_slot_subslot_pdsch_repeats_r15_present = false;
bool mcs_restrict_sf_pdsch_repeats_r15_present = false;
bool mcs_restrict_slot_subslot_pdsch_repeats_r15_present = false;
bool blind_sf_pdsch_repeats_r15 = false;
bool blind_slot_subslot_pdsch_repeats_r15 = false;
max_num_sf_pdsch_repeats_r15_e_ max_num_sf_pdsch_repeats_r15;
max_num_slot_subslot_pdsch_repeats_r15_e_ max_num_slot_subslot_pdsch_repeats_r15;
rv_sf_pdsch_repeats_r15_e_ rv_sf_pdsch_repeats_r15;
rv_slotsublot_pdsch_repeats_r15_e_ rv_slotsublot_pdsch_repeats_r15;
uint8_t nof_processes_sf_pdsch_repeats_r15 = 1;
uint8_t nof_processes_slot_subslot_pdsch_repeats_r15 = 1;
mcs_restrict_sf_pdsch_repeats_r15_e_ mcs_restrict_sf_pdsch_repeats_r15;
mcs_restrict_slot_subslot_pdsch_repeats_r15_e_ mcs_restrict_slot_subslot_pdsch_repeats_r15;
};
typedef setup_e types;
// choice methods
blind_pdsch_repeat_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool pdsch_cfg_ded_present = false;
bool pucch_cfg_ded_present = false;
bool pusch_cfg_ded_present = false;
bool ul_pwr_ctrl_ded_present = false;
bool tpc_pdcch_cfg_pucch_present = false;
bool tpc_pdcch_cfg_pusch_present = false;
bool cqi_report_cfg_present = false;
bool srs_ul_cfg_ded_present = false;
bool ant_info_present = false;
bool sched_request_cfg_present = false;
pdsch_cfg_ded_s pdsch_cfg_ded;
pucch_cfg_ded_s pucch_cfg_ded;
pusch_cfg_ded_s pusch_cfg_ded;
ul_pwr_ctrl_ded_s ul_pwr_ctrl_ded;
tpc_pdcch_cfg_c tpc_pdcch_cfg_pucch;
tpc_pdcch_cfg_c tpc_pdcch_cfg_pusch;
cqi_report_cfg_s cqi_report_cfg;
srs_ul_cfg_ded_c srs_ul_cfg_ded;
ant_info_c_ ant_info;
sched_request_cfg_c sched_request_cfg;
// ...
// group 0
copy_ptr<cqi_report_cfg_v920_s> cqi_report_cfg_v920;
copy_ptr<ant_info_ded_v920_s> ant_info_v920;
// group 1
bool cif_presence_r10_present = false;
copy_ptr<ant_info_r10_c_> ant_info_r10;
copy_ptr<ant_info_ul_r10_s> ant_info_ul_r10;
bool cif_presence_r10 = false;
copy_ptr<cqi_report_cfg_r10_s> cqi_report_cfg_r10;
copy_ptr<csi_rs_cfg_r10_s> csi_rs_cfg_r10;
copy_ptr<pucch_cfg_ded_v1020_s> pucch_cfg_ded_v1020;
copy_ptr<pusch_cfg_ded_v1020_s> pusch_cfg_ded_v1020;
copy_ptr<sched_request_cfg_v1020_s> sched_request_cfg_v1020;
copy_ptr<srs_ul_cfg_ded_v1020_s> srs_ul_cfg_ded_v1020;
copy_ptr<srs_ul_cfg_ded_aperiodic_r10_c> srs_ul_cfg_ded_aperiodic_r10;
copy_ptr<ul_pwr_ctrl_ded_v1020_s> ul_pwr_ctrl_ded_v1020;
// group 2
copy_ptr<add_spec_emission_ca_r10_c_> add_spec_emission_ca_r10;
// group 3
copy_ptr<csi_rs_cfg_nzp_to_release_list_r11_l> csi_rs_cfg_nzp_to_release_list_r11;
copy_ptr<csi_rs_cfg_nzp_to_add_mod_list_r11_l> csi_rs_cfg_nzp_to_add_mod_list_r11;
copy_ptr<csi_rs_cfg_zp_to_release_list_r11_l> csi_rs_cfg_zp_to_release_list_r11;
copy_ptr<csi_rs_cfg_zp_to_add_mod_list_r11_l> csi_rs_cfg_zp_to_add_mod_list_r11;
copy_ptr<epdcch_cfg_r11_s> epdcch_cfg_r11;
copy_ptr<pdsch_cfg_ded_v1130_s> pdsch_cfg_ded_v1130;
copy_ptr<cqi_report_cfg_v1130_s> cqi_report_cfg_v1130;
copy_ptr<pucch_cfg_ded_v1130_s> pucch_cfg_ded_v1130;
copy_ptr<pusch_cfg_ded_v1130_s> pusch_cfg_ded_v1130;
copy_ptr<ul_pwr_ctrl_ded_v1130_s> ul_pwr_ctrl_ded_v1130;
// group 4
copy_ptr<ant_info_ded_v1250_s> ant_info_v1250;
copy_ptr<eimta_main_cfg_r12_c> eimta_main_cfg_r12;
copy_ptr<eimta_main_cfg_serv_cell_r12_c> eimta_main_cfg_pcell_r12;
copy_ptr<pucch_cfg_ded_v1250_s> pucch_cfg_ded_v1250;
copy_ptr<cqi_report_cfg_v1250_s> cqi_report_cfg_pcell_v1250;
copy_ptr<ul_pwr_ctrl_ded_v1250_s> ul_pwr_ctrl_ded_v1250;
copy_ptr<pusch_cfg_ded_v1250_s> pusch_cfg_ded_v1250;
copy_ptr<csi_rs_cfg_v1250_s> csi_rs_cfg_v1250;
// group 5
copy_ptr<pdsch_cfg_ded_v1280_s> pdsch_cfg_ded_v1280;
// group 6
copy_ptr<pdsch_cfg_ded_v1310_s> pdsch_cfg_ded_v1310;
copy_ptr<pucch_cfg_ded_r13_s> pucch_cfg_ded_r13;
copy_ptr<pusch_cfg_ded_r13_s> pusch_cfg_ded_r13;
copy_ptr<pdcch_candidate_reductions_r13_c> pdcch_candidate_reductions_r13;
copy_ptr<cqi_report_cfg_v1310_s> cqi_report_cfg_v1310;
copy_ptr<srs_ul_cfg_ded_v1310_c> srs_ul_cfg_ded_v1310;
copy_ptr<srs_ul_cfg_ded_up_pts_ext_r13_c> srs_ul_cfg_ded_up_pts_ext_r13;
copy_ptr<srs_ul_cfg_ded_aperiodic_v1310_c> srs_ul_cfg_ded_aperiodic_v1310;
copy_ptr<srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c> srs_ul_cfg_ded_aperiodic_up_pts_ext_r13;
copy_ptr<csi_rs_cfg_v1310_s> csi_rs_cfg_v1310;
copy_ptr<ce_mode_r13_c_> ce_mode_r13;
copy_ptr<csi_rs_cfg_nzp_to_add_mod_list_ext_r13_l> csi_rs_cfg_nzp_to_add_mod_list_ext_r13;
copy_ptr<csi_rs_cfg_nzp_to_release_list_ext_r13_l> csi_rs_cfg_nzp_to_release_list_ext_r13;
// group 7
copy_ptr<cqi_report_cfg_v1320_s> cqi_report_cfg_v1320;
// group 8
bool ce_pdsch_pusch_enhancement_cfg_r14_present = false;
bool semi_open_loop_r14_present = false;
copy_ptr<type_a_srs_tpc_pdcch_group_r14_c_> type_a_srs_tpc_pdcch_group_r14;
copy_ptr<must_cfg_r14_c_> must_cfg_r14;
copy_ptr<pusch_enhance_cfg_r14_c> pusch_enhance_cfg_r14;
copy_ptr<ant_info_ded_v1430_s> ant_info_v1430;
copy_ptr<pucch_cfg_ded_v1430_s> pucch_cfg_ded_v1430;
copy_ptr<pdsch_cfg_ded_v1430_s> pdsch_cfg_ded_v1430;
copy_ptr<pusch_cfg_ded_v1430_s> pusch_cfg_ded_v1430;
copy_ptr<srs_ul_periodic_cfg_ded_list_r14_l_> srs_ul_periodic_cfg_ded_list_r14;
copy_ptr<srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_> srs_ul_periodic_cfg_ded_up_pts_ext_list_r14;
copy_ptr<srs_ul_aperiodic_cfg_ded_list_r14_l_> srs_ul_aperiodic_cfg_ded_list_r14;
copy_ptr<srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_> srs_ul_cfg_ded_ap_up_pts_ext_list_r14;
copy_ptr<csi_rs_cfg_v1430_s> csi_rs_cfg_v1430;
copy_ptr<csi_rs_cfg_zp_ap_list_r14_c> csi_rs_cfg_zp_ap_list_r14;
copy_ptr<cqi_report_cfg_v1430_s> cqi_report_cfg_v1430;
bool semi_open_loop_r14 = false;
// group 9
copy_ptr<csi_rs_cfg_v1480_s> csi_rs_cfg_v1480;
// group 10
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<pusch_cfg_ded_v1530_s> pusch_cfg_ded_v1530;
copy_ptr<cqi_report_cfg_v1530_s> cqi_report_cfg_v1530;
copy_ptr<ant_info_ded_v1530_c> ant_info_v1530;
copy_ptr<csi_rs_cfg_v1530_s> csi_rs_cfg_v1530;
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLF-TimersAndConstants-r13 ::= CHOICE
struct rlf_timers_and_consts_r13_c {
struct setup_s_ {
struct t301_v1310_opts {
enum options { ms2500, ms3000, ms3500, ms4000, ms5000, ms6000, ms8000, ms10000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t301_v1310_opts> t301_v1310_e_;
struct t310_v1330_opts {
enum options { ms4000, ms6000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t310_v1330_opts> t310_v1330_e_;
// member variables
bool ext = false;
t301_v1310_e_ t301_v1310;
// ...
// group 0
bool t310_v1330_present = false;
t310_v1330_e_ t310_v1330;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
typedef setup_e types;
// choice methods
rlf_timers_and_consts_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RLF-TimersAndConstants-r9 ::= CHOICE
struct rlf_timers_and_consts_r9_c {
struct setup_s_ {
struct t301_r9_opts {
enum options { ms100, ms200, ms300, ms400, ms600, ms1000, ms1500, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t301_r9_opts> t301_r9_e_;
struct t310_r9_opts {
enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t310_r9_opts> t310_r9_e_;
struct n310_r9_opts {
enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n310_r9_opts> n310_r9_e_;
struct t311_r9_opts {
enum options { ms1000, ms3000, ms5000, ms10000, ms15000, ms20000, ms30000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t311_r9_opts> t311_r9_e_;
struct n311_r9_opts {
enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n311_r9_opts> n311_r9_e_;
// member variables
bool ext = false;
t301_r9_e_ t301_r9;
t310_r9_e_ t310_r9;
n310_r9_e_ n310_r9;
t311_r9_e_ t311_r9;
n311_r9_e_ n311_r9;
// ...
};
typedef setup_e types;
// choice methods
rlf_timers_and_consts_r9_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r9");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstants-r9");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReject-v1020-IEs ::= SEQUENCE
struct rrc_conn_reject_v1020_ies_s {
bool extended_wait_time_r10_present = false;
bool non_crit_ext_present = false;
uint16_t extended_wait_time_r10 = 1;
rrc_conn_reject_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPS-Config ::= SEQUENCE
struct sps_cfg_s {
bool semi_persist_sched_c_rnti_present = false;
bool sps_cfg_dl_present = false;
bool sps_cfg_ul_present = false;
fixed_bitstring<16> semi_persist_sched_c_rnti;
sps_cfg_dl_c sps_cfg_dl;
sps_cfg_ul_c sps_cfg_ul;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPS-Config-v1430 ::= SEQUENCE
struct sps_cfg_v1430_s {
bool ul_sps_v_rnti_r14_present = false;
bool sl_sps_v_rnti_r14_present = false;
bool sps_cfg_ul_to_add_mod_list_r14_present = false;
bool sps_cfg_ul_to_release_list_r14_present = false;
bool sps_cfg_sl_to_add_mod_list_r14_present = false;
bool sps_cfg_sl_to_release_list_r14_present = false;
fixed_bitstring<16> ul_sps_v_rnti_r14;
fixed_bitstring<16> sl_sps_v_rnti_r14;
sps_cfg_ul_to_add_mod_list_r14_l sps_cfg_ul_to_add_mod_list_r14;
sps_cfg_ul_to_release_list_r14_l sps_cfg_ul_to_release_list_r14;
sps_cfg_sl_to_add_mod_list_r14_l sps_cfg_sl_to_add_mod_list_r14;
sps_cfg_sl_to_release_list_r14_l sps_cfg_sl_to_release_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPS-Config-v1530 ::= SEQUENCE
struct sps_cfg_v1530_s {
bool semi_persist_sched_c_rnti_r15_present = false;
bool sps_cfg_dl_present = false;
bool sps_cfg_ul_stti_to_add_mod_list_r15_present = false;
bool sps_cfg_ul_stti_to_release_list_r15_present = false;
bool sps_cfg_ul_to_add_mod_list_r15_present = false;
bool sps_cfg_ul_to_release_list_r15_present = false;
fixed_bitstring<16> semi_persist_sched_c_rnti_r15;
sps_cfg_dl_c sps_cfg_dl;
sps_cfg_ul_stti_to_add_mod_list_r15_l sps_cfg_ul_stti_to_add_mod_list_r15;
sps_cfg_ul_stti_to_release_list_r15_l sps_cfg_ul_stti_to_release_list_r15;
sps_cfg_ul_to_add_mod_list_r15_l sps_cfg_ul_to_add_mod_list_r15;
sps_cfg_ul_to_release_list_r15_l sps_cfg_ul_to_release_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
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-ToReleaseListDupl-r15 ::= SEQUENCE (SIZE (1..2)) OF INTEGER (1..2)
using srb_to_release_list_dupl_r15_l = bounded_array<uint8_t, 2>;
// IdleModeMobilityControlInfo ::= SEQUENCE
struct idle_mode_mob_ctrl_info_s {
struct t320_opts {
enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<t320_opts> t320_e_;
// member variables
bool ext = false;
bool freq_prio_list_eutra_present = false;
bool freq_prio_list_geran_present = false;
bool freq_prio_list_utra_fdd_present = false;
bool freq_prio_list_utra_tdd_present = false;
bool band_class_prio_list_hrpd_present = false;
bool band_class_prio_list1_xrtt_present = false;
bool t320_present = false;
freq_prio_list_eutra_l freq_prio_list_eutra;
freqs_prio_list_geran_l freq_prio_list_geran;
freq_prio_list_utra_fdd_l freq_prio_list_utra_fdd;
freq_prio_list_utra_tdd_l freq_prio_list_utra_tdd;
band_class_prio_list_hrpd_l band_class_prio_list_hrpd;
band_class_prio_list1_xrtt_l band_class_prio_list1_xrtt;
t320_e_ t320;
// ...
// group 0
copy_ptr<freq_prio_list_ext_eutra_r12_l> freq_prio_list_ext_eutra_r12;
// group 1
copy_ptr<freq_prio_list_eutra_v1310_l> freq_prio_list_eutra_v1310;
copy_ptr<freq_prio_list_ext_eutra_v1310_l> freq_prio_list_ext_eutra_v1310;
// group 2
copy_ptr<freq_prio_list_nr_r15_l> freq_prio_list_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IdleModeMobilityControlInfo-v9e0 ::= SEQUENCE
struct idle_mode_mob_ctrl_info_v9e0_s {
using freq_prio_list_eutra_v9e0_l_ = dyn_array<freq_prio_eutra_v9e0_s>;
// member variables
freq_prio_list_eutra_v9e0_l_ freq_prio_list_eutra_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishment-v8a0-IEs ::= SEQUENCE
struct rrc_conn_reest_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentReject-v8a0-IEs ::= SEQUENCE
struct rrc_conn_reest_reject_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReject-v8a0-IEs ::= SEQUENCE
struct rrc_conn_reject_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_reject_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetup-v8a0-IEs ::= SEQUENCE
struct rrc_conn_setup_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicated ::= SEQUENCE
struct rr_cfg_ded_s {
struct mac_main_cfg_c_ {
struct types_opts {
enum options { explicit_value, default_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mac_main_cfg_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mac_main_cfg_s& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "mac-MainConfig");
return c;
}
const mac_main_cfg_s& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "mac-MainConfig");
return c;
}
mac_main_cfg_s& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
mac_main_cfg_s c;
};
struct crs_intf_mitig_cfg_r15_c_ {
struct setup_c_ {
struct crs_intf_mitig_num_prbs_r15_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_;
struct types_opts {
enum options { crs_intf_mitig_enabled_minus15, crs_intf_mitig_num_prbs_r15, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15()
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "setup");
return c;
}
const crs_intf_mitig_num_prbs_r15_e_& crs_intf_mitig_num_prbs_r15() const
{
assert_choice_type("crs-IntfMitigNumPRBs-r15", type_.to_string(), "setup");
return c;
}
crs_intf_mitig_num_prbs_r15_e_& set_crs_intf_mitig_num_prbs_r15()
{
set(types::crs_intf_mitig_num_prbs_r15);
return c;
}
private:
types type_;
crs_intf_mitig_num_prbs_r15_e_ c;
};
typedef setup_e types;
// choice methods
crs_intf_mitig_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "crs-IntfMitigConfig-r15");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// member variables
bool ext = false;
bool srb_to_add_mod_list_present = false;
bool drb_to_add_mod_list_present = false;
bool drb_to_release_list_present = false;
bool mac_main_cfg_present = false;
bool sps_cfg_present = false;
bool phys_cfg_ded_present = false;
srb_to_add_mod_list_l srb_to_add_mod_list;
drb_to_add_mod_list_l drb_to_add_mod_list;
drb_to_release_list_l drb_to_release_list;
mac_main_cfg_c_ mac_main_cfg;
sps_cfg_s sps_cfg;
phys_cfg_ded_s phys_cfg_ded;
// ...
// group 0
copy_ptr<rlf_timers_and_consts_r9_c> rlf_timers_and_consts_r9;
// group 1
copy_ptr<meas_sf_pattern_pcell_r10_c> meas_sf_pattern_pcell_r10;
// group 2
copy_ptr<neigh_cells_crs_info_r11_c> neigh_cells_crs_info_r11;
// group 3
copy_ptr<naics_assist_info_r12_c> naics_info_r12;
// group 4
copy_ptr<neigh_cells_crs_info_r13_c> neigh_cells_crs_info_r13;
copy_ptr<rlf_timers_and_consts_r13_c> rlf_timers_and_consts_r13;
// 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;
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;
copy_ptr<drb_to_add_mod_list_r15_l> drb_to_add_mod_list_r15;
copy_ptr<drb_to_release_list_r15_l> drb_to_release_list_r15;
copy_ptr<srb_to_release_list_dupl_r15_l> srb_to_release_list_dupl_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RedirectedCarrierInfo-r15-IEs ::= CHOICE
struct redirected_carrier_info_r15_ies_c {
struct types_opts {
enum options {
eutra_r15,
geran_r15,
utra_fdd_r15,
cdma2000_hrpd_r15,
cdma2000_minus1x_rtt_r15,
utra_tdd_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
redirected_carrier_info_r15_ies_c() = default;
redirected_carrier_info_r15_ies_c(const redirected_carrier_info_r15_ies_c& other);
redirected_carrier_info_r15_ies_c& operator=(const redirected_carrier_info_r15_ies_c& other);
~redirected_carrier_info_r15_ies_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint32_t& eutra_r15()
{
assert_choice_type("eutra-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<uint32_t>();
}
carrier_freqs_geran_s& geran_r15()
{
assert_choice_type("geran-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freqs_geran_s>();
}
uint16_t& utra_fdd_r15()
{
assert_choice_type("utra-FDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<uint16_t>();
}
carrier_freq_cdma2000_s& cdma2000_hrpd_r15()
{
assert_choice_type("cdma2000-HRPD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_cdma2000_s& cdma2000_minus1x_rtt_r15()
{
assert_choice_type("cdma2000-1xRTT-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_list_utra_tdd_r10_l& utra_tdd_r15()
{
assert_choice_type("utra-TDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
const uint32_t& eutra_r15() const
{
assert_choice_type("eutra-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<uint32_t>();
}
const carrier_freqs_geran_s& geran_r15() const
{
assert_choice_type("geran-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freqs_geran_s>();
}
const uint16_t& utra_fdd_r15() const
{
assert_choice_type("utra-FDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<uint16_t>();
}
const carrier_freq_cdma2000_s& cdma2000_hrpd_r15() const
{
assert_choice_type("cdma2000-HRPD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_cdma2000_s>();
}
const carrier_freq_cdma2000_s& cdma2000_minus1x_rtt_r15() const
{
assert_choice_type("cdma2000-1xRTT-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_cdma2000_s>();
}
const carrier_freq_list_utra_tdd_r10_l& utra_tdd_r15() const
{
assert_choice_type("utra-TDD-r15", type_.to_string(), "RedirectedCarrierInfo-r15-IEs");
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
uint32_t& set_eutra_r15()
{
set(types::eutra_r15);
return c.get<uint32_t>();
}
carrier_freqs_geran_s& set_geran_r15()
{
set(types::geran_r15);
return c.get<carrier_freqs_geran_s>();
}
uint16_t& set_utra_fdd_r15()
{
set(types::utra_fdd_r15);
return c.get<uint16_t>();
}
carrier_freq_cdma2000_s& set_cdma2000_hrpd_r15()
{
set(types::cdma2000_hrpd_r15);
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt_r15()
{
set(types::cdma2000_minus1x_rtt_r15);
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r15()
{
set(types::utra_tdd_r15);
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
private:
types type_;
choice_buffer_t<carrier_freq_cdma2000_s, carrier_freq_list_utra_tdd_r10_l, carrier_freqs_geran_s> c;
void destroy_();
};
// RRCConnectionReestablishment-r8-IEs ::= SEQUENCE
struct rrc_conn_reest_r8_ies_s {
bool non_crit_ext_present = false;
rr_cfg_ded_s rr_cfg_ded;
uint8_t next_hop_chaining_count = 0;
rrc_conn_reest_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentReject-r8-IEs ::= SEQUENCE
struct rrc_conn_reest_reject_r8_ies_s {
bool non_crit_ext_present = false;
rrc_conn_reest_reject_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReject-r8-IEs ::= SEQUENCE
struct rrc_conn_reject_r8_ies_s {
bool non_crit_ext_present = false;
uint8_t wait_time = 1;
rrc_conn_reject_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetup-r8-IEs ::= SEQUENCE
struct rrc_conn_setup_r8_ies_s {
bool non_crit_ext_present = false;
rr_cfg_ded_s rr_cfg_ded;
rrc_conn_setup_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCEarlyDataComplete-r15-IEs ::= SEQUENCE
struct rrc_early_data_complete_r15_ies_s {
bool ded_info_nas_r15_present = false;
bool extended_wait_time_r15_present = false;
bool idle_mode_mob_ctrl_info_r15_present = false;
bool idle_mode_mob_ctrl_info_ext_r15_present = false;
bool redirected_carrier_info_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring ded_info_nas_r15;
uint16_t extended_wait_time_r15 = 1;
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
struct c1_or_crit_ext_opts {
enum options { c1, crit_exts_future, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<c1_or_crit_ext_opts> c1_or_crit_ext_e;
// RRCConnectionReestablishment ::= SEQUENCE
struct rrc_conn_reest_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_reest_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_r8_ies_s& rrc_conn_reest_r8()
{
assert_choice_type("rrcConnectionReestablishment-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_reest_r8_ies_s& rrc_conn_reest_r8() const
{
assert_choice_type("rrcConnectionReestablishment-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_reest_r8_ies_s& set_rrc_conn_reest_r8()
{
set(types::rrc_conn_reest_r8);
return c;
}
private:
types type_;
rrc_conn_reest_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentReject ::= SEQUENCE
struct rrc_conn_reest_reject_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_reest_reject_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8()
{
assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_reject_r8_ies_s>();
}
const rrc_conn_reest_reject_r8_ies_s& rrc_conn_reest_reject_r8() const
{
assert_choice_type("rrcConnectionReestablishmentReject-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_reject_r8_ies_s>();
}
rrc_conn_reest_reject_r8_ies_s& set_rrc_conn_reest_reject_r8()
{
set(types::rrc_conn_reest_reject_r8);
return c.get<rrc_conn_reest_reject_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_reest_reject_r8_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReject ::= SEQUENCE
struct rrc_conn_reject_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_reject_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reject_r8_ies_s& rrc_conn_reject_r8()
{
assert_choice_type("rrcConnectionReject-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_reject_r8_ies_s& rrc_conn_reject_r8() const
{
assert_choice_type("rrcConnectionReject-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_reject_r8_ies_s& set_rrc_conn_reject_r8()
{
set(types::rrc_conn_reject_r8);
return c;
}
private:
types type_;
rrc_conn_reject_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetup ::= SEQUENCE
struct rrc_conn_setup_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_setup_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_setup_r8_ies_s& rrc_conn_setup_r8()
{
assert_choice_type("rrcConnectionSetup-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_setup_r8_ies_s& rrc_conn_setup_r8() const
{
assert_choice_type("rrcConnectionSetup-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_setup_r8_ies_s& set_rrc_conn_setup_r8()
{
set(types::rrc_conn_setup_r8);
return c;
}
private:
types type_;
rrc_conn_setup_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCEarlyDataComplete-r15 ::= SEQUENCE
struct rrc_early_data_complete_r15_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_early_data_complete_r15, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15()
{
assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_early_data_complete_r15_ies_s>();
}
const rrc_early_data_complete_r15_ies_s& rrc_early_data_complete_r15() const
{
assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_early_data_complete_r15_ies_s>();
}
rrc_early_data_complete_r15_ies_s& set_rrc_early_data_complete_r15()
{
set(types::rrc_early_data_complete_r15);
return c.get<rrc_early_data_complete_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_early_data_complete_r15_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-CCCH-MessageType ::= CHOICE
struct dl_ccch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_reest, rrc_conn_reest_reject, rrc_conn_reject, rrc_conn_setup, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_s& rrc_conn_reest()
{
assert_choice_type("rrcConnectionReestablishment", type_.to_string(), "c1");
return c.get<rrc_conn_reest_s>();
}
rrc_conn_reest_reject_s& rrc_conn_reest_reject()
{
assert_choice_type("rrcConnectionReestablishmentReject", type_.to_string(), "c1");
return c.get<rrc_conn_reest_reject_s>();
}
rrc_conn_reject_s& rrc_conn_reject()
{
assert_choice_type("rrcConnectionReject", type_.to_string(), "c1");
return c.get<rrc_conn_reject_s>();
}
rrc_conn_setup_s& rrc_conn_setup()
{
assert_choice_type("rrcConnectionSetup", type_.to_string(), "c1");
return c.get<rrc_conn_setup_s>();
}
const rrc_conn_reest_s& rrc_conn_reest() const
{
assert_choice_type("rrcConnectionReestablishment", type_.to_string(), "c1");
return c.get<rrc_conn_reest_s>();
}
const rrc_conn_reest_reject_s& rrc_conn_reest_reject() const
{
assert_choice_type("rrcConnectionReestablishmentReject", type_.to_string(), "c1");
return c.get<rrc_conn_reest_reject_s>();
}
const rrc_conn_reject_s& rrc_conn_reject() const
{
assert_choice_type("rrcConnectionReject", type_.to_string(), "c1");
return c.get<rrc_conn_reject_s>();
}
const rrc_conn_setup_s& rrc_conn_setup() const
{
assert_choice_type("rrcConnectionSetup", type_.to_string(), "c1");
return c.get<rrc_conn_setup_s>();
}
rrc_conn_reest_s& set_rrc_conn_reest()
{
set(types::rrc_conn_reest);
return c.get<rrc_conn_reest_s>();
}
rrc_conn_reest_reject_s& set_rrc_conn_reest_reject()
{
set(types::rrc_conn_reest_reject);
return c.get<rrc_conn_reest_reject_s>();
}
rrc_conn_reject_s& set_rrc_conn_reject()
{
set(types::rrc_conn_reject);
return c.get<rrc_conn_reject_s>();
}
rrc_conn_setup_s& set_rrc_conn_setup()
{
set(types::rrc_conn_setup);
return c.get<rrc_conn_setup_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_reest_reject_s, rrc_conn_reest_s, rrc_conn_reject_s, rrc_conn_setup_s> c;
void destroy_();
};
struct msg_class_ext_c_ {
struct c2_c_ {
struct types_opts {
enum options { rrc_early_data_complete_r15, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c2_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_early_data_complete_r15_s& rrc_early_data_complete_r15()
{
assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c2");
return c;
}
const rrc_early_data_complete_r15_s& rrc_early_data_complete_r15() const
{
assert_choice_type("rrcEarlyDataComplete-r15", type_.to_string(), "c2");
return c;
}
rrc_early_data_complete_r15_s& set_rrc_early_data_complete_r15()
{
set(types::rrc_early_data_complete_r15);
return c;
}
private:
types type_;
rrc_early_data_complete_r15_s c;
};
struct types_opts {
enum options { c2, msg_class_ext_future_r15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
msg_class_ext_c_() = default;
msg_class_ext_c_(const msg_class_ext_c_& other);
msg_class_ext_c_& operator=(const msg_class_ext_c_& other);
~msg_class_ext_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c2_c_& c2()
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
const c2_c_& c2() const
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
c2_c_& set_c2()
{
set(types::c2);
return c.get<c2_c_>();
}
private:
types type_;
choice_buffer_t<c2_c_> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
dl_ccch_msg_type_c() = default;
dl_ccch_msg_type_c(const dl_ccch_msg_type_c& other);
dl_ccch_msg_type_c& operator=(const dl_ccch_msg_type_c& other);
~dl_ccch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType");
return c.get<c1_c_>();
}
msg_class_ext_c_& msg_class_ext()
{
assert_choice_type("messageClassExtension", type_.to_string(), "DL-CCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "DL-CCCH-MessageType");
return c.get<c1_c_>();
}
const msg_class_ext_c_& msg_class_ext() const
{
assert_choice_type("messageClassExtension", type_.to_string(), "DL-CCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
msg_class_ext_c_& set_msg_class_ext()
{
set(types::msg_class_ext);
return c.get<msg_class_ext_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_, msg_class_ext_c_> c;
void destroy_();
};
// DL-CCCH-Message ::= SEQUENCE
struct dl_ccch_msg_s {
dl_ccch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCCH-CandidateReductionValue-r14 ::= ENUMERATED
struct pdcch_candidate_reduction_value_r14_opts {
enum options { n0, n50, n100, n150, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<pdcch_candidate_reduction_value_r14_opts> pdcch_candidate_reduction_value_r14_e;
// PDCCH-CandidateReductionsLAA-UL-r14 ::= CHOICE
struct pdcch_candidate_reductions_laa_ul_r14_c {
struct setup_s_ {
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al1_r14;
pdcch_candidate_reduction_value_r13_e pdcch_candidate_reduction_al2_r14;
pdcch_candidate_reduction_value_r14_e pdcch_candidate_reduction_al3_r14;
pdcch_candidate_reduction_value_r14_e pdcch_candidate_reduction_al4_r14;
pdcch_candidate_reduction_value_r14_e pdcch_candidate_reduction_al5_r14;
};
typedef setup_e types;
// choice methods
pdcch_candidate_reductions_laa_ul_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductionsLAA-UL-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "PDCCH-CandidateReductionsLAA-UL-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// AUL-Config-r15 ::= CHOICE
struct aul_cfg_r15_c {
struct setup_s_ {
struct tx_mode_ul_aul_r15_opts {
enum options { tm1, tm2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_mode_ul_aul_r15_opts> tx_mode_ul_aul_r15_e_;
struct aul_start_partial_bw_inside_mcot_r15_opts {
enum options { o34, o43, o52, o61, oos1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<aul_start_partial_bw_inside_mcot_r15_opts> aul_start_partial_bw_inside_mcot_r15_e_;
struct aul_start_partial_bw_outside_mcot_r15_opts {
enum options { o16, o25, o34, o43, o52, o61, oos1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<aul_start_partial_bw_outside_mcot_r15_opts> aul_start_partial_bw_outside_mcot_r15_e_;
struct aul_retx_timer_r15_opts {
enum options {
psf4,
psf5,
psf6,
psf8,
psf10,
psf12,
psf20,
psf28,
psf37,
psf44,
psf68,
psf84,
psf100,
psf116,
psf132,
psf164,
psf324,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<aul_retx_timer_r15_opts> aul_retx_timer_r15_e_;
struct contention_win_size_timer_r15_opts {
enum options { n0, n5, n10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<contention_win_size_timer_r15_opts> contention_win_size_timer_r15_e_;
// member variables
fixed_bitstring<16> aul_crnti_r15;
fixed_bitstring<40> aul_sfs_r15;
uint8_t aul_harq_processes_r15 = 1;
tx_mode_ul_aul_r15_e_ tx_mode_ul_aul_r15;
fixed_bitstring<5> aul_start_full_bw_inside_mcot_r15;
fixed_bitstring<7> aul_start_full_bw_outside_mcot_r15;
aul_start_partial_bw_inside_mcot_r15_e_ aul_start_partial_bw_inside_mcot_r15;
aul_start_partial_bw_outside_mcot_r15_e_ aul_start_partial_bw_outside_mcot_r15;
aul_retx_timer_r15_e_ aul_retx_timer_r15;
uint8_t ending_symbol_aul_r15 = 12;
uint8_t sf_offset_cot_sharing_r15 = 2;
contention_win_size_timer_r15_e_ contention_win_size_timer_r15;
};
typedef setup_e types;
// choice methods
aul_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "AUL-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "AUL-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportPeriodicSCell-r15 ::= CHOICE
struct cqi_report_periodic_scell_r15_c {
struct setup_s_ {
struct csi_sf_pattern_dormant_r15_c_ {
struct setup_s_ {
meas_sf_pattern_r10_c csi_meas_sf_set1_r15;
meas_sf_pattern_r10_c csi_meas_sf_set2_r15;
};
typedef setup_e types;
// choice methods
csi_sf_pattern_dormant_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternDormant-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "csi-SubframePatternDormant-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct cqi_format_ind_dormant_r15_c_ {
struct wideband_cqi_r15_s_ {
struct csi_report_mode_r15_opts {
enum options { submode1, submode2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_mode_r15_opts> csi_report_mode_r15_e_;
// member variables
bool csi_report_mode_r15_present = false;
csi_report_mode_r15_e_ csi_report_mode_r15;
};
struct subband_cqi_r15_s_ {
struct periodicity_factor_r15_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_r15_opts> periodicity_factor_r15_e_;
// member variables
uint8_t k_r15 = 1;
periodicity_factor_r15_e_ periodicity_factor_r15;
};
struct types_opts {
enum options { wideband_cqi_r15, subband_cqi_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cqi_format_ind_dormant_r15_c_() = default;
cqi_format_ind_dormant_r15_c_(const cqi_format_ind_dormant_r15_c_& other);
cqi_format_ind_dormant_r15_c_& operator=(const cqi_format_ind_dormant_r15_c_& other);
~cqi_format_ind_dormant_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wideband_cqi_r15_s_& wideband_cqi_r15()
{
assert_choice_type("widebandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15");
return c.get<wideband_cqi_r15_s_>();
}
subband_cqi_r15_s_& subband_cqi_r15()
{
assert_choice_type("subbandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15");
return c.get<subband_cqi_r15_s_>();
}
const wideband_cqi_r15_s_& wideband_cqi_r15() const
{
assert_choice_type("widebandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15");
return c.get<wideband_cqi_r15_s_>();
}
const subband_cqi_r15_s_& subband_cqi_r15() const
{
assert_choice_type("subbandCQI-r15", type_.to_string(), "cqi-FormatIndicatorDormant-r15");
return c.get<subband_cqi_r15_s_>();
}
wideband_cqi_r15_s_& set_wideband_cqi_r15()
{
set(types::wideband_cqi_r15);
return c.get<wideband_cqi_r15_s_>();
}
subband_cqi_r15_s_& set_subband_cqi_r15()
{
set(types::subband_cqi_r15);
return c.get<subband_cqi_r15_s_>();
}
private:
types type_;
choice_buffer_t<subband_cqi_r15_s_, wideband_cqi_r15_s_> c;
void destroy_();
};
// member variables
bool ri_cfg_idx_dormant_r15_present = false;
bool csi_sf_pattern_dormant_r15_present = false;
bool cqi_format_ind_dormant_r15_present = false;
uint16_t cqi_pmi_cfg_idx_dormant_r15 = 0;
uint16_t ri_cfg_idx_dormant_r15 = 0;
csi_sf_pattern_dormant_r15_c_ csi_sf_pattern_dormant_r15;
cqi_format_ind_dormant_r15_c_ cqi_format_ind_dormant_r15;
};
typedef setup_e types;
// choice methods
cqi_report_periodic_scell_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodicSCell-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ReportPeriodicSCell-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CrossCarrierSchedulingConfigLAA-UL-r14 ::= SEQUENCE
struct cross_carrier_sched_cfg_laa_ul_r14_s {
uint8_t sched_cell_id_r14 = 0;
uint8_t cif_in_sched_cell_r14 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LBT-Config-r14 ::= CHOICE
struct lbt_cfg_r14_c {
struct types_opts {
enum options { max_energy_detection_thres_r14, energy_detection_thres_offset_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
lbt_cfg_r14_c() = default;
lbt_cfg_r14_c(const lbt_cfg_r14_c& other);
lbt_cfg_r14_c& operator=(const lbt_cfg_r14_c& other);
~lbt_cfg_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
int8_t& max_energy_detection_thres_r14()
{
assert_choice_type("maxEnergyDetectionThreshold-r14", type_.to_string(), "LBT-Config-r14");
return c.get<int8_t>();
}
int8_t& energy_detection_thres_offset_r14()
{
assert_choice_type("energyDetectionThresholdOffset-r14", type_.to_string(), "LBT-Config-r14");
return c.get<int8_t>();
}
const int8_t& max_energy_detection_thres_r14() const
{
assert_choice_type("maxEnergyDetectionThreshold-r14", type_.to_string(), "LBT-Config-r14");
return c.get<int8_t>();
}
const int8_t& energy_detection_thres_offset_r14() const
{
assert_choice_type("energyDetectionThresholdOffset-r14", type_.to_string(), "LBT-Config-r14");
return c.get<int8_t>();
}
int8_t& set_max_energy_detection_thres_r14()
{
set(types::max_energy_detection_thres_r14);
return c.get<int8_t>();
}
int8_t& set_energy_detection_thres_offset_r14()
{
set(types::energy_detection_thres_offset_r14);
return c.get<int8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// PDCCH-ConfigLAA-r14 ::= SEQUENCE
struct pdcch_cfg_laa_r14_s {
struct max_nof_sched_sfs_format0_b_r14_opts {
enum options { sf2, sf3, sf4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_nof_sched_sfs_format0_b_r14_opts> max_nof_sched_sfs_format0_b_r14_e_;
struct max_nof_sched_sfs_format4_b_r14_opts {
enum options { sf2, sf3, sf4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_nof_sched_sfs_format4_b_r14_opts> max_nof_sched_sfs_format4_b_r14_e_;
// member variables
bool max_nof_sched_sfs_format0_b_r14_present = false;
bool max_nof_sched_sfs_format4_b_r14_present = false;
bool skip_monitoring_dci_format0_a_r14_present = false;
bool skip_monitoring_dci_format4_a_r14_present = false;
bool pdcch_candidate_reductions_format0_a_r14_present = false;
bool pdcch_candidate_reductions_format4_a_r14_present = false;
bool pdcch_candidate_reductions_format0_b_r14_present = false;
bool pdcch_candidate_reductions_format4_b_r14_present = false;
max_nof_sched_sfs_format0_b_r14_e_ max_nof_sched_sfs_format0_b_r14;
max_nof_sched_sfs_format4_b_r14_e_ max_nof_sched_sfs_format4_b_r14;
pdcch_candidate_reductions_r13_c pdcch_candidate_reductions_format0_a_r14;
pdcch_candidate_reductions_laa_ul_r14_c pdcch_candidate_reductions_format4_a_r14;
pdcch_candidate_reductions_laa_ul_r14_c pdcch_candidate_reductions_format0_b_r14;
pdcch_candidate_reductions_laa_ul_r14_c pdcch_candidate_reductions_format4_b_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ModeConfigLAA-r15 ::= SEQUENCE
struct pusch_mode_cfg_laa_r15_s {
bool laa_pusch_mode1 = false;
bool laa_pusch_mode2 = false;
bool laa_pusch_mode3 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SoundingRS-UL-ConfigDedicatedAperiodic-v1430 ::= CHOICE
struct srs_ul_cfg_ded_aperiodic_v1430_c {
struct setup_s_ {
bool srs_sf_ind_r14_present = false;
uint8_t srs_sf_ind_r14 = 1;
};
typedef setup_e types;
// choice methods
srs_ul_cfg_ded_aperiodic_v1430_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1430");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SoundingRS-UL-ConfigDedicatedAperiodic-v1430");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CQI-ReportConfigSCell-r10 ::= SEQUENCE
struct cqi_report_cfg_scell_r10_s {
bool cqi_report_mode_aperiodic_r10_present = false;
bool cqi_report_periodic_scell_r10_present = false;
bool pmi_ri_report_r10_present = false;
cqi_report_mode_aperiodic_e cqi_report_mode_aperiodic_r10;
int8_t nom_pdsch_rs_epre_offset_r10 = -1;
cqi_report_periodic_r10_c cqi_report_periodic_scell_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ReportConfigSCell-r15 ::= SEQUENCE
struct cqi_report_cfg_scell_r15_s {
struct alt_cqi_table_minus1024_qam_r15_opts {
enum options { all_sfs, csi_sf_set1, csi_sf_set2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<alt_cqi_table_minus1024_qam_r15_opts> alt_cqi_table_minus1024_qam_r15_e_;
// member variables
bool cqi_report_periodic_scell_r15_present = false;
bool alt_cqi_table_minus1024_qam_r15_present = false;
cqi_report_periodic_scell_r15_c cqi_report_periodic_scell_r15;
alt_cqi_table_minus1024_qam_r15_e_ alt_cqi_table_minus1024_qam_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CQI-ShortConfigSCell-r15 ::= CHOICE
struct cqi_short_cfg_scell_r15_c {
struct setup_s_ {
struct cqi_format_ind_short_r15_c_ {
struct wideband_cqi_short_r15_s_ {
struct csi_report_mode_short_r15_opts {
enum options { submode1, submode2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_mode_short_r15_opts> csi_report_mode_short_r15_e_;
// member variables
bool csi_report_mode_short_r15_present = false;
csi_report_mode_short_r15_e_ csi_report_mode_short_r15;
};
struct subband_cqi_short_r15_s_ {
struct periodicity_factor_r15_opts {
enum options { n2, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<periodicity_factor_r15_opts> periodicity_factor_r15_e_;
// member variables
uint8_t k_r15 = 1;
periodicity_factor_r15_e_ periodicity_factor_r15;
};
struct types_opts {
enum options { wideband_cqi_short_r15, subband_cqi_short_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cqi_format_ind_short_r15_c_() = default;
cqi_format_ind_short_r15_c_(const cqi_format_ind_short_r15_c_& other);
cqi_format_ind_short_r15_c_& operator=(const cqi_format_ind_short_r15_c_& other);
~cqi_format_ind_short_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wideband_cqi_short_r15_s_& wideband_cqi_short_r15()
{
assert_choice_type("widebandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15");
return c.get<wideband_cqi_short_r15_s_>();
}
subband_cqi_short_r15_s_& subband_cqi_short_r15()
{
assert_choice_type("subbandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15");
return c.get<subband_cqi_short_r15_s_>();
}
const wideband_cqi_short_r15_s_& wideband_cqi_short_r15() const
{
assert_choice_type("widebandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15");
return c.get<wideband_cqi_short_r15_s_>();
}
const subband_cqi_short_r15_s_& subband_cqi_short_r15() const
{
assert_choice_type("subbandCQI-Short-r15", type_.to_string(), "cqi-FormatIndicatorShort-r15");
return c.get<subband_cqi_short_r15_s_>();
}
wideband_cqi_short_r15_s_& set_wideband_cqi_short_r15()
{
set(types::wideband_cqi_short_r15);
return c.get<wideband_cqi_short_r15_s_>();
}
subband_cqi_short_r15_s_& set_subband_cqi_short_r15()
{
set(types::subband_cqi_short_r15);
return c.get<subband_cqi_short_r15_s_>();
}
private:
types type_;
choice_buffer_t<subband_cqi_short_r15_s_, wideband_cqi_short_r15_s_> c;
void destroy_();
};
// member variables
bool ri_cfg_idx_short_r15_present = false;
bool cqi_format_ind_short_r15_present = false;
uint16_t cqi_pmi_cfg_idx_short_r15 = 0;
uint16_t ri_cfg_idx_short_r15 = 0;
cqi_format_ind_short_r15_c_ cqi_format_ind_short_r15;
};
typedef setup_e types;
// choice methods
cqi_short_cfg_scell_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "CQI-ShortConfigSCell-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "CQI-ShortConfigSCell-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// CrossCarrierSchedulingConfig-r10 ::= SEQUENCE
struct cross_carrier_sched_cfg_r10_s {
struct sched_cell_info_r10_c_ {
struct own_r10_s_ {
bool cif_presence_r10 = false;
};
struct other_r10_s_ {
uint8_t sched_cell_id_r10 = 0;
uint8_t pdsch_start_r10 = 1;
};
struct types_opts {
enum options { own_r10, other_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sched_cell_info_r10_c_() = default;
sched_cell_info_r10_c_(const sched_cell_info_r10_c_& other);
sched_cell_info_r10_c_& operator=(const sched_cell_info_r10_c_& other);
~sched_cell_info_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
own_r10_s_& own_r10()
{
assert_choice_type("own-r10", type_.to_string(), "schedulingCellInfo-r10");
return c.get<own_r10_s_>();
}
other_r10_s_& other_r10()
{
assert_choice_type("other-r10", type_.to_string(), "schedulingCellInfo-r10");
return c.get<other_r10_s_>();
}
const own_r10_s_& own_r10() const
{
assert_choice_type("own-r10", type_.to_string(), "schedulingCellInfo-r10");
return c.get<own_r10_s_>();
}
const other_r10_s_& other_r10() const
{
assert_choice_type("other-r10", type_.to_string(), "schedulingCellInfo-r10");
return c.get<other_r10_s_>();
}
own_r10_s_& set_own_r10()
{
set(types::own_r10);
return c.get<own_r10_s_>();
}
other_r10_s_& set_other_r10()
{
set(types::other_r10);
return c.get<other_r10_s_>();
}
private:
types type_;
choice_buffer_t<other_r10_s_, own_r10_s_> c;
void destroy_();
};
// member variables
sched_cell_info_r10_c_ sched_cell_info_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CrossCarrierSchedulingConfig-r13 ::= SEQUENCE
struct cross_carrier_sched_cfg_r13_s {
struct sched_cell_info_r13_c_ {
struct own_r13_s_ {
bool cif_presence_r13 = false;
};
struct other_r13_s_ {
uint8_t sched_cell_id_r13 = 0;
uint8_t pdsch_start_r13 = 1;
uint8_t cif_in_sched_cell_r13 = 1;
};
struct types_opts {
enum options { own_r13, other_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sched_cell_info_r13_c_() = default;
sched_cell_info_r13_c_(const sched_cell_info_r13_c_& other);
sched_cell_info_r13_c_& operator=(const sched_cell_info_r13_c_& other);
~sched_cell_info_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
own_r13_s_& own_r13()
{
assert_choice_type("own-r13", type_.to_string(), "schedulingCellInfo-r13");
return c.get<own_r13_s_>();
}
other_r13_s_& other_r13()
{
assert_choice_type("other-r13", type_.to_string(), "schedulingCellInfo-r13");
return c.get<other_r13_s_>();
}
const own_r13_s_& own_r13() const
{
assert_choice_type("own-r13", type_.to_string(), "schedulingCellInfo-r13");
return c.get<own_r13_s_>();
}
const other_r13_s_& other_r13() const
{
assert_choice_type("other-r13", type_.to_string(), "schedulingCellInfo-r13");
return c.get<other_r13_s_>();
}
own_r13_s_& set_own_r13()
{
set(types::own_r13);
return c.get<own_r13_s_>();
}
other_r13_s_& set_other_r13()
{
set(types::other_r13);
return c.get<other_r13_s_>();
}
private:
types type_;
choice_buffer_t<other_r13_s_, own_r13_s_> c;
void destroy_();
};
// member variables
sched_cell_info_r13_c_ sched_cell_info_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DeltaFList-SPUCCH-r15 ::= CHOICE
struct delta_flist_spucch_r15_c {
struct setup_s_ {
struct delta_f_slot_spucch_format1_r15_opts {
enum options {
delta_f_minus1,
delta_f0,
delta_f1,
delta_f2,
delta_f3,
delta_f4,
delta_f5,
delta_f6,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_format1_r15_opts> delta_f_slot_spucch_format1_r15_e_;
struct delta_f_slot_spucch_format1a_r15_opts {
enum options { delta_f1, delta_f2, delta_f3, delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_format1a_r15_opts> delta_f_slot_spucch_format1a_r15_e_;
struct delta_f_slot_spucch_format1b_r15_opts {
enum options { delta_f3, delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, delta_f9, delta_f10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_format1b_r15_opts> delta_f_slot_spucch_format1b_r15_e_;
struct delta_f_slot_spucch_format3_r15_opts {
enum options { delta_f4, delta_f5, delta_f6, delta_f7, delta_f8, delta_f9, delta_f10, delta_f11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_format3_r15_opts> delta_f_slot_spucch_format3_r15_e_;
struct delta_f_slot_spucch_rm_format4_r15_opts {
enum options {
delta_f13,
delta_f14,
delta_f15,
delta_f16,
delta_f17,
delta_f18,
delta_f19,
delta_f20,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_rm_format4_r15_opts> delta_f_slot_spucch_rm_format4_r15_e_;
struct delta_f_slot_spucch_tbcc_format4_r15_opts {
enum options {
delta_f10,
delta_f11,
delta_f12,
delta_f13,
delta_f14,
delta_f15,
delta_f16,
delta_f17,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_slot_spucch_tbcc_format4_r15_opts> delta_f_slot_spucch_tbcc_format4_r15_e_;
struct delta_f_subslot_spucch_format1and1a_r15_opts {
enum options {
delta_f5,
delta_f6,
delta_f7,
delta_f8,
delta_f9,
delta_f10,
delta_f11,
delta_f12,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_subslot_spucch_format1and1a_r15_opts> delta_f_subslot_spucch_format1and1a_r15_e_;
struct delta_f_subslot_spucch_format1b_r15_opts {
enum options {
delta_f6,
delta_f7,
delta_f8,
delta_f9,
delta_f10,
delta_f11,
delta_f12,
delta_f13,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_subslot_spucch_format1b_r15_opts> delta_f_subslot_spucch_format1b_r15_e_;
struct delta_f_subslot_spucch_rm_format4_r15_opts {
enum options {
delta_f15,
delta_f16,
delta_f17,
delta_f18,
delta_f19,
delta_f20,
delta_f21,
delta_f22,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_subslot_spucch_rm_format4_r15_opts> delta_f_subslot_spucch_rm_format4_r15_e_;
struct delta_f_subslot_spucch_tbcc_format4_r15_opts {
enum options {
delta_f10,
delta_f11,
delta_f12,
delta_f13,
delta_f14,
delta_f15,
delta_f16,
delta_f17,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_subslot_spucch_tbcc_format4_r15_opts> delta_f_subslot_spucch_tbcc_format4_r15_e_;
// member variables
bool ext = false;
bool delta_f_slot_spucch_format1_r15_present = false;
bool delta_f_slot_spucch_format1a_r15_present = false;
bool delta_f_slot_spucch_format1b_r15_present = false;
bool delta_f_slot_spucch_format3_r15_present = false;
bool delta_f_slot_spucch_rm_format4_r15_present = false;
bool delta_f_slot_spucch_tbcc_format4_r15_present = false;
bool delta_f_subslot_spucch_format1and1a_r15_present = false;
bool delta_f_subslot_spucch_format1b_r15_present = false;
bool delta_f_subslot_spucch_rm_format4_r15_present = false;
bool delta_f_subslot_spucch_tbcc_format4_r15_present = false;
delta_f_slot_spucch_format1_r15_e_ delta_f_slot_spucch_format1_r15;
delta_f_slot_spucch_format1a_r15_e_ delta_f_slot_spucch_format1a_r15;
delta_f_slot_spucch_format1b_r15_e_ delta_f_slot_spucch_format1b_r15;
delta_f_slot_spucch_format3_r15_e_ delta_f_slot_spucch_format3_r15;
delta_f_slot_spucch_rm_format4_r15_e_ delta_f_slot_spucch_rm_format4_r15;
delta_f_slot_spucch_tbcc_format4_r15_e_ delta_f_slot_spucch_tbcc_format4_r15;
delta_f_subslot_spucch_format1and1a_r15_e_ delta_f_subslot_spucch_format1and1a_r15;
delta_f_subslot_spucch_format1b_r15_e_ delta_f_subslot_spucch_format1b_r15;
delta_f_subslot_spucch_rm_format4_r15_e_ delta_f_subslot_spucch_rm_format4_r15;
delta_f_subslot_spucch_tbcc_format4_r15_e_ delta_f_subslot_spucch_tbcc_format4_r15;
// ...
};
typedef setup_e types;
// choice methods
delta_flist_spucch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "DeltaFList-SPUCCH-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "DeltaFList-SPUCCH-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// LAA-SCellConfiguration-r13 ::= SEQUENCE
struct laa_scell_cfg_r13_s {
struct sf_start_position_r13_opts {
enum options { s0, s07, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<sf_start_position_r13_opts> sf_start_position_r13_e_;
// member variables
sf_start_position_r13_e_ sf_start_position_r13;
fixed_bitstring<8> laa_scell_sf_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LAA-SCellConfiguration-v1430 ::= SEQUENCE
struct laa_scell_cfg_v1430_s {
struct cross_carrier_sched_cfg_ul_r14_c_ {
struct setup_s_ {
cross_carrier_sched_cfg_laa_ul_r14_s cross_carrier_sched_cfg_laa_ul_r14;
};
typedef setup_e types;
// choice methods
cross_carrier_sched_cfg_ul_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "crossCarrierSchedulingConfig-UL-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "crossCarrierSchedulingConfig-UL-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool cross_carrier_sched_cfg_ul_r14_present = false;
bool lbt_cfg_r14_present = false;
bool pdcch_cfg_laa_r14_present = false;
bool absence_of_any_other_technology_r14_present = false;
bool srs_ul_cfg_ded_aperiodic_v1430_present = false;
cross_carrier_sched_cfg_ul_r14_c_ cross_carrier_sched_cfg_ul_r14;
lbt_cfg_r14_c lbt_cfg_r14;
pdcch_cfg_laa_r14_s pdcch_cfg_laa_r14;
srs_ul_cfg_ded_aperiodic_v1430_c srs_ul_cfg_ded_aperiodic_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LAA-SCellConfiguration-v1530 ::= SEQUENCE
struct laa_scell_cfg_v1530_s {
bool aul_cfg_r15_present = false;
bool pusch_mode_cfg_laa_r15_present = false;
aul_cfg_r15_c aul_cfg_r15;
pusch_mode_cfg_laa_r15_s pusch_mode_cfg_laa_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCCH-ConfigSCell-r13 ::= SEQUENCE
struct pdcch_cfg_scell_r13_s {
bool skip_monitoring_dci_format0_minus1_a_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE
struct pdsch_cfg_ded_scell_v1430_s {
bool tbs_idx_alt2_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUCCH-ConfigDedicated-v1370 ::= SEQUENCE
struct pucch_cfg_ded_v1370_s {
struct pucch_format_v1370_c_ {
typedef setup_e types;
// choice methods
pucch_format_v1370_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
pucch_format3_conf_r13_s& setup()
{
assert_choice_type("setup", type_.to_string(), "pucch-Format-v1370");
return c;
}
const pucch_format3_conf_r13_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "pucch-Format-v1370");
return c;
}
pucch_format3_conf_r13_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
pucch_format3_conf_r13_s c;
};
// member variables
pucch_format_v1370_c_ pucch_format_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicatedSCell-r10 ::= SEQUENCE
struct pusch_cfg_ded_scell_r10_s {
bool group_hop_disabled_r10_present = false;
bool dmrs_with_occ_activ_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicatedSCell-v1430 ::= SEQUENCE
struct pusch_cfg_ded_scell_v1430_s {
bool enable256_qam_r14_present = false;
enable256_qam_r14_c enable256_qam_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PUSCH-ConfigDedicatedScell-v1530 ::= SEQUENCE
struct pusch_cfg_ded_scell_v1530_s {
struct uci_on_pusch_r15_c_ {
struct setup_s_ {
uint8_t beta_offset_aul_r15 = 0;
};
typedef setup_e types;
// choice methods
uci_on_pusch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "uci-OnPUSCH-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "uci-OnPUSCH-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
uci_on_pusch_r15_c_ uci_on_pusch_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SchedulingRequestConfigSCell-r13 ::= CHOICE
struct sched_request_cfg_scell_r13_c {
struct setup_s_ {
struct dsr_trans_max_r13_opts {
enum options { n4, n8, n16, n32, n64, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dsr_trans_max_r13_opts> dsr_trans_max_r13_e_;
// member variables
bool sr_pucch_res_idx_p1_r13_present = false;
uint16_t sr_pucch_res_idx_r13 = 0;
uint16_t sr_pucch_res_idx_p1_r13 = 0;
uint8_t sr_cfg_idx_r13 = 0;
dsr_trans_max_r13_e_ dsr_trans_max_r13;
};
typedef setup_e types;
// choice methods
sched_request_cfg_scell_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfigSCell-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SchedulingRequestConfigSCell-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SoundingRS-AperiodicSet-r14 ::= SEQUENCE
struct srs_aperiodic_set_r14_s {
using srs_cc_set_idx_list_r14_l_ = dyn_array<srs_cc_set_idx_r14_s>;
// member variables
bool srs_cc_set_idx_list_r14_present = false;
srs_cc_set_idx_list_r14_l_ srs_cc_set_idx_list_r14;
srs_ul_cfg_ded_aperiodic_r10_c srs_ul_cfg_ded_aperiodic_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SoundingRS-AperiodicSetUpPTsExt-r14 ::= SEQUENCE
struct srs_aperiodic_set_up_pts_ext_r14_s {
using srs_cc_set_idx_list_r14_l_ = dyn_array<srs_cc_set_idx_r14_s>;
// member variables
bool srs_cc_set_idx_list_r14_present = false;
srs_cc_set_idx_list_r14_l_ srs_cc_set_idx_list_r14;
srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c srs_ul_cfg_ded_aperiodic_up_pts_ext_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TPC-PDCCH-ConfigSCell-r13 ::= CHOICE
struct tpc_pdcch_cfg_scell_r13_c {
struct setup_s_ {
tpc_idx_c tpc_idx_pucch_scell_r13;
};
typedef setup_e types;
// choice methods
tpc_pdcch_cfg_scell_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-ConfigSCell-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "TPC-PDCCH-ConfigSCell-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// UplinkPUSCH-LessPowerControlDedicated-v1430 ::= SEQUENCE
struct ul_pusch_less_pwr_ctrl_ded_v1430_s {
bool p0_ue_periodic_srs_r14_present = false;
bool p0_ue_aperiodic_srs_r14_present = false;
int8_t p0_ue_periodic_srs_r14 = -8;
int8_t p0_ue_aperiodic_srs_r14 = -8;
bool accumulation_enabled_r14 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicatedSCell-r10 ::= SEQUENCE
struct ul_pwr_ctrl_ded_scell_r10_s {
struct delta_mcs_enabled_r10_opts {
enum options { en0, en1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_mcs_enabled_r10_opts> delta_mcs_enabled_r10_e_;
struct pathloss_ref_linking_r10_opts {
enum options { pcell, scell, nulltype } value;
std::string to_string() const;
};
typedef enumerated<pathloss_ref_linking_r10_opts> pathloss_ref_linking_r10_e_;
// member variables
bool psrs_offset_ap_r10_present = false;
bool filt_coef_r10_present = false;
int8_t p0_ue_pusch_r10 = -8;
delta_mcs_enabled_r10_e_ delta_mcs_enabled_r10;
bool accumulation_enabled_r10 = false;
uint8_t psrs_offset_r10 = 0;
uint8_t psrs_offset_ap_r10 = 0;
filt_coef_e filt_coef_r10;
pathloss_ref_linking_r10_e_ pathloss_ref_linking_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlDedicatedSCell-v1310 ::= SEQUENCE
struct ul_pwr_ctrl_ded_scell_v1310_s {
bool delta_tx_d_offset_list_pucch_r10_present = false;
int8_t p0_ue_pucch = -8;
delta_tx_d_offset_list_pucch_r10_s delta_tx_d_offset_list_pucch_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoCommon ::= SEQUENCE
struct ant_info_common_s {
struct ant_ports_count_opts {
enum options { an1, an2, an4, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ant_ports_count_opts> ant_ports_count_e_;
// member variables
ant_ports_count_e_ ant_ports_count;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HighSpeedConfigSCell-r14 ::= SEQUENCE
struct high_speed_cfg_scell_r14_s {
bool high_speed_enhanced_demod_flag_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-MainConfigSCell-r11 ::= SEQUENCE
struct mac_main_cfg_scell_r11_s {
bool ext = false;
bool stag_id_r11_present = false;
uint8_t stag_id_r11 = 1;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-Config ::= SEQUENCE
struct prach_cfg_s {
bool prach_cfg_info_present = false;
uint16_t root_seq_idx = 0;
prach_cfg_info_s prach_cfg_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PRACH-ConfigSCell-r10 ::= SEQUENCE
struct prach_cfg_scell_r10_s {
uint8_t prach_cfg_idx_r10 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysicalConfigDedicatedSCell-r10 ::= SEQUENCE
struct phys_cfg_ded_scell_r10_s {
struct non_ul_cfg_r10_s_ {
bool ant_info_r10_present = false;
bool cross_carrier_sched_cfg_r10_present = false;
bool csi_rs_cfg_r10_present = false;
bool pdsch_cfg_ded_r10_present = false;
ant_info_ded_r10_s ant_info_r10;
cross_carrier_sched_cfg_r10_s cross_carrier_sched_cfg_r10;
csi_rs_cfg_r10_s csi_rs_cfg_r10;
pdsch_cfg_ded_s pdsch_cfg_ded_r10;
};
struct ul_cfg_r10_s_ {
bool ant_info_ul_r10_present = false;
bool pusch_cfg_ded_scell_r10_present = false;
bool ul_pwr_ctrl_ded_scell_r10_present = false;
bool cqi_report_cfg_scell_r10_present = false;
bool srs_ul_cfg_ded_r10_present = false;
bool srs_ul_cfg_ded_v1020_present = false;
bool srs_ul_cfg_ded_aperiodic_r10_present = false;
ant_info_ul_r10_s ant_info_ul_r10;
pusch_cfg_ded_scell_r10_s pusch_cfg_ded_scell_r10;
ul_pwr_ctrl_ded_scell_r10_s ul_pwr_ctrl_ded_scell_r10;
cqi_report_cfg_scell_r10_s cqi_report_cfg_scell_r10;
srs_ul_cfg_ded_c srs_ul_cfg_ded_r10;
srs_ul_cfg_ded_v1020_s srs_ul_cfg_ded_v1020;
srs_ul_cfg_ded_aperiodic_r10_c srs_ul_cfg_ded_aperiodic_r10;
};
struct pucch_scell_c_ {
struct setup_s_ {
bool pucch_cfg_ded_r13_present = false;
bool sched_request_cfg_r13_present = false;
bool tpc_pdcch_cfg_pucch_scell_r13_present = false;
bool pusch_cfg_ded_r13_present = false;
bool ul_pwr_ctrl_ded_r13_present = false;
pucch_cfg_ded_r13_s pucch_cfg_ded_r13;
sched_request_cfg_scell_r13_c sched_request_cfg_r13;
tpc_pdcch_cfg_scell_r13_c tpc_pdcch_cfg_pucch_scell_r13;
pusch_cfg_ded_r13_s pusch_cfg_ded_r13;
ul_pwr_ctrl_ded_scell_v1310_s ul_pwr_ctrl_ded_r13;
};
typedef setup_e types;
// choice methods
pucch_scell_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "pucch-SCell");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pucch-SCell");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
using srs_ul_periodic_cfg_ded_list_r14_l_ = dyn_array<srs_ul_cfg_ded_c>;
using srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_ = dyn_array<srs_ul_cfg_ded_up_pts_ext_r13_c>;
using srs_ul_aperiodic_cfg_ded_list_r14_l_ = dyn_array<srs_aperiodic_set_r14_s>;
using srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_ = dyn_array<srs_aperiodic_set_up_pts_ext_r14_s>;
struct must_cfg_r14_c_ {
struct setup_s_ {
struct k_max_r14_opts {
enum options { l1, l3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<k_max_r14_opts> k_max_r14_e_;
struct p_a_must_r14_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_must_r14_opts> p_a_must_r14_e_;
// member variables
bool p_a_must_r14_present = false;
k_max_r14_e_ k_max_r14;
p_a_must_r14_e_ p_a_must_r14;
};
typedef setup_e types;
// choice methods
must_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "must-Config-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "must-Config-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct semi_static_cfi_cfg_r15_c_ {
struct setup_c_ {
struct types_opts {
enum options { cfi_cfg_r15, cfi_pattern_cfg_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cfi_cfg_r15_s& cfi_cfg_r15()
{
assert_choice_type("cfi-Config-r15", type_.to_string(), "setup");
return c.get<cfi_cfg_r15_s>();
}
cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15()
{
assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup");
return c.get<cfi_pattern_cfg_r15_s>();
}
const cfi_cfg_r15_s& cfi_cfg_r15() const
{
assert_choice_type("cfi-Config-r15", type_.to_string(), "setup");
return c.get<cfi_cfg_r15_s>();
}
const cfi_pattern_cfg_r15_s& cfi_pattern_cfg_r15() const
{
assert_choice_type("cfi-PatternConfig-r15", type_.to_string(), "setup");
return c.get<cfi_pattern_cfg_r15_s>();
}
cfi_cfg_r15_s& set_cfi_cfg_r15()
{
set(types::cfi_cfg_r15);
return c.get<cfi_cfg_r15_s>();
}
cfi_pattern_cfg_r15_s& set_cfi_pattern_cfg_r15()
{
set(types::cfi_pattern_cfg_r15);
return c.get<cfi_pattern_cfg_r15_s>();
}
private:
types type_;
choice_buffer_t<cfi_cfg_r15_s, cfi_pattern_cfg_r15_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
semi_static_cfi_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "semiStaticCFI-Config-r15");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct blind_pdsch_repeat_cfg_r15_c_ {
struct setup_s_ {
struct max_num_sf_pdsch_repeats_r15_opts {
enum options { n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_sf_pdsch_repeats_r15_opts> max_num_sf_pdsch_repeats_r15_e_;
struct max_num_slot_subslot_pdsch_repeats_r15_opts {
enum options { n4, n6, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_num_slot_subslot_pdsch_repeats_r15_opts> max_num_slot_subslot_pdsch_repeats_r15_e_;
struct rv_sf_pdsch_repeats_r15_opts {
enum options { dlrvseq1, dlrvseq2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_sf_pdsch_repeats_r15_opts> rv_sf_pdsch_repeats_r15_e_;
struct rv_slotsublot_pdsch_repeats_r15_opts {
enum options { dlrvseq1, dlrvseq2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<rv_slotsublot_pdsch_repeats_r15_opts> rv_slotsublot_pdsch_repeats_r15_e_;
struct mcs_restrict_sf_pdsch_repeats_r15_opts {
enum options { n0, n1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mcs_restrict_sf_pdsch_repeats_r15_opts> mcs_restrict_sf_pdsch_repeats_r15_e_;
struct mcs_restrict_slot_subslot_pdsch_repeats_r15_opts {
enum options { n0, n1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mcs_restrict_slot_subslot_pdsch_repeats_r15_opts>
mcs_restrict_slot_subslot_pdsch_repeats_r15_e_;
// member variables
bool max_num_sf_pdsch_repeats_r15_present = false;
bool max_num_slot_subslot_pdsch_repeats_r15_present = false;
bool rv_sf_pdsch_repeats_r15_present = false;
bool rv_slotsublot_pdsch_repeats_r15_present = false;
bool nof_processes_sf_pdsch_repeats_r15_present = false;
bool nof_processes_slot_subslot_pdsch_repeats_r15_present = false;
bool mcs_restrict_sf_pdsch_repeats_r15_present = false;
bool mcs_restrict_slot_subslot_pdsch_repeats_r15_present = false;
bool blind_sf_pdsch_repeats_r15 = false;
bool blind_slot_subslot_pdsch_repeats_r15 = false;
max_num_sf_pdsch_repeats_r15_e_ max_num_sf_pdsch_repeats_r15;
max_num_slot_subslot_pdsch_repeats_r15_e_ max_num_slot_subslot_pdsch_repeats_r15;
rv_sf_pdsch_repeats_r15_e_ rv_sf_pdsch_repeats_r15;
rv_slotsublot_pdsch_repeats_r15_e_ rv_slotsublot_pdsch_repeats_r15;
uint8_t nof_processes_sf_pdsch_repeats_r15 = 1;
uint8_t nof_processes_slot_subslot_pdsch_repeats_r15 = 1;
mcs_restrict_sf_pdsch_repeats_r15_e_ mcs_restrict_sf_pdsch_repeats_r15;
mcs_restrict_slot_subslot_pdsch_repeats_r15_e_ mcs_restrict_slot_subslot_pdsch_repeats_r15;
};
typedef setup_e types;
// choice methods
blind_pdsch_repeat_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "blindPDSCH-Repetition-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool non_ul_cfg_r10_present = false;
bool ul_cfg_r10_present = false;
non_ul_cfg_r10_s_ non_ul_cfg_r10;
ul_cfg_r10_s_ ul_cfg_r10;
// ...
// group 0
copy_ptr<csi_rs_cfg_nzp_to_release_list_r11_l> csi_rs_cfg_nzp_to_release_list_r11;
copy_ptr<csi_rs_cfg_nzp_to_add_mod_list_r11_l> csi_rs_cfg_nzp_to_add_mod_list_r11;
copy_ptr<csi_rs_cfg_zp_to_release_list_r11_l> csi_rs_cfg_zp_to_release_list_r11;
copy_ptr<csi_rs_cfg_zp_to_add_mod_list_r11_l> csi_rs_cfg_zp_to_add_mod_list_r11;
copy_ptr<epdcch_cfg_r11_s> epdcch_cfg_r11;
copy_ptr<pdsch_cfg_ded_v1130_s> pdsch_cfg_ded_v1130;
copy_ptr<cqi_report_cfg_v1130_s> cqi_report_cfg_v1130;
copy_ptr<pusch_cfg_ded_v1130_s> pusch_cfg_ded_v1130;
copy_ptr<ul_pwr_ctrl_ded_v1130_s> ul_pwr_ctrl_ded_scell_v1130;
// group 1
copy_ptr<ant_info_ded_v1250_s> ant_info_v1250;
copy_ptr<eimta_main_cfg_serv_cell_r12_c> eimta_main_cfg_scell_r12;
copy_ptr<cqi_report_cfg_v1250_s> cqi_report_cfg_scell_v1250;
copy_ptr<ul_pwr_ctrl_ded_v1250_s> ul_pwr_ctrl_ded_scell_v1250;
copy_ptr<csi_rs_cfg_v1250_s> csi_rs_cfg_v1250;
// group 2
copy_ptr<pdsch_cfg_ded_v1280_s> pdsch_cfg_ded_v1280;
// group 3
bool pucch_cell_r13_present = false;
copy_ptr<pucch_scell_c_> pucch_scell;
copy_ptr<cross_carrier_sched_cfg_r13_s> cross_carrier_sched_cfg_r13;
copy_ptr<pdcch_cfg_scell_r13_s> pdcch_cfg_scell_r13;
copy_ptr<cqi_report_cfg_v1310_s> cqi_report_cfg_v1310;
copy_ptr<pdsch_cfg_ded_v1310_s> pdsch_cfg_ded_v1310;
copy_ptr<srs_ul_cfg_ded_v1310_c> srs_ul_cfg_ded_v1310;
copy_ptr<srs_ul_cfg_ded_up_pts_ext_r13_c> srs_ul_cfg_ded_up_pts_ext_r13;
copy_ptr<srs_ul_cfg_ded_aperiodic_v1310_c> srs_ul_cfg_ded_aperiodic_v1310;
copy_ptr<srs_ul_cfg_ded_aperiodic_up_pts_ext_r13_c> srs_ul_cfg_ded_aperiodic_up_pts_ext_r13;
copy_ptr<csi_rs_cfg_v1310_s> csi_rs_cfg_v1310;
copy_ptr<laa_scell_cfg_r13_s> laa_scell_cfg_r13;
copy_ptr<csi_rs_cfg_nzp_to_add_mod_list_ext_r13_l> csi_rs_cfg_nzp_to_add_mod_list_ext_r13;
copy_ptr<csi_rs_cfg_nzp_to_release_list_ext_r13_l> csi_rs_cfg_nzp_to_release_list_ext_r13;
// group 4
copy_ptr<cqi_report_cfg_v1320_s> cqi_report_cfg_v1320;
// group 5
bool semi_open_loop_r14_present = false;
copy_ptr<laa_scell_cfg_v1430_s> laa_scell_cfg_v1430;
copy_ptr<srs_tpc_pdcch_cfg_r14_c> type_b_srs_tpc_pdcch_cfg_r14;
copy_ptr<ul_pusch_less_pwr_ctrl_ded_v1430_s> ul_pusch_less_pwr_ctrl_ded_v1430;
copy_ptr<srs_ul_periodic_cfg_ded_list_r14_l_> srs_ul_periodic_cfg_ded_list_r14;
copy_ptr<srs_ul_periodic_cfg_ded_up_pts_ext_list_r14_l_> srs_ul_periodic_cfg_ded_up_pts_ext_list_r14;
copy_ptr<srs_ul_aperiodic_cfg_ded_list_r14_l_> srs_ul_aperiodic_cfg_ded_list_r14;
copy_ptr<srs_ul_cfg_ded_ap_up_pts_ext_list_r14_l_> srs_ul_cfg_ded_ap_up_pts_ext_list_r14;
copy_ptr<must_cfg_r14_c_> must_cfg_r14;
copy_ptr<pusch_cfg_ded_scell_v1430_s> pusch_cfg_ded_v1430;
copy_ptr<csi_rs_cfg_v1430_s> csi_rs_cfg_v1430;
copy_ptr<csi_rs_cfg_zp_ap_list_r14_c> csi_rs_cfg_zp_ap_list_r14;
copy_ptr<cqi_report_cfg_v1430_s> cqi_report_cfg_v1430;
bool semi_open_loop_r14 = false;
copy_ptr<pdsch_cfg_ded_scell_v1430_s> pdsch_cfg_ded_scell_v1430;
// group 6
copy_ptr<csi_rs_cfg_v1480_s> csi_rs_cfg_v1480;
// 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_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;
copy_ptr<ul_pwr_ctrl_ded_v1530_s> ul_pwr_ctrl_ded_scell_v1530;
copy_ptr<laa_scell_cfg_v1530_s> laa_scell_cfg_v1530;
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysicalConfigDedicatedSCell-v1370 ::= SEQUENCE
struct phys_cfg_ded_scell_v1370_s {
struct pucch_scell_v1370_c_ {
struct setup_s_ {
bool pucch_cfg_ded_v1370_present = false;
pucch_cfg_ded_v1370_s pucch_cfg_ded_v1370;
};
typedef setup_e types;
// choice methods
pucch_scell_v1370_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "pucch-SCell-v1370");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "pucch-SCell-v1370");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
pucch_scell_v1370_c_ pucch_scell_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RACH-ConfigCommonSCell-r11 ::= SEQUENCE
struct rach_cfg_common_scell_r11_s {
struct ra_supervision_info_r11_s_ {
preamb_trans_max_e preamb_trans_max_r11;
};
// member variables
bool ext = false;
pwr_ramp_params_s pwr_ramp_params_r11;
ra_supervision_info_r11_s_ ra_supervision_info_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommon-v1530 ::= SEQUENCE
struct ul_pwr_ctrl_common_v1530_s {
delta_flist_spucch_r15_c delta_flist_spucch_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommonPUSCH-LessCell-v1430 ::= SEQUENCE
struct ul_pwr_ctrl_common_pusch_less_cell_v1430_s {
bool p0_nominal_periodic_srs_r14_present = false;
bool p0_nominal_aperiodic_srs_r14_present = false;
bool alpha_srs_r14_present = false;
int8_t p0_nominal_periodic_srs_r14 = -126;
int8_t p0_nominal_aperiodic_srs_r14 = -126;
alpha_r12_e alpha_srs_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommonSCell-r10 ::= SEQUENCE
struct ul_pwr_ctrl_common_scell_r10_s {
int8_t p0_nominal_pusch_r10 = -126;
alpha_r12_e alpha_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommonSCell-v1130 ::= SEQUENCE
struct ul_pwr_ctrl_common_scell_v1130_s {
int8_t delta_preamb_msg3_r11 = -1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommonSCell-v1310 ::= SEQUENCE
struct ul_pwr_ctrl_common_scell_v1310_s {
struct delta_f_pucch_format3_r12_opts {
enum options {
delta_f_minus1,
delta_f0,
delta_f1,
delta_f2,
delta_f3,
delta_f4,
delta_f5,
delta_f6,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format3_r12_opts> delta_f_pucch_format3_r12_e_;
struct delta_f_pucch_format1b_cs_r12_opts {
enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format1b_cs_r12_opts> delta_f_pucch_format1b_cs_r12_e_;
struct delta_f_pucch_format4_r13_opts {
enum options {
delta_f16,
delta_f15,
delta_f14,
delta_f13,
delta_f12,
delta_f11,
delta_f10,
spare1,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format4_r13_opts> delta_f_pucch_format4_r13_e_;
struct delta_f_pucch_format5_minus13_opts {
enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format5_minus13_opts> delta_f_pucch_format5_minus13_e_;
// member variables
bool delta_f_pucch_format3_r12_present = false;
bool delta_f_pucch_format1b_cs_r12_present = false;
bool delta_f_pucch_format4_r13_present = false;
bool delta_f_pucch_format5_minus13_present = false;
int8_t p0_nominal_pucch = -127;
delta_flist_pucch_s delta_flist_pucch;
delta_f_pucch_format3_r12_e_ delta_f_pucch_format3_r12;
delta_f_pucch_format1b_cs_r12_e_ delta_f_pucch_format1b_cs_r12;
delta_f_pucch_format4_r13_e_ delta_f_pucch_format4_r13;
delta_f_pucch_format5_minus13_e_ delta_f_pucch_format5_minus13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AntennaInfoDedicated-v10i0 ::= SEQUENCE
struct ant_info_ded_v10i0_s {
struct max_layers_mimo_r10_opts {
enum options { two_layers, four_layers, eight_layers, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_layers_mimo_r10_opts> max_layers_mimo_r10_e_;
// member variables
bool max_layers_mimo_r10_present = false;
max_layers_mimo_r10_e_ max_layers_mimo_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonSCell-r10 ::= SEQUENCE
struct rr_cfg_common_scell_r10_s {
struct non_ul_cfg_r10_s_ {
struct dl_bw_r10_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<dl_bw_r10_opts> dl_bw_r10_e_;
// member variables
bool mbsfn_sf_cfg_list_r10_present = false;
bool tdd_cfg_r10_present = false;
dl_bw_r10_e_ dl_bw_r10;
ant_info_common_s ant_info_common_r10;
mbsfn_sf_cfg_list_l mbsfn_sf_cfg_list_r10;
phich_cfg_s phich_cfg_r10;
pdsch_cfg_common_s pdsch_cfg_common_r10;
tdd_cfg_s tdd_cfg_r10;
};
struct ul_cfg_r10_s_ {
struct ul_freq_info_r10_s_ {
struct ul_bw_r10_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_bw_r10_opts> ul_bw_r10_e_;
// member variables
bool ul_carrier_freq_r10_present = false;
bool ul_bw_r10_present = false;
uint32_t ul_carrier_freq_r10 = 0;
ul_bw_r10_e_ ul_bw_r10;
uint8_t add_spec_emission_scell_r10 = 1;
};
// member variables
bool p_max_r10_present = false;
bool prach_cfg_scell_r10_present = false;
ul_freq_info_r10_s_ ul_freq_info_r10;
int8_t p_max_r10 = -30;
ul_pwr_ctrl_common_scell_r10_s ul_pwr_ctrl_common_scell_r10;
srs_ul_cfg_common_c srs_ul_cfg_common_r10;
ul_cp_len_e ul_cp_len_r10;
prach_cfg_scell_r10_s prach_cfg_scell_r10;
pusch_cfg_common_s pusch_cfg_common_r10;
};
struct ul_cfg_r14_s_ {
struct ul_freq_info_r14_s_ {
struct ul_bw_r14_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_bw_r14_opts> ul_bw_r14_e_;
// member variables
bool ul_carrier_freq_r14_present = false;
bool ul_bw_r14_present = false;
uint32_t ul_carrier_freq_r14 = 0;
ul_bw_r14_e_ ul_bw_r14;
uint8_t add_spec_emission_scell_r14 = 1;
};
// member variables
bool p_max_r14_present = false;
bool prach_cfg_scell_r14_present = false;
bool ul_pwr_ctrl_common_pusch_less_cell_v1430_present = false;
ul_freq_info_r14_s_ ul_freq_info_r14;
int8_t p_max_r14 = -30;
srs_ul_cfg_common_c srs_ul_cfg_common_r14;
ul_cp_len_e ul_cp_len_r14;
prach_cfg_scell_r10_s prach_cfg_scell_r14;
ul_pwr_ctrl_common_pusch_less_cell_v1430_s ul_pwr_ctrl_common_pusch_less_cell_v1430;
};
struct harq_ref_cfg_r14_opts {
enum options { sa2, sa4, sa5, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<harq_ref_cfg_r14_opts> harq_ref_cfg_r14_e_;
// member variables
bool ext = false;
bool ul_cfg_r10_present = false;
non_ul_cfg_r10_s_ non_ul_cfg_r10;
ul_cfg_r10_s_ ul_cfg_r10;
// ...
// group 0
bool ul_carrier_freq_v1090_present = false;
uint32_t ul_carrier_freq_v1090 = 65536;
// group 1
copy_ptr<rach_cfg_common_scell_r11_s> rach_cfg_common_scell_r11;
copy_ptr<prach_cfg_s> prach_cfg_scell_r11;
copy_ptr<tdd_cfg_v1130_s> tdd_cfg_v1130;
copy_ptr<ul_pwr_ctrl_common_scell_v1130_s> ul_pwr_ctrl_common_scell_v1130;
// group 2
copy_ptr<pusch_cfg_common_v1270_s> pusch_cfg_common_v1270;
// group 3
copy_ptr<pucch_cfg_common_s> pucch_cfg_common_r13;
copy_ptr<ul_pwr_ctrl_common_scell_v1310_s> ul_pwr_ctrl_common_scell_v1310;
// group 4
bool harq_ref_cfg_r14_present = false;
bool srs_flex_timing_r14_present = false;
copy_ptr<high_speed_cfg_scell_r14_s> high_speed_cfg_scell_r14;
copy_ptr<prach_cfg_v1430_s> prach_cfg_v1430;
copy_ptr<ul_cfg_r14_s_> ul_cfg_r14;
harq_ref_cfg_r14_e_ harq_ref_cfg_r14;
// group 5
copy_ptr<mbsfn_sf_cfg_list_v1430_l> mbsfn_sf_cfg_list_v1430;
// group 6
copy_ptr<ul_pwr_ctrl_common_v1530_s> ul_pwr_ctrl_common_scell_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicatedSCell-r10 ::= SEQUENCE
struct rr_cfg_ded_scell_r10_s {
bool ext = false;
bool phys_cfg_ded_scell_r10_present = false;
phys_cfg_ded_scell_r10_s phys_cfg_ded_scell_r10;
// ...
// group 0
copy_ptr<mac_main_cfg_scell_r11_s> mac_main_cfg_scell_r11;
// group 1
copy_ptr<naics_assist_info_r12_c> naics_info_r12;
// group 2
copy_ptr<neigh_cells_crs_info_r13_c> neigh_cells_crs_info_scell_r13;
// group 3
copy_ptr<phys_cfg_ded_scell_v1370_s> phys_cfg_ded_scell_v1370;
// group 4
bool crs_intf_mitig_enabled_r15_present = false;
bool crs_intf_mitig_enabled_r15 = false;
copy_ptr<neigh_cells_crs_info_r15_c> neigh_cells_crs_info_r15;
copy_ptr<sps_cfg_v1530_s> sps_cfg_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModExt-r13 ::= SEQUENCE
struct scell_to_add_mod_ext_r13_s {
struct cell_identif_r13_s_ {
uint16_t pci_r13 = 0;
uint32_t dl_carrier_freq_r13 = 0;
};
// member variables
bool cell_identif_r13_present = false;
bool rr_cfg_common_scell_r13_present = false;
bool rr_cfg_ded_scell_r13_present = false;
bool ant_info_ded_scell_r13_present = false;
uint8_t scell_idx_r13 = 1;
cell_identif_r13_s_ cell_identif_r13;
rr_cfg_common_scell_r10_s rr_cfg_common_scell_r13;
rr_cfg_ded_scell_r10_s rr_cfg_ded_scell_r13;
ant_info_ded_v10i0_s ant_info_ded_scell_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CipheringAlgorithm-r12 ::= ENUMERATED
struct ciphering_algorithm_r12_opts {
enum options { eea0, eea1, eea2, eea3_v1130, spare4, spare3, spare2, spare1, /*...*/ nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ciphering_algorithm_r12_opts, true> ciphering_algorithm_r12_e;
// SCellConfigCommon-r15 ::= SEQUENCE
struct scell_cfg_common_r15_s {
bool rr_cfg_common_scell_r15_present = false;
bool rr_cfg_ded_scell_r15_present = false;
bool ant_info_ded_scell_r15_present = false;
rr_cfg_common_scell_r10_s rr_cfg_common_scell_r15;
rr_cfg_ded_scell_r10_s rr_cfg_ded_scell_r15;
ant_info_ded_v10i0_s ant_info_ded_scell_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModListExt-r13 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-r13
using scell_to_add_mod_list_ext_r13_l = dyn_array<scell_to_add_mod_ext_r13_s>;
// SCellToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..31)) OF INTEGER (1..31)
using scell_to_release_list_ext_r13_l = bounded_array<uint8_t, 31>;
// SL-DiscTxPoolToAddMod-r12 ::= SEQUENCE
struct sl_disc_tx_pool_to_add_mod_r12_s {
uint8_t pool_id_r12 = 1;
sl_disc_res_pool_r12_s pool_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TF-IndexPair-r12b ::= SEQUENCE
struct sl_tf_idx_pair_r12b_s {
bool disc_sf_idx_r12b_present = false;
bool disc_prb_idx_r12b_present = false;
uint8_t disc_sf_idx_r12b = 0;
uint8_t disc_prb_idx_r12b = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellGroupToAddMod-r15 ::= SEQUENCE
struct scell_group_to_add_mod_r15_s {
bool scell_cfg_common_r15_present = false;
bool scell_to_release_list_r15_present = false;
bool scell_to_add_mod_list_r15_present = false;
uint8_t scell_group_idx_r15 = 1;
scell_cfg_common_r15_s scell_cfg_common_r15;
scell_to_release_list_ext_r13_l scell_to_release_list_r15;
scell_to_add_mod_list_ext_r13_l scell_to_add_mod_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-DiscTxPoolToAddMod-r12
using sl_disc_tx_pool_to_add_mod_list_r12_l = dyn_array<sl_disc_tx_pool_to_add_mod_r12_s>;
// SL-HoppingConfigDisc-r12 ::= SEQUENCE
struct sl_hop_cfg_disc_r12_s {
struct c_r12_opts {
enum options { n1, n5, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<c_r12_opts> c_r12_e_;
// member variables
uint8_t a_r12 = 1;
uint8_t b_r12 = 1;
c_r12_e_ c_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TF-IndexPairList-r12b ::= SEQUENCE (SIZE (1..64)) OF SL-TF-IndexPair-r12b
using sl_tf_idx_pair_list_r12b_l = dyn_array<sl_tf_idx_pair_r12b_s>;
// SL-TxPoolToReleaseList-r12 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..4)
using sl_tx_pool_to_release_list_r12_l = bounded_array<uint8_t, 4>;
// SecurityAlgorithmConfig ::= SEQUENCE
struct security_algorithm_cfg_s {
struct integrity_prot_algorithm_opts {
enum options { eia0_v920, eia1, eia2, eia3_v1130, spare4, spare3, spare2, spare1, /*...*/ nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<integrity_prot_algorithm_opts, true> integrity_prot_algorithm_e_;
// member variables
ciphering_algorithm_r12_e ciphering_algorithm;
integrity_prot_algorithm_e_ integrity_prot_algorithm;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-ToAddModSCG-r12 ::= SEQUENCE
struct drb_to_add_mod_scg_r12_s {
struct drb_type_r12_c_ {
struct scg_r12_s_ {
bool eps_bearer_id_r12_present = false;
bool pdcp_cfg_r12_present = false;
uint8_t eps_bearer_id_r12 = 0;
pdcp_cfg_s pdcp_cfg_r12;
};
struct types_opts {
enum options { split_r12, scg_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
drb_type_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_r12_s_& scg_r12()
{
assert_choice_type("scg-r12", type_.to_string(), "drb-Type-r12");
return c;
}
const scg_r12_s_& scg_r12() const
{
assert_choice_type("scg-r12", type_.to_string(), "drb-Type-r12");
return c;
}
scg_r12_s_& set_scg_r12()
{
set(types::scg_r12);
return c;
}
private:
types type_;
scg_r12_s_ c;
};
// member variables
bool ext = false;
bool drb_type_r12_present = false;
bool rlc_cfg_scg_r12_present = false;
bool rlc_cfg_v1250_present = false;
bool lc_ch_id_scg_r12_present = false;
bool lc_ch_cfg_scg_r12_present = false;
uint8_t drb_id_r12 = 1;
drb_type_r12_c_ drb_type_r12;
rlc_cfg_c rlc_cfg_scg_r12;
rlc_cfg_v1250_s rlc_cfg_v1250;
uint8_t lc_ch_id_scg_r12 = 3;
lc_ch_cfg_s lc_ch_cfg_scg_r12;
// ...
// group 0
copy_ptr<rlc_cfg_v1430_c> rlc_cfg_v1430;
// group 1
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IKE-Identity-r13 ::= SEQUENCE
struct ike_id_r13_s {
dyn_octstring id_i_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IP-Address-r13 ::= CHOICE
struct ip_address_r13_c {
struct types_opts {
enum options { ipv4_r13, ipv6_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
ip_address_r13_c() = default;
ip_address_r13_c(const ip_address_r13_c& other);
ip_address_r13_c& operator=(const ip_address_r13_c& other);
~ip_address_r13_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<32>& ipv4_r13()
{
assert_choice_type("ipv4-r13", type_.to_string(), "IP-Address-r13");
return c.get<fixed_bitstring<32> >();
}
fixed_bitstring<128>& ipv6_r13()
{
assert_choice_type("ipv6-r13", type_.to_string(), "IP-Address-r13");
return c.get<fixed_bitstring<128> >();
}
const fixed_bitstring<32>& ipv4_r13() const
{
assert_choice_type("ipv4-r13", type_.to_string(), "IP-Address-r13");
return c.get<fixed_bitstring<32> >();
}
const fixed_bitstring<128>& ipv6_r13() const
{
assert_choice_type("ipv6-r13", type_.to_string(), "IP-Address-r13");
return c.get<fixed_bitstring<128> >();
}
fixed_bitstring<32>& set_ipv4_r13()
{
set(types::ipv4_r13);
return c.get<fixed_bitstring<32> >();
}
fixed_bitstring<128>& set_ipv6_r13()
{
set(types::ipv6_r13);
return c.get<fixed_bitstring<128> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<128> > c;
void destroy_();
};
// PhysicalConfigDedicated-v1370 ::= SEQUENCE
struct phys_cfg_ded_v1370_s {
bool pucch_cfg_ded_v1370_present = false;
pucch_cfg_ded_v1370_s pucch_cfg_ded_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RAN-AreaConfig-r15 ::= SEQUENCE
struct ran_area_cfg_r15_s {
using ran_area_code_list_r15_l_ = bounded_array<uint16_t, 32>;
// member variables
bool ran_area_code_list_r15_present = false;
fixed_bitstring<24> tac_minus5_gc_r15;
ran_area_code_list_r15_l_ ran_area_code_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonSCell-v10l0 ::= SEQUENCE
struct rr_cfg_common_scell_v10l0_s {
struct ul_cfg_v10l0_s_ {
uint16_t add_spec_emission_scell_v10l0 = 33;
};
// member variables
ul_cfg_v10l0_s_ ul_cfg_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonSCell-v1440 ::= SEQUENCE
struct rr_cfg_common_scell_v1440_s {
struct ul_cfg_v1440_s_ {
struct ul_freq_info_v1440_s_ {
uint16_t add_spec_emission_scell_v1440 = 33;
};
// member variables
ul_freq_info_v1440_s_ ul_freq_info_v1440;
};
// member variables
ul_cfg_v1440_s_ ul_cfg_v1440;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellGroupToAddModList-r15 ::= SEQUENCE (SIZE (1..4)) OF SCellGroupToAddMod-r15
using scell_group_to_add_mod_list_r15_l = dyn_array<scell_group_to_add_mod_r15_s>;
// SCellGroupToReleaseList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..4)
using scell_group_to_release_list_r15_l = bounded_array<uint8_t, 4>;
// SL-DiscTxConfigScheduled-r13 ::= SEQUENCE
struct sl_disc_tx_cfg_sched_r13_s {
bool ext = false;
bool disc_tx_cfg_r13_present = false;
bool disc_tf_idx_list_r13_present = false;
bool disc_hop_cfg_r13_present = false;
sl_disc_res_pool_r12_s disc_tx_cfg_r13;
sl_tf_idx_pair_list_r12b_l disc_tf_idx_list_r13;
sl_hop_cfg_disc_r12_s disc_hop_cfg_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxPoolDedicated-r13 ::= SEQUENCE
struct sl_disc_tx_pool_ded_r13_s {
bool pool_to_release_list_r13_present = false;
bool pool_to_add_mod_list_r13_present = false;
sl_tx_pool_to_release_list_r12_l pool_to_release_list_r13;
sl_disc_tx_pool_to_add_mod_list_r12_l pool_to_add_mod_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-ReliabilityList-r15 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (1..8)
using sl_reliability_list_r15_l = bounded_array<uint8_t, 8>;
// SL-TxPoolToAddMod-r14 ::= SEQUENCE
struct sl_tx_pool_to_add_mod_r14_s {
uint8_t pool_id_r14 = 1;
sl_comm_res_pool_v2x_r14_s pool_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityConfigHO-v1530 ::= SEQUENCE
struct security_cfg_ho_v1530_s {
struct ho_type_v1530_c_ {
struct intra5_gc_r15_s_ {
bool security_algorithm_cfg_r15_present = false;
bool nas_container_r15_present = false;
security_algorithm_cfg_s security_algorithm_cfg_r15;
bool key_change_ind_r15 = false;
uint8_t next_hop_chaining_count_r15 = 0;
dyn_octstring nas_container_r15;
};
struct ngc_to_epc_r15_s_ {
security_algorithm_cfg_s security_algorithm_cfg_r15;
uint8_t next_hop_chaining_count_r15 = 0;
};
struct epc_to_ngc_r15_s_ {
security_algorithm_cfg_s security_algorithm_cfg_r15;
dyn_octstring nas_container_r15;
};
struct types_opts {
enum options { intra5_gc_r15, ngc_to_epc_r15, epc_to_ngc_r15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
ho_type_v1530_c_() = default;
ho_type_v1530_c_(const ho_type_v1530_c_& other);
ho_type_v1530_c_& operator=(const ho_type_v1530_c_& other);
~ho_type_v1530_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
intra5_gc_r15_s_& intra5_gc_r15()
{
assert_choice_type("intra5GC-r15", type_.to_string(), "handoverType-v1530");
return c.get<intra5_gc_r15_s_>();
}
ngc_to_epc_r15_s_& ngc_to_epc_r15()
{
assert_choice_type("ngc-ToEPC-r15", type_.to_string(), "handoverType-v1530");
return c.get<ngc_to_epc_r15_s_>();
}
epc_to_ngc_r15_s_& epc_to_ngc_r15()
{
assert_choice_type("epc-ToNGC-r15", type_.to_string(), "handoverType-v1530");
return c.get<epc_to_ngc_r15_s_>();
}
const intra5_gc_r15_s_& intra5_gc_r15() const
{
assert_choice_type("intra5GC-r15", type_.to_string(), "handoverType-v1530");
return c.get<intra5_gc_r15_s_>();
}
const ngc_to_epc_r15_s_& ngc_to_epc_r15() const
{
assert_choice_type("ngc-ToEPC-r15", type_.to_string(), "handoverType-v1530");
return c.get<ngc_to_epc_r15_s_>();
}
const epc_to_ngc_r15_s_& epc_to_ngc_r15() const
{
assert_choice_type("epc-ToNGC-r15", type_.to_string(), "handoverType-v1530");
return c.get<epc_to_ngc_r15_s_>();
}
intra5_gc_r15_s_& set_intra5_gc_r15()
{
set(types::intra5_gc_r15);
return c.get<intra5_gc_r15_s_>();
}
ngc_to_epc_r15_s_& set_ngc_to_epc_r15()
{
set(types::ngc_to_epc_r15);
return c.get<ngc_to_epc_r15_s_>();
}
epc_to_ngc_r15_s_& set_epc_to_ngc_r15()
{
set(types::epc_to_ngc_r15);
return c.get<epc_to_ngc_r15_s_>();
}
private:
types type_;
choice_buffer_t<epc_to_ngc_r15_s_, intra5_gc_r15_s_, ngc_to_epc_r15_s_> c;
void destroy_();
};
// member variables
bool ext = false;
ho_type_v1530_c_ ho_type_v1530;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommon-v1310 ::= SEQUENCE
struct ul_pwr_ctrl_common_v1310_s {
struct delta_f_pucch_format4_r13_opts {
enum options {
delta_f16,
delta_f15,
delta_f14,
delta_f13,
delta_f12,
delta_f11,
delta_f10,
spare1,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format4_r13_opts> delta_f_pucch_format4_r13_e_;
struct delta_f_pucch_format5_minus13_opts {
enum options { delta_f13, delta_f12, delta_f11, delta_f10, delta_f9, delta_f8, delta_f7, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format5_minus13_opts> delta_f_pucch_format5_minus13_e_;
// member variables
bool delta_f_pucch_format4_r13_present = false;
bool delta_f_pucch_format5_minus13_present = false;
delta_f_pucch_format4_r13_e_ delta_f_pucch_format4_r13;
delta_f_pucch_format5_minus13_e_ delta_f_pucch_format5_minus13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UplinkPowerControlCommonPSCell-r12 ::= SEQUENCE
struct ul_pwr_ctrl_common_ps_cell_r12_s {
struct delta_f_pucch_format3_r12_opts {
enum options {
delta_f_minus1,
delta_f0,
delta_f1,
delta_f2,
delta_f3,
delta_f4,
delta_f5,
delta_f6,
nulltype
} value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format3_r12_opts> delta_f_pucch_format3_r12_e_;
struct delta_f_pucch_format1b_cs_r12_opts {
enum options { delta_f1, delta_f2, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<delta_f_pucch_format1b_cs_r12_opts> delta_f_pucch_format1b_cs_r12_e_;
// member variables
delta_f_pucch_format3_r12_e_ delta_f_pucch_format3_r12;
delta_f_pucch_format1b_cs_r12_e_ delta_f_pucch_format1b_cs_r12;
int8_t p0_nominal_pucch_r12 = -127;
delta_flist_pucch_s delta_flist_pucch_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// 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-SuspendConfig-r14 ::= SEQUENCE
struct wlan_suspend_cfg_r14_s {
bool wlan_suspend_resume_allowed_r14_present = false;
bool wlan_suspend_triggers_status_report_r14_present = false;
bool wlan_suspend_resume_allowed_r14 = false;
bool wlan_suspend_triggers_status_report_r14 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-ToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..11)) OF DRB-ToAddModSCG-r12
using drb_to_add_mod_list_scg_r12_l = dyn_array<drb_to_add_mod_scg_r12_s>;
// DRB-ToAddModListSCG-r15 ::= SEQUENCE (SIZE (1..15)) OF DRB-ToAddModSCG-r12
using drb_to_add_mod_list_scg_r15_l = dyn_array<drb_to_add_mod_scg_r12_s>;
// LogicalChGroupInfoList-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-PriorityList-r13
using lc_ch_group_info_list_r13_l = dyn_array<sl_prio_list_r13_l>;
// LogicalChGroupInfoList-v1530 ::= SEQUENCE (SIZE (1..4)) OF SL-ReliabilityList-r15
using lc_ch_group_info_list_v1530_l = dyn_array<sl_reliability_list_r15_l>;
// MAC-MainConfigSL-r12 ::= SEQUENCE
struct mac_main_cfg_sl_r12_s {
bool periodic_bsr_timer_sl_present = false;
periodic_bsr_timer_r12_e periodic_bsr_timer_sl;
retx_bsr_timer_r12_e retx_bsr_timer_sl;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-RAN-AreaCell-r15 ::= SEQUENCE
struct plmn_ran_area_cell_r15_s {
using ran_area_cells_r15_l_ = bounded_array<fixed_bitstring<28>, 32>;
// member variables
bool plmn_id_r15_present = false;
plmn_id_s plmn_id_r15;
ran_area_cells_r15_l_ ran_area_cells_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-RAN-AreaConfig-r15 ::= SEQUENCE
struct plmn_ran_area_cfg_r15_s {
using ran_area_r15_l_ = dyn_array<ran_area_cfg_r15_s>;
// member variables
bool plmn_id_r15_present = false;
plmn_id_s plmn_id_r15;
ran_area_r15_l_ ran_area_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// 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(bit_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(bit_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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLF-TimersAndConstantsSCG-r12 ::= CHOICE
struct rlf_timers_and_consts_scg_r12_c {
struct setup_s_ {
struct t313_r12_opts {
enum options { ms0, ms50, ms100, ms200, ms500, ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t313_r12_opts> t313_r12_e_;
struct n313_r12_opts {
enum options { n1, n2, n3, n4, n6, n8, n10, n20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n313_r12_opts> n313_r12_e_;
struct n314_r12_opts {
enum options { n1, n2, n3, n4, n5, n6, n8, n10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<n314_r12_opts> n314_r12_e_;
// member variables
bool ext = false;
t313_r12_e_ t313_r12;
n313_r12_e_ n313_r12;
n314_r12_e_ n314_r12;
// ...
};
typedef setup_e types;
// choice methods
rlf_timers_and_consts_scg_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstantsSCG-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RLF-TimersAndConstantsSCG-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReconfiguration-v1530-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1530_ies_s {
using ded_info_nas_list_r15_l_ = bounded_array<dyn_octstring, 15>;
// member variables
bool security_cfg_ho_v1530_present = false;
bool scell_group_to_release_list_r15_present = false;
bool scell_group_to_add_mod_list_r15_present = false;
bool ded_info_nas_list_r15_present = false;
bool p_max_ue_fr1_r15_present = false;
bool smtc_r15_present = false;
bool non_crit_ext_present = false;
security_cfg_ho_v1530_s security_cfg_ho_v1530;
scell_group_to_release_list_r15_l scell_group_to_release_list_r15;
scell_group_to_add_mod_list_r15_l scell_group_to_add_mod_list_r15;
ded_info_nas_list_r15_l_ ded_info_nas_list_r15;
int8_t p_max_ue_fr1_r15 = -30;
mtc_ssb_nr_r15_s smtc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonPSCell-r12 ::= SEQUENCE
struct rr_cfg_common_ps_cell_r12_s {
bool ext = false;
rr_cfg_common_scell_r10_s basic_fields_r12;
pucch_cfg_common_s pucch_cfg_common_r12;
rach_cfg_common_s rach_cfg_common_r12;
ul_pwr_ctrl_common_ps_cell_r12_s ul_pwr_ctrl_common_ps_cell_r12;
// ...
// group 0
copy_ptr<ul_pwr_ctrl_common_v1310_s> ul_pwr_ctrl_common_ps_cell_v1310;
// group 1
copy_ptr<ul_pwr_ctrl_common_v1530_s> ul_pwr_ctrl_common_ps_cell_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonPSCell-v12f0 ::= SEQUENCE
struct rr_cfg_common_ps_cell_v12f0_s {
rr_cfg_common_scell_v10l0_s basic_fields_v12f0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommonPSCell-v1440 ::= SEQUENCE
struct rr_cfg_common_ps_cell_v1440_s {
rr_cfg_common_scell_v1440_s basic_fields_v1440;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicatedPSCell-r12 ::= SEQUENCE
struct rr_cfg_ded_ps_cell_r12_s {
bool ext = false;
bool phys_cfg_ded_ps_cell_r12_present = false;
bool sps_cfg_r12_present = false;
bool naics_info_r12_present = false;
phys_cfg_ded_s phys_cfg_ded_ps_cell_r12;
sps_cfg_s sps_cfg_r12;
naics_assist_info_r12_c naics_info_r12;
// ...
// group 0
copy_ptr<neigh_cells_crs_info_r13_c> neigh_cells_crs_info_ps_cell_r13;
// group 1
copy_ptr<sps_cfg_v1430_s> sps_cfg_v1430;
// group 2
bool crs_intf_mitig_enabled_r15_present = false;
copy_ptr<sps_cfg_v1530_s> sps_cfg_v1530;
bool crs_intf_mitig_enabled_r15 = false;
copy_ptr<neigh_cells_crs_info_r15_c> neigh_cells_crs_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicatedPSCell-v1370 ::= SEQUENCE
struct rr_cfg_ded_ps_cell_v1370_s {
bool phys_cfg_ded_ps_cell_v1370_present = false;
phys_cfg_ded_v1370_s phys_cfg_ded_ps_cell_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddMod-r10 ::= SEQUENCE
struct scell_to_add_mod_r10_s {
struct cell_identif_r10_s_ {
uint16_t pci_r10 = 0;
uint32_t dl_carrier_freq_r10 = 0;
};
struct scell_state_r15_opts {
enum options { activ, dormant, nulltype } value;
std::string to_string() const;
};
typedef enumerated<scell_state_r15_opts> scell_state_r15_e_;
// member variables
bool ext = false;
bool cell_identif_r10_present = false;
bool rr_cfg_common_scell_r10_present = false;
bool rr_cfg_ded_scell_r10_present = false;
uint8_t scell_idx_r10 = 1;
cell_identif_r10_s_ cell_identif_r10;
rr_cfg_common_scell_r10_s rr_cfg_common_scell_r10;
rr_cfg_ded_scell_r10_s rr_cfg_ded_scell_r10;
// ...
// group 0
bool dl_carrier_freq_v1090_present = false;
uint32_t dl_carrier_freq_v1090 = 65536;
// group 1
copy_ptr<ant_info_ded_v10i0_s> ant_info_ded_scell_v10i0;
// group 2
bool srs_switch_from_serv_cell_idx_r14_present = false;
uint8_t srs_switch_from_serv_cell_idx_r14 = 0;
// group 3
bool scell_state_r15_present = false;
scell_state_r15_e_ scell_state_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddMod-v10l0 ::= SEQUENCE
struct scell_to_add_mod_v10l0_s {
bool rr_cfg_common_scell_v10l0_present = false;
rr_cfg_common_scell_v10l0_s rr_cfg_common_scell_v10l0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModExt-v1370 ::= SEQUENCE
struct scell_to_add_mod_ext_v1370_s {
bool rr_cfg_common_scell_v1370_present = false;
rr_cfg_common_scell_v10l0_s rr_cfg_common_scell_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModExt-v1430 ::= SEQUENCE
struct scell_to_add_mod_ext_v1430_s {
struct scell_state_r15_opts {
enum options { activ, dormant, nulltype } value;
std::string to_string() const;
};
typedef enumerated<scell_state_r15_opts> scell_state_r15_e_;
// member variables
bool ext = false;
bool srs_switch_from_serv_cell_idx_r14_present = false;
uint8_t srs_switch_from_serv_cell_idx_r14 = 0;
// ...
// group 0
bool scell_state_r15_present = false;
scell_state_r15_e_ scell_state_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxRefCarrierDedicated-r13 ::= CHOICE
struct sl_disc_tx_ref_carrier_ded_r13_c {
struct types_opts {
enum options { pcell, scell, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sl_disc_tx_ref_carrier_ded_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& scell()
{
assert_choice_type("sCell", type_.to_string(), "SL-DiscTxRefCarrierDedicated-r13");
return c;
}
const uint8_t& scell() const
{
assert_choice_type("sCell", type_.to_string(), "SL-DiscTxRefCarrierDedicated-r13");
return c;
}
uint8_t& set_scell()
{
set(types::scell);
return c;
}
private:
types type_;
uint8_t c;
};
// SL-DiscTxResource-r13 ::= CHOICE
struct sl_disc_tx_res_r13_c {
struct setup_c_ {
struct types_opts {
enum options { sched_r13, ue_sel_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_disc_tx_cfg_sched_r13_s& sched_r13()
{
assert_choice_type("scheduled-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
sl_disc_tx_pool_ded_r13_s& ue_sel_r13()
{
assert_choice_type("ue-Selected-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_pool_ded_r13_s>();
}
const sl_disc_tx_cfg_sched_r13_s& sched_r13() const
{
assert_choice_type("scheduled-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
const sl_disc_tx_pool_ded_r13_s& ue_sel_r13() const
{
assert_choice_type("ue-Selected-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_pool_ded_r13_s>();
}
sl_disc_tx_cfg_sched_r13_s& set_sched_r13()
{
set(types::sched_r13);
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
sl_disc_tx_pool_ded_r13_s& set_ue_sel_r13()
{
set(types::ue_sel_r13);
return c.get<sl_disc_tx_pool_ded_r13_s>();
}
private:
types type_;
choice_buffer_t<sl_disc_tx_cfg_sched_r13_s, sl_disc_tx_pool_ded_r13_s> c;
void destroy_();
};
typedef setup_e types;
// choice methods
sl_disc_tx_res_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "SL-DiscTxResource-r13");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SL-DiscTxResource-r13");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// SL-GapPattern-r13 ::= SEQUENCE
struct sl_gap_pattern_r13_s {
struct gap_period_r13_opts {
enum options {
sf40,
sf60,
sf70,
sf80,
sf120,
sf140,
sf160,
sf240,
sf280,
sf320,
sf640,
sf1280,
sf2560,
sf5120,
sf10240,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<gap_period_r13_opts> gap_period_r13_e_;
// member variables
bool ext = false;
gap_period_r13_e_ gap_period_r13;
sl_offset_ind_r12_c gap_offset_r12;
bounded_bitstring<1, 10240> gap_sf_bitmap_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TxPoolToAddModListV2X-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-TxPoolToAddMod-r14
using sl_tx_pool_to_add_mod_list_v2x_r14_l = dyn_array<sl_tx_pool_to_add_mod_r14_s>;
// 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;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sf_assign_r15_opts> sf_assign_r15_e;
// TunnelConfigLWIP-r13 ::= SEQUENCE
struct tunnel_cfg_lwip_r13_s {
bool ext = false;
ip_address_r13_c ip_address_r13;
ike_id_r13_s ike_id_r13;
// ...
// group 0
bool lwip_counter_r13_present = false;
uint32_t lwip_counter_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-MobilityConfig-r13 ::= SEQUENCE
struct wlan_mob_cfg_r13_s {
struct assoc_timer_r13_opts {
enum options { s10, s30, s60, s120, s240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<assoc_timer_r13_opts> assoc_timer_r13_e_;
// member variables
bool ext = false;
bool wlan_to_release_list_r13_present = false;
bool wlan_to_add_list_r13_present = false;
bool assoc_timer_r13_present = false;
bool success_report_requested_r13_present = false;
wlan_id_list_r13_l wlan_to_release_list_r13;
wlan_id_list_r13_l wlan_to_add_list_r13;
assoc_timer_r13_e_ assoc_timer_r13;
// ...
// group 0
copy_ptr<wlan_suspend_cfg_r14_s> wlan_suspend_cfg_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-BandwidthClass-r10 ::= ENUMERATED
struct ca_bw_class_r10_opts {
enum options { a, b, c, d, e, f, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<ca_bw_class_r10_opts, true> ca_bw_class_r10_e;
// LWA-Config-r13 ::= SEQUENCE
struct lwa_cfg_r13_s {
bool ext = false;
bool lwa_mob_cfg_r13_present = false;
bool lwa_wt_counter_r13_present = false;
wlan_mob_cfg_r13_s lwa_mob_cfg_r13;
uint32_t lwa_wt_counter_r13 = 0;
// ...
// group 0
bool wt_mac_address_r14_present = false;
fixed_octstring<6> wt_mac_address_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWIP-Config-r13 ::= SEQUENCE
struct lwip_cfg_r13_s {
bool ext = false;
bool lwip_mob_cfg_r13_present = false;
bool tunnel_cfg_lwip_r13_present = false;
wlan_mob_cfg_r13_s lwip_mob_cfg_r13;
tunnel_cfg_lwip_r13_s tunnel_cfg_lwip_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityControlInfoSCG-r12 ::= SEQUENCE
struct mob_ctrl_info_scg_r12_s {
struct t307_r12_opts {
enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t307_r12_opts> t307_r12_e_;
// member variables
bool ext = false;
bool ue_id_scg_r12_present = false;
bool rach_cfg_ded_r12_present = false;
bool ciphering_algorithm_scg_r12_present = false;
t307_r12_e_ t307_r12;
fixed_bitstring<16> ue_id_scg_r12;
rach_cfg_ded_s rach_cfg_ded_r12;
ciphering_algorithm_r12_e ciphering_algorithm_scg_r12;
// ...
// group 0
bool make_before_break_scg_r14_present = false;
copy_ptr<rach_skip_r14_s> rach_skip_scg_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-RAN-AreaCellList-r15 ::= SEQUENCE (SIZE (1..8)) OF PLMN-RAN-AreaCell-r15
using plmn_ran_area_cell_list_r15_l = dyn_array<plmn_ran_area_cell_r15_s>;
// PLMN-RAN-AreaConfigList-r15 ::= SEQUENCE (SIZE (1..8)) OF PLMN-RAN-AreaConfig-r15
using plmn_ran_area_cfg_list_r15_l = dyn_array<plmn_ran_area_cfg_r15_s>;
// PSCellToAddMod-r12 ::= SEQUENCE
struct ps_cell_to_add_mod_r12_s {
struct cell_identif_r12_s_ {
uint16_t pci_r12 = 0;
uint32_t dl_carrier_freq_r12 = 0;
};
// member variables
bool ext = false;
bool cell_identif_r12_present = false;
bool rr_cfg_common_ps_cell_r12_present = false;
bool rr_cfg_ded_ps_cell_r12_present = false;
uint8_t scell_idx_r12 = 1;
cell_identif_r12_s_ cell_identif_r12;
rr_cfg_common_ps_cell_r12_s rr_cfg_common_ps_cell_r12;
rr_cfg_ded_ps_cell_r12_s rr_cfg_ded_ps_cell_r12;
// ...
// group 0
copy_ptr<ant_info_ded_v10i0_s> ant_info_ded_ps_cell_v1280;
// group 1
bool scell_idx_r13_present = false;
uint8_t scell_idx_r13 = 1;
// group 2
copy_ptr<rr_cfg_ded_ps_cell_v1370_s> rr_cfg_ded_ps_cell_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PSCellToAddMod-v12f0 ::= SEQUENCE
struct ps_cell_to_add_mod_v12f0_s {
bool rr_cfg_common_ps_cell_r12_present = false;
rr_cfg_common_ps_cell_v12f0_s rr_cfg_common_ps_cell_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PSCellToAddMod-v1440 ::= SEQUENCE
struct ps_cell_to_add_mod_v1440_s {
bool rr_cfg_common_ps_cell_r14_present = false;
rr_cfg_common_ps_cell_v1440_s rr_cfg_common_ps_cell_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RCLWI-Config-r13 ::= SEQUENCE
struct rclwi_cfg_r13_s {
struct cmd_c_ {
struct steer_to_wlan_r13_s_ {
wlan_id_list_r12_l mob_cfg_r13;
};
struct types_opts {
enum options { steer_to_wlan_r13, steer_to_lte_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cmd_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
steer_to_wlan_r13_s_& steer_to_wlan_r13()
{
assert_choice_type("steerToWLAN-r13", type_.to_string(), "command");
return c;
}
const steer_to_wlan_r13_s_& steer_to_wlan_r13() const
{
assert_choice_type("steerToWLAN-r13", type_.to_string(), "command");
return c;
}
steer_to_wlan_r13_s_& set_steer_to_wlan_r13()
{
set(types::steer_to_wlan_r13);
return c;
}
private:
types type_;
steer_to_wlan_r13_s_ c;
};
// member variables
bool ext = false;
cmd_c_ cmd;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v1510-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1510_ies_s {
struct nr_cfg_r15_c_ {
struct setup_s_ {
bool nr_secondary_cell_group_cfg_r15_present = false;
bool p_max_eutra_r15_present = false;
bool endc_release_and_add_r15 = false;
dyn_octstring nr_secondary_cell_group_cfg_r15;
int8_t p_max_eutra_r15 = -30;
};
typedef setup_e types;
// choice methods
nr_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "nr-Config-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "nr-Config-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
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(bit_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;
};
// member variables
bool nr_cfg_r15_present = false;
bool sk_counter_r15_present = false;
bool nr_radio_bearer_cfg1_r15_present = false;
bool nr_radio_bearer_cfg2_r15_present = false;
bool tdm_pattern_cfg_r15_present = false;
bool non_crit_ext_present = false;
nr_cfg_r15_c_ nr_cfg_r15;
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;
rrc_conn_recfg_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicatedSCG-r12 ::= SEQUENCE
struct rr_cfg_ded_scg_r12_s {
bool ext = false;
bool drb_to_add_mod_list_scg_r12_present = false;
bool mac_main_cfg_scg_r12_present = false;
bool rlf_timers_and_consts_scg_r12_present = false;
drb_to_add_mod_list_scg_r12_l drb_to_add_mod_list_scg_r12;
mac_main_cfg_s mac_main_cfg_scg_r12;
rlf_timers_and_consts_scg_r12_c rlf_timers_and_consts_scg_r12;
// ...
// group 0
copy_ptr<drb_to_add_mod_list_scg_r15_l> drb_to_add_mod_list_scg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModList-r10 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-r10
using scell_to_add_mod_list_r10_l = dyn_array<scell_to_add_mod_r10_s>;
// SCellToAddModList-v10l0 ::= SEQUENCE (SIZE (1..4)) OF SCellToAddMod-v10l0
using scell_to_add_mod_list_v10l0_l = dyn_array<scell_to_add_mod_v10l0_s>;
// SCellToAddModListExt-v1370 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-v1370
using scell_to_add_mod_list_ext_v1370_l = dyn_array<scell_to_add_mod_ext_v1370_s>;
// SCellToAddModListExt-v1430 ::= SEQUENCE (SIZE (1..31)) OF SCellToAddModExt-v1430
using scell_to_add_mod_list_ext_v1430_l = dyn_array<scell_to_add_mod_ext_v1430_s>;
// SCellToReleaseList-r10 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (1..7)
using scell_to_release_list_r10_l = bounded_array<uint8_t, 4>;
// SL-CommTxPoolToAddMod-r12 ::= SEQUENCE
struct sl_comm_tx_pool_to_add_mod_r12_s {
uint8_t pool_id_r12 = 1;
sl_comm_res_pool_r12_s pool_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CommTxPoolToAddModExt-r13 ::= SEQUENCE
struct sl_comm_tx_pool_to_add_mod_ext_r13_s {
uint8_t pool_id_v1310 = 5;
sl_comm_res_pool_r12_s pool_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxResourceInfoPerFreq-r13 ::= SEQUENCE
struct sl_disc_tx_res_info_per_freq_r13_s {
bool ext = false;
bool disc_tx_res_r13_present = false;
bool disc_tx_res_ps_r13_present = false;
bool disc_tx_ref_carrier_ded_r13_present = false;
bool disc_cell_sel_info_r13_present = false;
uint32_t disc_tx_carrier_freq_r13 = 0;
sl_disc_tx_res_r13_c disc_tx_res_r13;
sl_disc_tx_res_r13_c disc_tx_res_ps_r13;
sl_disc_tx_ref_carrier_ded_r13_c disc_tx_ref_carrier_ded_r13;
cell_sel_info_nfreq_r13_s disc_cell_sel_info_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-GapPatternList-r13 ::= SEQUENCE (SIZE (1..8)) OF SL-GapPattern-r13
using sl_gap_pattern_list_r13_l = dyn_array<sl_gap_pattern_r13_s>;
// SL-TF-IndexPair-r12 ::= SEQUENCE
struct sl_tf_idx_pair_r12_s {
bool disc_sf_idx_r12_present = false;
bool disc_prb_idx_r12_present = false;
uint8_t disc_sf_idx_r12 = 1;
uint8_t disc_prb_idx_r12 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-ConfigDedicated-r14 ::= SEQUENCE
struct sl_v2x_cfg_ded_r14_s {
struct comm_tx_res_r14_c_ {
struct setup_c_ {
struct sched_r14_s_ {
bool v2x_sched_pool_r14_present = false;
bool mcs_r14_present = false;
fixed_bitstring<16> sl_v_rnti_r14;
mac_main_cfg_sl_r12_s mac_main_cfg_r14;
sl_comm_res_pool_v2x_r14_s v2x_sched_pool_r14;
uint8_t mcs_r14 = 0;
lc_ch_group_info_list_r13_l lc_ch_group_info_list_r14;
};
struct ue_sel_r14_s_ {
struct v2x_comm_tx_pool_normal_ded_r14_s_ {
bool pool_to_release_list_r14_present = false;
bool pool_to_add_mod_list_r14_present = false;
bool v2x_comm_tx_pool_sensing_cfg_r14_present = false;
sl_tx_pool_to_release_list_v2x_r14_l pool_to_release_list_r14;
sl_tx_pool_to_add_mod_list_v2x_r14_l pool_to_add_mod_list_r14;
sl_comm_tx_pool_sensing_cfg_r14_s v2x_comm_tx_pool_sensing_cfg_r14;
};
// member variables
v2x_comm_tx_pool_normal_ded_r14_s_ v2x_comm_tx_pool_normal_ded_r14;
};
struct types_opts {
enum options { sched_r14, ue_sel_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sched_r14_s_& sched_r14()
{
assert_choice_type("scheduled-r14", type_.to_string(), "setup");
return c.get<sched_r14_s_>();
}
ue_sel_r14_s_& ue_sel_r14()
{
assert_choice_type("ue-Selected-r14", type_.to_string(), "setup");
return c.get<ue_sel_r14_s_>();
}
const sched_r14_s_& sched_r14() const
{
assert_choice_type("scheduled-r14", type_.to_string(), "setup");
return c.get<sched_r14_s_>();
}
const ue_sel_r14_s_& ue_sel_r14() const
{
assert_choice_type("ue-Selected-r14", type_.to_string(), "setup");
return c.get<ue_sel_r14_s_>();
}
sched_r14_s_& set_sched_r14()
{
set(types::sched_r14);
return c.get<sched_r14_s_>();
}
ue_sel_r14_s_& set_ue_sel_r14()
{
set(types::ue_sel_r14);
return c.get<ue_sel_r14_s_>();
}
private:
types type_;
choice_buffer_t<sched_r14_s_, ue_sel_r14_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
comm_tx_res_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "commTxResources-r14");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "commTxResources-r14");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct comm_tx_res_v1530_c_ {
struct setup_c_ {
struct sched_v1530_s_ {
bool lc_ch_group_info_list_v1530_present = false;
bool mcs_r15_present = false;
lc_ch_group_info_list_v1530_l lc_ch_group_info_list_v1530;
uint8_t mcs_r15 = 0;
};
struct ue_sel_v1530_s_ {
bool v2x_freq_sel_cfg_list_r15_present = false;
sl_v2x_freq_sel_cfg_list_r15_l v2x_freq_sel_cfg_list_r15;
};
struct types_opts {
enum options { sched_v1530, ue_sel_v1530, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sched_v1530_s_& sched_v1530()
{
assert_choice_type("scheduled-v1530", type_.to_string(), "setup");
return c.get<sched_v1530_s_>();
}
ue_sel_v1530_s_& ue_sel_v1530()
{
assert_choice_type("ue-Selected-v1530", type_.to_string(), "setup");
return c.get<ue_sel_v1530_s_>();
}
const sched_v1530_s_& sched_v1530() const
{
assert_choice_type("scheduled-v1530", type_.to_string(), "setup");
return c.get<sched_v1530_s_>();
}
const ue_sel_v1530_s_& ue_sel_v1530() const
{
assert_choice_type("ue-Selected-v1530", type_.to_string(), "setup");
return c.get<ue_sel_v1530_s_>();
}
sched_v1530_s_& set_sched_v1530()
{
set(types::sched_v1530);
return c.get<sched_v1530_s_>();
}
ue_sel_v1530_s_& set_ue_sel_v1530()
{
set(types::ue_sel_v1530);
return c.get<ue_sel_v1530_s_>();
}
private:
types type_;
choice_buffer_t<sched_v1530_s_, ue_sel_v1530_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
comm_tx_res_v1530_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "commTxResources-v1530");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "commTxResources-v1530");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// member variables
bool ext = false;
bool comm_tx_res_r14_present = false;
bool v2x_inter_freq_info_list_r14_present = false;
bool thres_sl_tx_prioritization_r14_present = false;
bool type_tx_sync_r14_present = false;
bool cbr_ded_tx_cfg_list_r14_present = false;
comm_tx_res_r14_c_ comm_tx_res_r14;
sl_inter_freq_info_list_v2x_r14_l v2x_inter_freq_info_list_r14;
uint8_t thres_sl_tx_prioritization_r14 = 1;
sl_type_tx_sync_r14_e type_tx_sync_r14;
sl_cbr_common_tx_cfg_list_r14_s cbr_ded_tx_cfg_list_r14;
// ...
// group 0
bool slss_tx_multi_freq_r15_present = false;
copy_ptr<comm_tx_res_v1530_c_> comm_tx_res_v1530;
copy_ptr<sl_v2x_packet_dupl_cfg_r15_s> v2x_packet_dupl_cfg_r15;
copy_ptr<sl_v2x_sync_freq_list_r15_l> sync_freq_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
uint16_t band_eutra_r14 = 1;
ca_bw_class_r10_e ca_bw_class_dl_r14;
ca_bw_class_r10_e ca_bw_class_ul_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWA-Configuration-r13 ::= CHOICE
struct lwa_cfg_r13_c {
struct setup_s_ {
lwa_cfg_r13_s lwa_cfg_r13;
};
typedef setup_e types;
// choice methods
lwa_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "LWA-Configuration-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "LWA-Configuration-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// LWIP-Configuration-r13 ::= CHOICE
struct lwip_cfg_r13_c {
struct setup_s_ {
lwip_cfg_r13_s lwip_cfg_r13;
};
typedef setup_e types;
// choice methods
lwip_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "LWIP-Configuration-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "LWIP-Configuration-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasCSI-RS-Config-r12 ::= SEQUENCE
struct meas_csi_rs_cfg_r12_s {
bool ext = false;
uint8_t meas_csi_rs_id_r12 = 1;
uint16_t pci_r12 = 0;
uint16_t scrambling_id_r12 = 0;
uint8_t res_cfg_r12 = 0;
uint8_t sf_offset_r12 = 0;
q_offset_range_e csi_rs_individual_offset_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdRangeUTRA-FDD-r9 ::= SEQUENCE
struct pci_range_utra_fdd_r9_s {
bool range_r9_present = false;
uint16_t start_r9 = 0;
uint16_t range_r9 = 2;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PowerCoordinationInfo-r12 ::= SEQUENCE
struct pwr_coordination_info_r12_s {
uint8_t p_me_nb_r12 = 1;
uint8_t p_se_nb_r12 = 1;
uint8_t pwr_ctrl_mode_r12 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RAN-NotificationAreaInfo-r15 ::= CHOICE
struct ran_notif_area_info_r15_c {
struct types_opts {
enum options { cell_list_r15, ran_area_cfg_list_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ran_notif_area_info_r15_c() = default;
ran_notif_area_info_r15_c(const ran_notif_area_info_r15_c& other);
ran_notif_area_info_r15_c& operator=(const ran_notif_area_info_r15_c& other);
~ran_notif_area_info_r15_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
plmn_ran_area_cell_list_r15_l& cell_list_r15()
{
assert_choice_type("cellList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15");
return c.get<plmn_ran_area_cell_list_r15_l>();
}
plmn_ran_area_cfg_list_r15_l& ran_area_cfg_list_r15()
{
assert_choice_type("ran-AreaConfigList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15");
return c.get<plmn_ran_area_cfg_list_r15_l>();
}
const plmn_ran_area_cell_list_r15_l& cell_list_r15() const
{
assert_choice_type("cellList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15");
return c.get<plmn_ran_area_cell_list_r15_l>();
}
const plmn_ran_area_cfg_list_r15_l& ran_area_cfg_list_r15() const
{
assert_choice_type("ran-AreaConfigList-r15", type_.to_string(), "RAN-NotificationAreaInfo-r15");
return c.get<plmn_ran_area_cfg_list_r15_l>();
}
plmn_ran_area_cell_list_r15_l& set_cell_list_r15()
{
set(types::cell_list_r15);
return c.get<plmn_ran_area_cell_list_r15_l>();
}
plmn_ran_area_cfg_list_r15_l& set_ran_area_cfg_list_r15()
{
set(types::ran_area_cfg_list_r15);
return c.get<plmn_ran_area_cfg_list_r15_l>();
}
private:
types type_;
choice_buffer_t<plmn_ran_area_cell_list_r15_l, plmn_ran_area_cfg_list_r15_l> c;
void destroy_();
};
// RCLWI-Configuration-r13 ::= CHOICE
struct rclwi_cfg_r13_c {
struct setup_s_ {
rclwi_cfg_r13_s rclwi_cfg_r13;
};
typedef setup_e types;
// choice methods
rclwi_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RCLWI-Configuration-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RCLWI-Configuration-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReconfiguration-v1430-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1430_ies_s {
bool sl_v2x_cfg_ded_r14_present = false;
bool scell_to_add_mod_list_ext_v1430_present = false;
bool per_cc_gap_ind_request_r14_present = false;
bool sib_type2_ded_r14_present = false;
bool non_crit_ext_present = false;
sl_v2x_cfg_ded_r14_s sl_v2x_cfg_ded_r14;
scell_to_add_mod_list_ext_v1430_l scell_to_add_mod_list_ext_v1430;
dyn_octstring sib_type2_ded_r14;
rrc_conn_recfg_v1510_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigDedicated-v1370 ::= SEQUENCE
struct rr_cfg_ded_v1370_s {
bool phys_cfg_ded_v1370_present = false;
phys_cfg_ded_v1370_s phys_cfg_ded_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigPartSCG-r12 ::= SEQUENCE
struct scg_cfg_part_scg_r12_s {
bool ext = false;
bool rr_cfg_ded_scg_r12_present = false;
bool scell_to_release_list_scg_r12_present = false;
bool pscell_to_add_mod_r12_present = false;
bool scell_to_add_mod_list_scg_r12_present = false;
bool mob_ctrl_info_scg_r12_present = false;
rr_cfg_ded_scg_r12_s rr_cfg_ded_scg_r12;
scell_to_release_list_r10_l scell_to_release_list_scg_r12;
ps_cell_to_add_mod_r12_s pscell_to_add_mod_r12;
scell_to_add_mod_list_r10_l scell_to_add_mod_list_scg_r12;
mob_ctrl_info_scg_r12_s mob_ctrl_info_scg_r12;
// ...
// group 0
copy_ptr<scell_to_release_list_ext_r13_l> scell_to_release_list_scg_ext_r13;
copy_ptr<scell_to_add_mod_list_ext_r13_l> scell_to_add_mod_list_scg_ext_r13;
// group 1
copy_ptr<scell_to_add_mod_list_ext_v1370_l> scell_to_add_mod_list_scg_ext_v1370;
// group 2
copy_ptr<ps_cell_to_add_mod_v1440_s> pscell_to_add_mod_v1440;
// 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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigPartSCG-v12f0 ::= SEQUENCE
struct scg_cfg_part_scg_v12f0_s {
bool pscell_to_add_mod_v12f0_present = false;
bool scell_to_add_mod_list_scg_v12f0_present = false;
ps_cell_to_add_mod_v12f0_s pscell_to_add_mod_v12f0;
scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_scg_v12f0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CommTxPoolToAddModList-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-CommTxPoolToAddMod-r12
using sl_comm_tx_pool_to_add_mod_list_r12_l = dyn_array<sl_comm_tx_pool_to_add_mod_r12_s>;
// SL-CommTxPoolToAddModListExt-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-CommTxPoolToAddModExt-r13
using sl_comm_tx_pool_to_add_mod_list_ext_r13_l = dyn_array<sl_comm_tx_pool_to_add_mod_ext_r13_s>;
// SL-DiscSysInfoToReportFreqList-r13 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..262143)
using sl_disc_sys_info_to_report_freq_list_r13_l = bounded_array<uint32_t, 8>;
// SL-DiscTxInfoInterFreqListAdd-r13 ::= SEQUENCE
struct sl_disc_tx_info_inter_freq_list_add_r13_s {
using disc_tx_freq_to_add_mod_list_r13_l_ = dyn_array<sl_disc_tx_res_info_per_freq_r13_s>;
using disc_tx_freq_to_release_list_r13_l_ = bounded_array<uint32_t, 8>;
// member variables
bool ext = false;
bool disc_tx_freq_to_add_mod_list_r13_present = false;
bool disc_tx_freq_to_release_list_r13_present = false;
disc_tx_freq_to_add_mod_list_r13_l_ disc_tx_freq_to_add_mod_list_r13;
disc_tx_freq_to_release_list_r13_l_ disc_tx_freq_to_release_list_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-GapConfig-r13 ::= SEQUENCE
struct sl_gap_cfg_r13_s {
sl_gap_pattern_list_r13_l gap_pattern_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-TF-IndexPairList-r12 ::= SEQUENCE (SIZE (1..64)) OF SL-TF-IndexPair-r12
using sl_tf_idx_pair_list_r12_l = dyn_array<sl_tf_idx_pair_r12_s>;
// SL-TxPoolToReleaseListExt-r13 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (5..8)
using sl_tx_pool_to_release_list_ext_r13_l = bounded_array<uint8_t, 4>;
// AltTTT-CellsToAddMod-r12 ::= SEQUENCE
struct alt_ttt_cells_to_add_mod_r12_s {
uint8_t cell_idx_r12 = 1;
pci_range_s pci_range_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BT-NameList-r15 ::= SEQUENCE (SIZE (1..4)) OF OCTET STRING (SIZE (1..248))
using bt_name_list_r15_l = bounded_array<dyn_octstring, 4>;
// BandCombination-r14 ::= SEQUENCE (SIZE (1..64)) OF BandIndication-r14
using band_combination_r14_l = dyn_array<band_ind_r14_s>;
// BlackCellsToAddMod ::= SEQUENCE
struct black_cells_to_add_mod_s {
uint8_t cell_idx = 1;
pci_range_s pci_range;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellsToAddMod ::= SEQUENCE
struct cells_to_add_mod_s {
uint8_t cell_idx = 1;
uint16_t pci = 0;
q_offset_range_e cell_individual_offset;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellsToAddModCDMA2000 ::= SEQUENCE
struct cells_to_add_mod_cdma2000_s {
uint8_t cell_idx = 1;
uint16_t pci = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellsToAddModNR-r15 ::= SEQUENCE
struct cells_to_add_mod_nr_r15_s {
uint8_t cell_idx_r15 = 1;
uint16_t pci_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellsToAddModUTRA-FDD ::= SEQUENCE
struct cells_to_add_mod_utra_fdd_s {
uint8_t cell_idx = 1;
uint16_t pci = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellsToAddModUTRA-TDD ::= SEQUENCE
struct cells_to_add_mod_utra_tdd_s {
uint8_t cell_idx = 1;
uint8_t pci = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FlightPathInfoReportConfig-r15 ::= SEQUENCE
struct flight_path_info_report_cfg_r15_s {
bool include_time_stamp_r15_present = false;
uint8_t max_way_point_num_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasCSI-RS-ToAddModList-r12 ::= SEQUENCE (SIZE (1..96)) OF MeasCSI-RS-Config-r12
using meas_csi_rs_to_add_mod_list_r12_l = dyn_array<meas_csi_rs_cfg_r12_s>;
// MeasCSI-RS-ToRemoveList-r12 ::= SEQUENCE (SIZE (1..96)) OF INTEGER (1..96)
using meas_csi_rs_to_rem_list_r12_l = dyn_array<uint8_t>;
// MeasIdleConfigDedicated-r15 ::= SEQUENCE
struct meas_idle_cfg_ded_r15_s {
struct meas_idle_dur_r15_opts {
enum options { sec10, sec30, sec60, sec120, sec180, sec240, sec300, spare, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<meas_idle_dur_r15_opts> meas_idle_dur_r15_e_;
// member variables
bool ext = false;
bool meas_idle_carrier_list_eutra_r15_present = false;
eutra_carrier_list_r15_l meas_idle_carrier_list_eutra_r15;
meas_idle_dur_r15_e_ meas_idle_dur_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasSubframeCellList-r10 ::= SEQUENCE (SIZE (1..32)) OF PhysCellIdRange
using meas_sf_cell_list_r10_l = dyn_array<pci_range_s>;
// PhysCellIdRangeUTRA-FDDList-r9 ::= SEQUENCE (SIZE (1..4)) OF PhysCellIdRangeUTRA-FDD-r9
using pci_range_utra_fdd_list_r9_l = dyn_array<pci_range_utra_fdd_r9_s>;
// RRC-InactiveConfig-r15 ::= SEQUENCE
struct rrc_inactive_cfg_r15_s {
struct ran_paging_cycle_r15_opts {
enum options { rf32, rf64, rf128, rf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<ran_paging_cycle_r15_opts> ran_paging_cycle_r15_e_;
struct periodic_rnau_timer_r15_opts {
enum options { min5, min10, min20, min30, min60, min120, min360, min720, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<periodic_rnau_timer_r15_opts> periodic_rnau_timer_r15_e_;
// member variables
bool ran_paging_cycle_r15_present = false;
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;
fixed_bitstring<40> full_i_rnti_r15;
fixed_bitstring<24> short_i_rnti_r15;
ran_paging_cycle_r15_e_ ran_paging_cycle_r15;
ran_notif_area_info_r15_c ran_notif_area_info_r15;
periodic_rnau_timer_r15_e_ periodic_rnau_timer_r15;
uint8_t next_hop_chaining_count_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v1310-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1310_ies_s {
bool scell_to_release_list_ext_r13_present = false;
bool scell_to_add_mod_list_ext_r13_present = false;
bool lwa_cfg_r13_present = false;
bool lwip_cfg_r13_present = false;
bool rclwi_cfg_r13_present = false;
bool non_crit_ext_present = false;
scell_to_release_list_ext_r13_l scell_to_release_list_ext_r13;
scell_to_add_mod_list_ext_r13_l scell_to_add_mod_list_ext_r13;
lwa_cfg_r13_c lwa_cfg_r13;
lwip_cfg_r13_c lwip_cfg_r13;
rclwi_cfg_r13_c rclwi_cfg_r13;
rrc_conn_recfg_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v1370-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1370_ies_s {
bool rr_cfg_ded_v1370_present = false;
bool scell_to_add_mod_list_ext_v1370_present = false;
bool non_crit_ext_present = false;
rr_cfg_ded_v1370_s rr_cfg_ded_v1370;
scell_to_add_mod_list_ext_v1370_l scell_to_add_mod_list_ext_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Configuration-r12 ::= CHOICE
struct scg_cfg_r12_c {
struct setup_s_ {
struct scg_cfg_part_mcg_r12_s_ {
bool ext = false;
bool scg_counter_r12_present = false;
bool pwr_coordination_info_r12_present = false;
uint32_t scg_counter_r12 = 0;
pwr_coordination_info_r12_s pwr_coordination_info_r12;
// ...
};
// member variables
bool scg_cfg_part_mcg_r12_present = false;
bool scg_cfg_part_scg_r12_present = false;
scg_cfg_part_mcg_r12_s_ scg_cfg_part_mcg_r12;
scg_cfg_part_scg_r12_s scg_cfg_part_scg_r12;
};
typedef setup_e types;
// choice methods
scg_cfg_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SCG-Configuration-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SCG-Configuration-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SCG-Configuration-v12f0 ::= CHOICE
struct scg_cfg_v12f0_c {
struct setup_s_ {
bool scg_cfg_part_scg_v12f0_present = false;
scg_cfg_part_scg_v12f0_s scg_cfg_part_scg_v12f0;
};
typedef setup_e types;
// choice methods
scg_cfg_v12f0_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SCG-Configuration-v12f0");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// SL-CommConfig-r12 ::= SEQUENCE
struct sl_comm_cfg_r12_s {
struct comm_tx_res_r12_c_ {
struct setup_c_ {
struct sched_r12_s_ {
bool mcs_r12_present = false;
fixed_bitstring<16> sl_rnti_r12;
mac_main_cfg_sl_r12_s mac_main_cfg_r12;
sl_comm_res_pool_r12_s sc_comm_tx_cfg_r12;
uint8_t mcs_r12 = 0;
};
struct ue_sel_r12_s_ {
struct comm_tx_pool_normal_ded_r12_s_ {
bool pool_to_release_list_r12_present = false;
bool pool_to_add_mod_list_r12_present = false;
sl_tx_pool_to_release_list_r12_l pool_to_release_list_r12;
sl_comm_tx_pool_to_add_mod_list_r12_l pool_to_add_mod_list_r12;
};
// member variables
comm_tx_pool_normal_ded_r12_s_ comm_tx_pool_normal_ded_r12;
};
struct types_opts {
enum options { sched_r12, ue_sel_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sched_r12_s_& sched_r12()
{
assert_choice_type("scheduled-r12", type_.to_string(), "setup");
return c.get<sched_r12_s_>();
}
ue_sel_r12_s_& ue_sel_r12()
{
assert_choice_type("ue-Selected-r12", type_.to_string(), "setup");
return c.get<ue_sel_r12_s_>();
}
const sched_r12_s_& sched_r12() const
{
assert_choice_type("scheduled-r12", type_.to_string(), "setup");
return c.get<sched_r12_s_>();
}
const ue_sel_r12_s_& ue_sel_r12() const
{
assert_choice_type("ue-Selected-r12", type_.to_string(), "setup");
return c.get<ue_sel_r12_s_>();
}
sched_r12_s_& set_sched_r12()
{
set(types::sched_r12);
return c.get<sched_r12_s_>();
}
ue_sel_r12_s_& set_ue_sel_r12()
{
set(types::ue_sel_r12);
return c.get<ue_sel_r12_s_>();
}
private:
types type_;
choice_buffer_t<sched_r12_s_, ue_sel_r12_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
comm_tx_res_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "commTxResources-r12");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "commTxResources-r12");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct comm_tx_res_v1310_c_ {
struct setup_c_ {
struct sched_v1310_s_ {
lc_ch_group_info_list_r13_l lc_ch_group_info_list_r13;
bool multiple_tx_r13 = false;
};
struct ue_sel_v1310_s_ {
struct comm_tx_pool_normal_ded_ext_r13_s_ {
bool pool_to_release_list_ext_r13_present = false;
bool pool_to_add_mod_list_ext_r13_present = false;
sl_tx_pool_to_release_list_ext_r13_l pool_to_release_list_ext_r13;
sl_comm_tx_pool_to_add_mod_list_ext_r13_l pool_to_add_mod_list_ext_r13;
};
// member variables
comm_tx_pool_normal_ded_ext_r13_s_ comm_tx_pool_normal_ded_ext_r13;
};
struct types_opts {
enum options { sched_v1310, ue_sel_v1310, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sched_v1310_s_& sched_v1310()
{
assert_choice_type("scheduled-v1310", type_.to_string(), "setup");
return c.get<sched_v1310_s_>();
}
ue_sel_v1310_s_& ue_sel_v1310()
{
assert_choice_type("ue-Selected-v1310", type_.to_string(), "setup");
return c.get<ue_sel_v1310_s_>();
}
const sched_v1310_s_& sched_v1310() const
{
assert_choice_type("scheduled-v1310", type_.to_string(), "setup");
return c.get<sched_v1310_s_>();
}
const ue_sel_v1310_s_& ue_sel_v1310() const
{
assert_choice_type("ue-Selected-v1310", type_.to_string(), "setup");
return c.get<ue_sel_v1310_s_>();
}
sched_v1310_s_& set_sched_v1310()
{
set(types::sched_v1310);
return c.get<sched_v1310_s_>();
}
ue_sel_v1310_s_& set_ue_sel_v1310()
{
set(types::ue_sel_v1310);
return c.get<ue_sel_v1310_s_>();
}
private:
types type_;
choice_buffer_t<sched_v1310_s_, ue_sel_v1310_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
comm_tx_res_v1310_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "commTxResources-v1310");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "commTxResources-v1310");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
// member variables
bool ext = false;
bool comm_tx_res_r12_present = false;
comm_tx_res_r12_c_ comm_tx_res_r12;
// ...
// group 0
bool comm_tx_allow_relay_ded_r13_present = false;
copy_ptr<comm_tx_res_v1310_c_> comm_tx_res_v1310;
bool comm_tx_allow_relay_ded_r13 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscConfig-r12 ::= SEQUENCE
struct sl_disc_cfg_r12_s {
struct disc_tx_res_r12_c_ {
struct setup_c_ {
struct sched_r12_s_ {
bool disc_tx_cfg_r12_present = false;
bool disc_tf_idx_list_r12_present = false;
bool disc_hop_cfg_r12_present = false;
sl_disc_res_pool_r12_s disc_tx_cfg_r12;
sl_tf_idx_pair_list_r12_l disc_tf_idx_list_r12;
sl_hop_cfg_disc_r12_s disc_hop_cfg_r12;
};
struct ue_sel_r12_s_ {
struct disc_tx_pool_ded_r12_s_ {
bool pool_to_release_list_r12_present = false;
bool pool_to_add_mod_list_r12_present = false;
sl_tx_pool_to_release_list_r12_l pool_to_release_list_r12;
sl_disc_tx_pool_to_add_mod_list_r12_l pool_to_add_mod_list_r12;
};
// member variables
bool disc_tx_pool_ded_r12_present = false;
disc_tx_pool_ded_r12_s_ disc_tx_pool_ded_r12;
};
struct types_opts {
enum options { sched_r12, ue_sel_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sched_r12_s_& sched_r12()
{
assert_choice_type("scheduled-r12", type_.to_string(), "setup");
return c.get<sched_r12_s_>();
}
ue_sel_r12_s_& ue_sel_r12()
{
assert_choice_type("ue-Selected-r12", type_.to_string(), "setup");
return c.get<ue_sel_r12_s_>();
}
const sched_r12_s_& sched_r12() const
{
assert_choice_type("scheduled-r12", type_.to_string(), "setup");
return c.get<sched_r12_s_>();
}
const ue_sel_r12_s_& ue_sel_r12() const
{
assert_choice_type("ue-Selected-r12", type_.to_string(), "setup");
return c.get<ue_sel_r12_s_>();
}
sched_r12_s_& set_sched_r12()
{
set(types::sched_r12);
return c.get<sched_r12_s_>();
}
ue_sel_r12_s_& set_ue_sel_r12()
{
set(types::ue_sel_r12);
return c.get<ue_sel_r12_s_>();
}
private:
types type_;
choice_buffer_t<sched_r12_s_, ue_sel_r12_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
disc_tx_res_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "discTxResources-r12");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "discTxResources-r12");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct disc_tf_idx_list_v1260_c_ {
struct setup_s_ {
sl_tf_idx_pair_list_r12b_l disc_tf_idx_list_r12b;
};
typedef setup_e types;
// choice methods
disc_tf_idx_list_v1260_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "discTF-IndexList-v1260");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "discTF-IndexList-v1260");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct disc_tx_res_ps_r13_c_ {
struct setup_c_ {
struct ue_sel_r13_s_ {
sl_disc_tx_pool_ded_r13_s disc_tx_pool_ps_ded_r13;
};
struct types_opts {
enum options { sched_r13, ue_sel_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
setup_c_() = default;
setup_c_(const setup_c_& other);
setup_c_& operator=(const setup_c_& other);
~setup_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_disc_tx_cfg_sched_r13_s& sched_r13()
{
assert_choice_type("scheduled-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
ue_sel_r13_s_& ue_sel_r13()
{
assert_choice_type("ue-Selected-r13", type_.to_string(), "setup");
return c.get<ue_sel_r13_s_>();
}
const sl_disc_tx_cfg_sched_r13_s& sched_r13() const
{
assert_choice_type("scheduled-r13", type_.to_string(), "setup");
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
const ue_sel_r13_s_& ue_sel_r13() const
{
assert_choice_type("ue-Selected-r13", type_.to_string(), "setup");
return c.get<ue_sel_r13_s_>();
}
sl_disc_tx_cfg_sched_r13_s& set_sched_r13()
{
set(types::sched_r13);
return c.get<sl_disc_tx_cfg_sched_r13_s>();
}
ue_sel_r13_s_& set_ue_sel_r13()
{
set(types::ue_sel_r13);
return c.get<ue_sel_r13_s_>();
}
private:
types type_;
choice_buffer_t<sl_disc_tx_cfg_sched_r13_s, ue_sel_r13_s_> c;
void destroy_();
};
typedef setup_e types;
// choice methods
disc_tx_res_ps_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_c_& setup()
{
assert_choice_type("setup", type_.to_string(), "discTxResourcesPS-r13");
return c;
}
const setup_c_& setup() const
{
assert_choice_type("setup", type_.to_string(), "discTxResourcesPS-r13");
return c;
}
setup_c_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_c_ c;
};
struct disc_tx_inter_freq_info_r13_c_ {
struct setup_s_ {
bool disc_tx_carrier_freq_r13_present = false;
bool disc_tx_ref_carrier_ded_r13_present = false;
bool disc_tx_info_inter_freq_list_add_r13_present = false;
uint32_t disc_tx_carrier_freq_r13 = 0;
sl_disc_tx_ref_carrier_ded_r13_c disc_tx_ref_carrier_ded_r13;
sl_disc_tx_info_inter_freq_list_add_r13_s disc_tx_info_inter_freq_list_add_r13;
};
typedef setup_e types;
// choice methods
disc_tx_inter_freq_info_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "discTxInterFreqInfo-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "discTxInterFreqInfo-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct disc_rx_gap_cfg_r13_c_ {
typedef setup_e types;
// choice methods
disc_rx_gap_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_gap_cfg_r13_s& setup()
{
assert_choice_type("setup", type_.to_string(), "discRxGapConfig-r13");
return c;
}
const sl_gap_cfg_r13_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "discRxGapConfig-r13");
return c;
}
sl_gap_cfg_r13_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
sl_gap_cfg_r13_s c;
};
struct disc_tx_gap_cfg_r13_c_ {
typedef setup_e types;
// choice methods
disc_tx_gap_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_gap_cfg_r13_s& setup()
{
assert_choice_type("setup", type_.to_string(), "discTxGapConfig-r13");
return c;
}
const sl_gap_cfg_r13_s& setup() const
{
assert_choice_type("setup", type_.to_string(), "discTxGapConfig-r13");
return c;
}
sl_gap_cfg_r13_s& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
sl_gap_cfg_r13_s c;
};
struct disc_sys_info_to_report_cfg_r13_c_ {
typedef setup_e types;
// choice methods
disc_sys_info_to_report_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sl_disc_sys_info_to_report_freq_list_r13_l& setup()
{
assert_choice_type("setup", type_.to_string(), "discSysInfoToReportConfig-r13");
return c;
}
const sl_disc_sys_info_to_report_freq_list_r13_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "discSysInfoToReportConfig-r13");
return c;
}
sl_disc_sys_info_to_report_freq_list_r13_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
sl_disc_sys_info_to_report_freq_list_r13_l c;
};
// member variables
bool ext = false;
bool disc_tx_res_r12_present = false;
disc_tx_res_r12_c_ disc_tx_res_r12;
// ...
// group 0
copy_ptr<disc_tf_idx_list_v1260_c_> disc_tf_idx_list_v1260;
// group 1
bool gap_requests_allowed_ded_r13_present = false;
copy_ptr<disc_tx_res_ps_r13_c_> disc_tx_res_ps_r13;
copy_ptr<disc_tx_inter_freq_info_r13_c_> disc_tx_inter_freq_info_r13;
bool gap_requests_allowed_ded_r13 = false;
copy_ptr<disc_rx_gap_cfg_r13_c_> disc_rx_gap_cfg_r13;
copy_ptr<disc_tx_gap_cfg_r13_c_> disc_tx_gap_cfg_r13;
copy_ptr<disc_sys_info_to_report_cfg_r13_c_> disc_sys_info_to_report_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-SyncTxControl-r12 ::= SEQUENCE
struct sl_sync_tx_ctrl_r12_s {
struct network_ctrl_sync_tx_r12_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<network_ctrl_sync_tx_r12_opts> network_ctrl_sync_tx_r12_e_;
// member variables
bool network_ctrl_sync_tx_r12_present = false;
network_ctrl_sync_tx_r12_e_ network_ctrl_sync_tx_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry-v1530-IEs ::= SEQUENCE
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-ChannelList-r13 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..255)
using wlan_ch_list_r13_l = bounded_array<uint16_t, 16>;
// WLAN-NameList-r15 ::= SEQUENCE (SIZE (1..4)) OF OCTET STRING (SIZE (1..32))
using wlan_name_list_r15_l = bounded_array<dyn_octstring, 4>;
// WhiteCellsToAddMod-r13 ::= SEQUENCE
struct white_cells_to_add_mod_r13_s {
uint8_t cell_idx_r13 = 1;
pci_range_s pci_range_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AltTTT-CellsToAddModList-r12 ::= SEQUENCE (SIZE (1..32)) OF AltTTT-CellsToAddMod-r12
using alt_ttt_cells_to_add_mod_list_r12_l = dyn_array<alt_ttt_cells_to_add_mod_r12_s>;
// BT-NameListConfig-r15 ::= CHOICE
struct bt_name_list_cfg_r15_c {
typedef setup_e types;
// choice methods
bt_name_list_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
bt_name_list_r15_l& setup()
{
assert_choice_type("setup", type_.to_string(), "BT-NameListConfig-r15");
return c;
}
const bt_name_list_r15_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "BT-NameListConfig-r15");
return c;
}
bt_name_list_r15_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
bt_name_list_r15_l c;
};
// BandCombinationList-r14 ::= SEQUENCE (SIZE (1..384)) OF BandCombination-r14
using band_combination_list_r14_l = dyn_array<band_combination_r14_l>;
// BlackCellsToAddModList ::= SEQUENCE (SIZE (1..32)) OF BlackCellsToAddMod
using black_cells_to_add_mod_list_l = dyn_array<black_cells_to_add_mod_s>;
// CDMA2000-Type ::= ENUMERATED
struct cdma2000_type_opts {
enum options { type1_xrtt, type_hrpd, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cdma2000_type_opts> cdma2000_type_e;
// CSG-AllowedReportingCells-r9 ::= SEQUENCE
struct csg_allowed_report_cells_r9_s {
bool pci_range_utra_fdd_list_r9_present = false;
pci_range_utra_fdd_list_r9_l pci_range_utra_fdd_list_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CandidateServingFreqListNR-r15 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (0..3279165)
using candidate_serving_freq_list_nr_r15_l = bounded_array<uint32_t, 32>;
// 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(bit_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>;
// CellsToAddModList ::= SEQUENCE (SIZE (1..32)) OF CellsToAddMod
using cells_to_add_mod_list_l = dyn_array<cells_to_add_mod_s>;
// CellsToAddModListCDMA2000 ::= SEQUENCE (SIZE (1..32)) OF CellsToAddModCDMA2000
using cells_to_add_mod_list_cdma2000_l = dyn_array<cells_to_add_mod_cdma2000_s>;
// CellsToAddModListNR-r15 ::= SEQUENCE (SIZE (1..32)) OF CellsToAddModNR-r15
using cells_to_add_mod_list_nr_r15_l = dyn_array<cells_to_add_mod_nr_r15_s>;
// CellsToAddModListUTRA-FDD ::= SEQUENCE (SIZE (1..32)) OF CellsToAddModUTRA-FDD
using cells_to_add_mod_list_utra_fdd_l = dyn_array<cells_to_add_mod_utra_fdd_s>;
// CellsToAddModListUTRA-TDD ::= SEQUENCE (SIZE (1..32)) OF CellsToAddModUTRA-TDD
using cells_to_add_mod_list_utra_tdd_l = dyn_array<cells_to_add_mod_utra_tdd_s>;
// MeasCycleSCell-r10 ::= ENUMERATED
struct meas_cycle_scell_r10_opts {
enum options { sf160, sf256, sf320, sf512, sf640, sf1024, sf1280, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<meas_cycle_scell_r10_opts> meas_cycle_scell_r10_e;
// MeasDS-Config-r12 ::= CHOICE
struct meas_ds_cfg_r12_c {
struct setup_s_ {
struct dmtc_period_offset_r12_c_ {
struct types_opts {
enum options { ms40_r12, ms80_r12, ms160_r12, /*...*/ nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
dmtc_period_offset_r12_c_() = default;
dmtc_period_offset_r12_c_(const dmtc_period_offset_r12_c_& other);
dmtc_period_offset_r12_c_& operator=(const dmtc_period_offset_r12_c_& other);
~dmtc_period_offset_r12_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& ms40_r12()
{
assert_choice_type("ms40-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
uint8_t& ms80_r12()
{
assert_choice_type("ms80-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
uint8_t& ms160_r12()
{
assert_choice_type("ms160-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
const uint8_t& ms40_r12() const
{
assert_choice_type("ms40-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
const uint8_t& ms80_r12() const
{
assert_choice_type("ms80-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
const uint8_t& ms160_r12() const
{
assert_choice_type("ms160-r12", type_.to_string(), "dmtc-PeriodOffset-r12");
return c.get<uint8_t>();
}
uint8_t& set_ms40_r12()
{
set(types::ms40_r12);
return c.get<uint8_t>();
}
uint8_t& set_ms80_r12()
{
set(types::ms80_r12);
return c.get<uint8_t>();
}
uint8_t& set_ms160_r12()
{
set(types::ms160_r12);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct ds_occasion_dur_r12_c_ {
struct types_opts {
enum options { dur_fdd_r12, dur_tdd_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ds_occasion_dur_r12_c_() = default;
ds_occasion_dur_r12_c_(const ds_occasion_dur_r12_c_& other);
ds_occasion_dur_r12_c_& operator=(const ds_occasion_dur_r12_c_& other);
~ds_occasion_dur_r12_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& dur_fdd_r12()
{
assert_choice_type("durationFDD-r12", type_.to_string(), "ds-OccasionDuration-r12");
return c.get<uint8_t>();
}
uint8_t& dur_tdd_r12()
{
assert_choice_type("durationTDD-r12", type_.to_string(), "ds-OccasionDuration-r12");
return c.get<uint8_t>();
}
const uint8_t& dur_fdd_r12() const
{
assert_choice_type("durationFDD-r12", type_.to_string(), "ds-OccasionDuration-r12");
return c.get<uint8_t>();
}
const uint8_t& dur_tdd_r12() const
{
assert_choice_type("durationTDD-r12", type_.to_string(), "ds-OccasionDuration-r12");
return c.get<uint8_t>();
}
uint8_t& set_dur_fdd_r12()
{
set(types::dur_fdd_r12);
return c.get<uint8_t>();
}
uint8_t& set_dur_tdd_r12()
{
set(types::dur_tdd_r12);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
bool meas_csi_rs_to_rem_list_r12_present = false;
bool meas_csi_rs_to_add_mod_list_r12_present = false;
dmtc_period_offset_r12_c_ dmtc_period_offset_r12;
ds_occasion_dur_r12_c_ ds_occasion_dur_r12;
meas_csi_rs_to_rem_list_r12_l meas_csi_rs_to_rem_list_r12;
meas_csi_rs_to_add_mod_list_r12_l meas_csi_rs_to_add_mod_list_r12;
// ...
};
typedef setup_e types;
// choice methods
meas_ds_cfg_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasDS-Config-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasDS-Config-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasGapConfig ::= CHOICE
struct meas_gap_cfg_c {
struct setup_s_ {
struct gap_offset_c_ {
struct types_opts {
enum options {
gp0,
gp1,
// ...
gp2_r14,
gp3_r14,
gp_ncsg0_r14,
gp_ncsg1_r14,
gp_ncsg2_r14,
gp_ncsg3_r14,
gp_non_uniform1_r14,
gp_non_uniform2_r14,
gp_non_uniform3_r14,
gp_non_uniform4_r14,
gp4_r15,
gp5_r15,
gp6_r15,
gp7_r15,
gp8_r15,
gp9_r15,
gp10_r15,
gp11_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 18> types;
// choice methods
gap_offset_c_() = default;
gap_offset_c_(const gap_offset_c_& other);
gap_offset_c_& operator=(const gap_offset_c_& other);
~gap_offset_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& gp0()
{
assert_choice_type("gp0", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp1()
{
assert_choice_type("gp1", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp2_r14()
{
assert_choice_type("gp2-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp3_r14()
{
assert_choice_type("gp3-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp_ncsg0_r14()
{
assert_choice_type("gp-ncsg0-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp_ncsg1_r14()
{
assert_choice_type("gp-ncsg1-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp_ncsg2_r14()
{
assert_choice_type("gp-ncsg2-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp_ncsg3_r14()
{
assert_choice_type("gp-ncsg3-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint16_t& gp_non_uniform1_r14()
{
assert_choice_type("gp-nonUniform1-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
uint16_t& gp_non_uniform2_r14()
{
assert_choice_type("gp-nonUniform2-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
uint16_t& gp_non_uniform3_r14()
{
assert_choice_type("gp-nonUniform3-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
uint16_t& gp_non_uniform4_r14()
{
assert_choice_type("gp-nonUniform4-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
uint8_t& gp4_r15()
{
assert_choice_type("gp4-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp5_r15()
{
assert_choice_type("gp5-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp6_r15()
{
assert_choice_type("gp6-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp7_r15()
{
assert_choice_type("gp7-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp8_r15()
{
assert_choice_type("gp8-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp9_r15()
{
assert_choice_type("gp9-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp10_r15()
{
assert_choice_type("gp10-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& gp11_r15()
{
assert_choice_type("gp11-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp0() const
{
assert_choice_type("gp0", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp1() const
{
assert_choice_type("gp1", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp2_r14() const
{
assert_choice_type("gp2-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp3_r14() const
{
assert_choice_type("gp3-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp_ncsg0_r14() const
{
assert_choice_type("gp-ncsg0-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp_ncsg1_r14() const
{
assert_choice_type("gp-ncsg1-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp_ncsg2_r14() const
{
assert_choice_type("gp-ncsg2-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp_ncsg3_r14() const
{
assert_choice_type("gp-ncsg3-r14", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint16_t& gp_non_uniform1_r14() const
{
assert_choice_type("gp-nonUniform1-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
const uint16_t& gp_non_uniform2_r14() const
{
assert_choice_type("gp-nonUniform2-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
const uint16_t& gp_non_uniform3_r14() const
{
assert_choice_type("gp-nonUniform3-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
const uint16_t& gp_non_uniform4_r14() const
{
assert_choice_type("gp-nonUniform4-r14", type_.to_string(), "gapOffset");
return c.get<uint16_t>();
}
const uint8_t& gp4_r15() const
{
assert_choice_type("gp4-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp5_r15() const
{
assert_choice_type("gp5-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp6_r15() const
{
assert_choice_type("gp6-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp7_r15() const
{
assert_choice_type("gp7-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp8_r15() const
{
assert_choice_type("gp8-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp9_r15() const
{
assert_choice_type("gp9-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp10_r15() const
{
assert_choice_type("gp10-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
const uint8_t& gp11_r15() const
{
assert_choice_type("gp11-r15", type_.to_string(), "gapOffset");
return c.get<uint8_t>();
}
uint8_t& set_gp0()
{
set(types::gp0);
return c.get<uint8_t>();
}
uint8_t& set_gp1()
{
set(types::gp1);
return c.get<uint8_t>();
}
uint8_t& set_gp2_r14()
{
set(types::gp2_r14);
return c.get<uint8_t>();
}
uint8_t& set_gp3_r14()
{
set(types::gp3_r14);
return c.get<uint8_t>();
}
uint8_t& set_gp_ncsg0_r14()
{
set(types::gp_ncsg0_r14);
return c.get<uint8_t>();
}
uint8_t& set_gp_ncsg1_r14()
{
set(types::gp_ncsg1_r14);
return c.get<uint8_t>();
}
uint8_t& set_gp_ncsg2_r14()
{
set(types::gp_ncsg2_r14);
return c.get<uint8_t>();
}
uint8_t& set_gp_ncsg3_r14()
{
set(types::gp_ncsg3_r14);
return c.get<uint8_t>();
}
uint16_t& set_gp_non_uniform1_r14()
{
set(types::gp_non_uniform1_r14);
return c.get<uint16_t>();
}
uint16_t& set_gp_non_uniform2_r14()
{
set(types::gp_non_uniform2_r14);
return c.get<uint16_t>();
}
uint16_t& set_gp_non_uniform3_r14()
{
set(types::gp_non_uniform3_r14);
return c.get<uint16_t>();
}
uint16_t& set_gp_non_uniform4_r14()
{
set(types::gp_non_uniform4_r14);
return c.get<uint16_t>();
}
uint8_t& set_gp4_r15()
{
set(types::gp4_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp5_r15()
{
set(types::gp5_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp6_r15()
{
set(types::gp6_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp7_r15()
{
set(types::gp7_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp8_r15()
{
set(types::gp8_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp9_r15()
{
set(types::gp9_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp10_r15()
{
set(types::gp10_r15);
return c.get<uint8_t>();
}
uint8_t& set_gp11_r15()
{
set(types::gp11_r15);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
gap_offset_c_ gap_offset;
};
typedef setup_e types;
// choice methods
meas_gap_cfg_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfig");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfig");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasRSSI-ReportConfig-r13 ::= SEQUENCE
struct meas_rssi_report_cfg_r13_s {
bool ch_occupancy_thres_r13_present = false;
uint8_t ch_occupancy_thres_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasSensing-Config-r15 ::= SEQUENCE
struct meas_sensing_cfg_r15_s {
struct sensing_periodicity_r15_opts {
enum options { ms20, ms50, ms100, ms200, ms300, ms400, ms500, ms600, ms700, ms800, ms900, ms1000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<sensing_periodicity_r15_opts> sensing_periodicity_r15_e_;
// member variables
uint8_t sensing_subch_num_r15 = 1;
sensing_periodicity_r15_e_ sensing_periodicity_r15;
uint8_t sensing_resel_counter_r15 = 5;
uint8_t sensing_prio_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasSubframePatternConfigNeigh-r10 ::= CHOICE
struct meas_sf_pattern_cfg_neigh_r10_c {
struct setup_s_ {
bool meas_sf_cell_list_r10_present = false;
meas_sf_pattern_r10_c meas_sf_pattern_neigh_r10;
meas_sf_cell_list_r10_l meas_sf_cell_list_r10;
};
typedef setup_e types;
// choice methods
meas_sf_pattern_cfg_neigh_r10_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasSubframePatternConfigNeigh-r10");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasSubframePatternConfigNeigh-r10");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhysCellIdGERAN ::= SEQUENCE
struct pci_geran_s {
fixed_bitstring<3> network_colour_code;
fixed_bitstring<3> base_station_colour_code;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigRS-NR-r15 ::= SEQUENCE
struct quant_cfg_rs_nr_r15_s {
bool filt_coeff_rsrp_r15_present = false;
bool filt_coeff_rsrq_r15_present = false;
bool filt_coef_sinr_r13_present = false;
filt_coef_e filt_coeff_rsrp_r15;
filt_coef_e filt_coeff_rsrq_r15;
filt_coef_e filt_coef_sinr_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RMTC-Config-r13 ::= CHOICE
struct rmtc_cfg_r13_c {
struct setup_s_ {
struct rmtc_period_r13_opts {
enum options { ms40, ms80, ms160, ms320, ms640, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<rmtc_period_r13_opts> rmtc_period_r13_e_;
struct meas_dur_r13_opts {
enum options { sym1, sym14, sym28, sym42, sym70, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<meas_dur_r13_opts> meas_dur_r13_e_;
// member variables
bool ext = false;
bool rmtc_sf_offset_r13_present = false;
rmtc_period_r13_e_ rmtc_period_r13;
uint16_t rmtc_sf_offset_r13 = 0;
meas_dur_r13_e_ meas_dur_r13;
// ...
};
typedef setup_e types;
// choice methods
rmtc_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "RMTC-Config-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "RMTC-Config-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// RRCConnectionReconfiguration-v1250-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1250_ies_s {
struct wlan_offload_info_r12_c_ {
struct setup_s_ {
struct t350_r12_opts {
enum options { min5, min10, min20, min30, min60, min120, min180, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<t350_r12_opts> t350_r12_e_;
// member variables
bool t350_r12_present = false;
wlan_offload_cfg_r12_s wlan_offload_cfg_ded_r12;
t350_r12_e_ t350_r12;
};
typedef setup_e types;
// choice methods
wlan_offload_info_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "wlan-OffloadInfo-r12");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "wlan-OffloadInfo-r12");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool wlan_offload_info_r12_present = false;
bool scg_cfg_r12_present = false;
bool sl_sync_tx_ctrl_r12_present = false;
bool sl_disc_cfg_r12_present = false;
bool sl_comm_cfg_r12_present = false;
bool non_crit_ext_present = false;
wlan_offload_info_r12_c_ wlan_offload_info_r12;
scg_cfg_r12_c scg_cfg_r12;
sl_sync_tx_ctrl_r12_s sl_sync_tx_ctrl_r12;
sl_disc_cfg_r12_s sl_disc_cfg_r12;
sl_comm_cfg_r12_s sl_comm_cfg_r12;
rrc_conn_recfg_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v12f0-IEs ::= SEQUENCE
struct rrc_conn_recfg_v12f0_ies_s {
bool scg_cfg_v12f0_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
scg_cfg_v12f0_c scg_cfg_v12f0;
dyn_octstring late_non_crit_ext;
rrc_conn_recfg_v1370_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v1530-IEs ::= SEQUENCE
struct rrc_conn_release_v1530_ies_s {
struct cn_type_r15_opts {
enum options { epc, fivegc, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<cn_type_r15_opts> cn_type_r15_e_;
// member variables
bool drb_continue_rohc_r15_present = false;
bool next_hop_chaining_count_r15_present = false;
bool meas_idle_cfg_r15_present = false;
bool rrc_inactive_cfg_r15_present = false;
bool cn_type_r15_present = false;
bool non_crit_ext_present = false;
uint8_t next_hop_chaining_count_r15 = 0;
meas_idle_cfg_ded_r15_s meas_idle_cfg_r15;
rrc_inactive_cfg_r15_s rrc_inactive_cfg_r15;
cn_type_r15_e_ cn_type_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RS-ConfigSSB-NR-r15 ::= SEQUENCE
struct rs_cfg_ssb_nr_r15_s {
struct subcarrier_spacing_ssb_r15_opts {
enum options { khz15, khz30, khz120, khz240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<subcarrier_spacing_ssb_r15_opts> subcarrier_spacing_ssb_r15_e_;
// member variables
bool ext = false;
mtc_ssb_nr_r15_s meas_timing_cfg_r15;
subcarrier_spacing_ssb_r15_e_ subcarrier_spacing_ssb_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RSRQ-RangeConfig-r12 ::= CHOICE
struct rsrq_range_cfg_r12_c {
typedef setup_e types;
// choice methods
rsrq_range_cfg_r12_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
int8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "RSRQ-RangeConfig-r12");
return c;
}
const int8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "RSRQ-RangeConfig-r12");
return c;
}
int8_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
int8_t c;
};
// ReportInterval ::= ENUMERATED
struct report_interv_opts {
enum options {
ms120,
ms240,
ms480,
ms640,
ms1024,
ms2048,
ms5120,
ms10240,
min1,
min6,
min12,
min30,
min60,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<report_interv_opts> report_interv_e;
// ReportQuantityNR-r15 ::= SEQUENCE
struct report_quant_nr_r15_s {
bool ss_rsrp = false;
bool ss_rsrq = false;
bool ss_sinr = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportQuantityWLAN-r13 ::= SEQUENCE
struct report_quant_wlan_r13_s {
bool ext = false;
bool band_request_wlan_r13_present = false;
bool carrier_info_request_wlan_r13_present = false;
bool available_admission_capacity_request_wlan_r13_present = false;
bool backhaul_dl_bw_request_wlan_r13_present = false;
bool backhaul_ul_bw_request_wlan_r13_present = false;
bool ch_utilization_request_wlan_r13_present = false;
bool station_count_request_wlan_r13_present = false;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SystemInfoListGERAN ::= SEQUENCE (SIZE (1..10)) OF OCTET STRING (SIZE (1..23))
using sys_info_list_geran_l = bounded_array<dyn_octstring, 10>;
// TargetMBSFN-Area-r12 ::= SEQUENCE
struct target_mbsfn_area_r12_s {
bool ext = false;
bool mbsfn_area_id_r12_present = false;
uint16_t mbsfn_area_id_r12 = 0;
uint32_t carrier_freq_r12 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ThresholdEUTRA ::= CHOICE
struct thres_eutra_c {
struct types_opts {
enum options { thres_rsrp, thres_rsrq, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
thres_eutra_c() = default;
thres_eutra_c(const thres_eutra_c& other);
thres_eutra_c& operator=(const thres_eutra_c& other);
~thres_eutra_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& thres_rsrp()
{
assert_choice_type("threshold-RSRP", type_.to_string(), "ThresholdEUTRA");
return c.get<uint8_t>();
}
uint8_t& thres_rsrq()
{
assert_choice_type("threshold-RSRQ", type_.to_string(), "ThresholdEUTRA");
return c.get<uint8_t>();
}
const uint8_t& thres_rsrp() const
{
assert_choice_type("threshold-RSRP", type_.to_string(), "ThresholdEUTRA");
return c.get<uint8_t>();
}
const uint8_t& thres_rsrq() const
{
assert_choice_type("threshold-RSRQ", type_.to_string(), "ThresholdEUTRA");
return c.get<uint8_t>();
}
uint8_t& set_thres_rsrp()
{
set(types::thres_rsrp);
return c.get<uint8_t>();
}
uint8_t& set_thres_rsrq()
{
set(types::thres_rsrq);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// ThresholdNR-r15 ::= CHOICE
struct thres_nr_r15_c {
struct types_opts {
enum options { nr_rsrp_r15, nr_rsrq_r15, nr_sinr_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
thres_nr_r15_c() = default;
thres_nr_r15_c(const thres_nr_r15_c& other);
thres_nr_r15_c& operator=(const thres_nr_r15_c& other);
~thres_nr_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& nr_rsrp_r15()
{
assert_choice_type("nr-RSRP-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
uint8_t& nr_rsrq_r15()
{
assert_choice_type("nr-RSRQ-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
uint8_t& nr_sinr_r15()
{
assert_choice_type("nr-SINR-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
const uint8_t& nr_rsrp_r15() const
{
assert_choice_type("nr-RSRP-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
const uint8_t& nr_rsrq_r15() const
{
assert_choice_type("nr-RSRQ-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
const uint8_t& nr_sinr_r15() const
{
assert_choice_type("nr-SINR-r15", type_.to_string(), "ThresholdNR-r15");
return c.get<uint8_t>();
}
uint8_t& set_nr_rsrp_r15()
{
set(types::nr_rsrp_r15);
return c.get<uint8_t>();
}
uint8_t& set_nr_rsrq_r15()
{
set(types::nr_rsrq_r15);
return c.get<uint8_t>();
}
uint8_t& set_nr_sinr_r15()
{
set(types::nr_sinr_r15);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// ThresholdUTRA ::= CHOICE
struct thres_utra_c {
struct types_opts {
enum options { utra_rscp, utra_ec_n0, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
thres_utra_c() = default;
thres_utra_c(const thres_utra_c& other);
thres_utra_c& operator=(const thres_utra_c& other);
~thres_utra_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
int8_t& utra_rscp()
{
assert_choice_type("utra-RSCP", type_.to_string(), "ThresholdUTRA");
return c.get<int8_t>();
}
uint8_t& utra_ec_n0()
{
assert_choice_type("utra-EcN0", type_.to_string(), "ThresholdUTRA");
return c.get<uint8_t>();
}
const int8_t& utra_rscp() const
{
assert_choice_type("utra-RSCP", type_.to_string(), "ThresholdUTRA");
return c.get<int8_t>();
}
const uint8_t& utra_ec_n0() const
{
assert_choice_type("utra-EcN0", type_.to_string(), "ThresholdUTRA");
return c.get<uint8_t>();
}
int8_t& set_utra_rscp()
{
set(types::utra_rscp);
return c.get<int8_t>();
}
uint8_t& set_utra_ec_n0()
{
set(types::utra_ec_n0);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// TimeToTrigger ::= ENUMERATED
struct time_to_trigger_opts {
enum options {
ms0,
ms40,
ms64,
ms80,
ms100,
ms128,
ms160,
ms256,
ms320,
ms480,
ms512,
ms640,
ms1024,
ms1280,
ms2560,
ms5120,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<time_to_trigger_opts> time_to_trigger_e;
// Tx-ResourcePoolMeasList-r14 ::= SEQUENCE (SIZE (1..72)) OF INTEGER (1..72)
using tx_res_pool_meas_list_r14_l = dyn_array<uint8_t>;
// UECapabilityEnquiry-v1510-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1510_ies_s {
bool requested_freq_bands_nr_mrdc_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring requested_freq_bands_nr_mrdc_r15;
ue_cap_enquiry_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-v1530-IEs ::= SEQUENCE
struct ue_info_request_v1530_ies_s {
bool idle_mode_meas_req_r15_present = false;
bool flight_path_info_req_r15_present = false;
bool non_crit_ext_present = false;
flight_path_info_report_cfg_r15_s flight_path_info_req_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-DelayConfig-r13 ::= CHOICE
struct ul_delay_cfg_r13_c {
struct setup_s_ {
struct delay_thres_r13_opts {
enum options {
ms30,
ms40,
ms50,
ms60,
ms70,
ms80,
ms90,
ms100,
ms150,
ms300,
ms500,
ms750,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<delay_thres_r13_opts> delay_thres_r13_e_;
// member variables
delay_thres_r13_e_ delay_thres_r13;
};
typedef setup_e types;
// choice methods
ul_delay_cfg_r13_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "UL-DelayConfig-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "UL-DelayConfig-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// WLAN-BandIndicator-r13 ::= ENUMERATED
struct wlan_band_ind_r13_opts {
enum options { band2dot4, band5, band60_v1430, spare5, spare4, spare3, spare2, spare1, /*...*/ nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<wlan_band_ind_r13_opts, true> wlan_band_ind_r13_e;
// WLAN-CarrierInfo-r13 ::= SEQUENCE
struct wlan_carrier_info_r13_s {
struct country_code_r13_opts {
enum options { united_states, europe, japan, global, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<country_code_r13_opts, true> country_code_r13_e_;
// member variables
bool ext = false;
bool operating_class_r13_present = false;
bool country_code_r13_present = false;
bool ch_nums_r13_present = false;
uint16_t operating_class_r13 = 0;
country_code_r13_e_ country_code_r13;
wlan_ch_list_r13_l ch_nums_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-NameListConfig-r15 ::= CHOICE
struct wlan_name_list_cfg_r15_c {
typedef setup_e types;
// choice methods
wlan_name_list_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wlan_name_list_r15_l& setup()
{
assert_choice_type("setup", type_.to_string(), "WLAN-NameListConfig-r15");
return c;
}
const wlan_name_list_r15_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "WLAN-NameListConfig-r15");
return c;
}
wlan_name_list_r15_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
wlan_name_list_r15_l c;
};
// 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>;
// CellInfoGERAN-r9 ::= SEQUENCE
struct cell_info_geran_r9_s {
pci_geran_s pci_r9;
carrier_freq_geran_s carrier_freq_r9;
sys_info_list_geran_l sys_info_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellInfoUTRA-FDD-r9 ::= SEQUENCE
struct cell_info_utra_fdd_r9_s {
uint16_t pci_r9 = 0;
dyn_octstring utra_bcch_container_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellInfoUTRA-TDD-r10 ::= SEQUENCE
struct cell_info_utra_tdd_r10_s {
uint8_t pci_r10 = 0;
uint16_t carrier_freq_r10 = 0;
dyn_octstring utra_bcch_container_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellInfoUTRA-TDD-r9 ::= SEQUENCE
struct cell_info_utra_tdd_r9_s {
uint8_t pci_r9 = 0;
dyn_octstring utra_bcch_container_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-CountMSB-Info ::= SEQUENCE
struct drb_count_msb_info_s {
uint8_t drb_id = 1;
uint32_t count_msb_ul = 0;
uint32_t count_msb_dl = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IDC-Config-r11 ::= SEQUENCE
struct idc_cfg_r11_s {
struct autonomous_denial_params_r11_s_ {
struct autonomous_denial_sfs_r11_opts {
enum options { n2, n5, n10, n15, n20, n30, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<autonomous_denial_sfs_r11_opts> autonomous_denial_sfs_r11_e_;
struct autonomous_denial_validity_r11_opts {
enum options { sf200, sf500, sf1000, sf2000, spare4, spare3, spare2, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<autonomous_denial_validity_r11_opts> autonomous_denial_validity_r11_e_;
// member variables
autonomous_denial_sfs_r11_e_ autonomous_denial_sfs_r11;
autonomous_denial_validity_r11_e_ autonomous_denial_validity_r11;
};
struct idc_ind_mrdc_r15_c_ {
typedef setup_e types;
// choice methods
idc_ind_mrdc_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
candidate_serving_freq_list_nr_r15_l& setup()
{
assert_choice_type("setup", type_.to_string(), "idc-Indication-MRDC-r15");
return c;
}
const candidate_serving_freq_list_nr_r15_l& setup() const
{
assert_choice_type("setup", type_.to_string(), "idc-Indication-MRDC-r15");
return c;
}
candidate_serving_freq_list_nr_r15_l& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
candidate_serving_freq_list_nr_r15_l c;
};
// member variables
bool ext = false;
bool idc_ind_r11_present = false;
bool autonomous_denial_params_r11_present = false;
autonomous_denial_params_r11_s_ autonomous_denial_params_r11;
// ...
// group 0
bool idc_ind_ul_ca_r11_present = false;
// group 1
bool idc_hardware_sharing_ind_r13_present = false;
// group 2
copy_ptr<idc_ind_mrdc_r15_c_> idc_ind_mrdc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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(bit_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;
meas_gap_cfg_c meas_gap_cfg_cc_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectCDMA2000 ::= SEQUENCE
struct meas_obj_cdma2000_s {
bool ext = false;
bool search_win_size_present = false;
bool offset_freq_present = false;
bool cells_to_rem_list_present = false;
bool cells_to_add_mod_list_present = false;
bool cell_for_which_to_report_cgi_present = false;
cdma2000_type_e cdma2000_type;
carrier_freq_cdma2000_s carrier_freq;
uint8_t search_win_size = 0;
int8_t offset_freq = -15;
cell_idx_list_l cells_to_rem_list;
cells_to_add_mod_list_cdma2000_l cells_to_add_mod_list;
uint16_t cell_for_which_to_report_cgi = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectEUTRA ::= SEQUENCE
struct meas_obj_eutra_s {
struct t312_r12_c_ {
struct setup_opts {
enum options { ms0, ms50, ms100, ms200, ms300, ms400, ms500, ms1000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<setup_opts> setup_e_;
typedef setup_e types;
// choice methods
t312_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_e_& setup()
{
assert_choice_type("setup", type_.to_string(), "t312-r12");
return c;
}
const setup_e_& setup() const
{
assert_choice_type("setup", type_.to_string(), "t312-r12");
return c;
}
setup_e_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_e_ c;
};
// member variables
bool ext = false;
bool offset_freq_present = false;
bool cells_to_rem_list_present = false;
bool cells_to_add_mod_list_present = false;
bool black_cells_to_rem_list_present = false;
bool black_cells_to_add_mod_list_present = false;
bool cell_for_which_to_report_cgi_present = false;
uint32_t carrier_freq = 0;
allowed_meas_bw_e allowed_meas_bw;
bool presence_ant_port1 = false;
fixed_bitstring<2> neigh_cell_cfg;
q_offset_range_e offset_freq;
cell_idx_list_l cells_to_rem_list;
cells_to_add_mod_list_l cells_to_add_mod_list;
cell_idx_list_l black_cells_to_rem_list;
black_cells_to_add_mod_list_l black_cells_to_add_mod_list;
uint16_t cell_for_which_to_report_cgi = 0;
// ...
// group 0
bool meas_cycle_scell_r10_present = false;
meas_cycle_scell_r10_e meas_cycle_scell_r10;
copy_ptr<meas_sf_pattern_cfg_neigh_r10_c> meas_sf_pattern_cfg_neigh_r10;
// group 1
bool wideband_rsrq_meas_r11_present = false;
bool wideband_rsrq_meas_r11 = false;
// group 2
bool reduced_meas_performance_r12_present = false;
copy_ptr<cell_idx_list_l> alt_ttt_cells_to_rem_list_r12;
copy_ptr<alt_ttt_cells_to_add_mod_list_r12_l> alt_ttt_cells_to_add_mod_list_r12;
copy_ptr<t312_r12_c_> t312_r12;
bool reduced_meas_performance_r12 = false;
copy_ptr<meas_ds_cfg_r12_c> meas_ds_cfg_r12;
// group 3
bool carrier_freq_r13_present = false;
copy_ptr<cell_idx_list_l> white_cells_to_rem_list_r13;
copy_ptr<white_cells_to_add_mod_list_r13_l> white_cells_to_add_mod_list_r13;
copy_ptr<rmtc_cfg_r13_c> rmtc_cfg_r13;
uint32_t carrier_freq_r13 = 65536;
// group 4
bool fembms_mixed_carrier_r14_present = false;
copy_ptr<tx_res_pool_meas_list_r14_l> tx_res_pool_to_rem_list_r14;
copy_ptr<tx_res_pool_meas_list_r14_l> tx_res_pool_to_add_list_r14;
bool fembms_mixed_carrier_r14 = false;
// group 5
copy_ptr<meas_sensing_cfg_r15_s> meas_sensing_cfg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectEUTRA-v9e0 ::= SEQUENCE
struct meas_obj_eutra_v9e0_s {
uint32_t carrier_freq_v9e0 = 65536;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectGERAN ::= SEQUENCE
struct meas_obj_geran_s {
bool ext = false;
bool offset_freq_present = false;
bool ncc_permitted_present = false;
bool cell_for_which_to_report_cgi_present = false;
carrier_freqs_geran_s carrier_freqs;
int8_t offset_freq = -15;
fixed_bitstring<8> ncc_permitted;
pci_geran_s cell_for_which_to_report_cgi;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectNR-r15 ::= SEQUENCE
struct meas_obj_nr_r15_s {
using cells_for_which_to_report_sftd_r15_l_ = bounded_array<uint16_t, 3>;
struct band_nr_r15_c_ {
typedef setup_e types;
// choice methods
band_nr_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& setup()
{
assert_choice_type("setup", type_.to_string(), "bandNR-r15");
return c;
}
const uint16_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "bandNR-r15");
return c;
}
uint16_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
uint16_t c;
};
// member variables
bool ext = false;
bool thresh_rs_idx_r15_present = false;
bool max_rs_idx_cell_qual_r15_present = false;
bool offset_freq_r15_present = false;
bool black_cells_to_rem_list_r15_present = false;
bool black_cells_to_add_mod_list_r15_present = false;
bool cells_for_which_to_report_sftd_r15_present = false;
uint32_t carrier_freq_r15 = 0;
rs_cfg_ssb_nr_r15_s rs_cfg_ssb_r15;
thres_list_nr_r15_s thresh_rs_idx_r15;
uint8_t max_rs_idx_cell_qual_r15 = 1;
int8_t offset_freq_r15 = -15;
cell_idx_list_l black_cells_to_rem_list_r15;
cells_to_add_mod_list_nr_r15_l black_cells_to_add_mod_list_r15;
uint8_t quant_cfg_set_r15 = 1;
cells_for_which_to_report_sftd_r15_l_ cells_for_which_to_report_sftd_r15;
// ...
// group 0
bool cell_for_which_to_report_cgi_r15_present = false;
bool derive_ssb_idx_from_cell_r15_present = false;
uint16_t cell_for_which_to_report_cgi_r15 = 0;
bool derive_ssb_idx_from_cell_r15 = false;
copy_ptr<ss_rssi_meas_r15_s> ss_rssi_meas_r15;
copy_ptr<band_nr_r15_c_> band_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectUTRA ::= SEQUENCE
struct meas_obj_utra_s {
struct cells_to_add_mod_list_c_ {
struct types_opts {
enum options { cells_to_add_mod_list_utra_fdd, cells_to_add_mod_list_utra_tdd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cells_to_add_mod_list_c_() = default;
cells_to_add_mod_list_c_(const cells_to_add_mod_list_c_& other);
cells_to_add_mod_list_c_& operator=(const cells_to_add_mod_list_c_& other);
~cells_to_add_mod_list_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cells_to_add_mod_list_utra_fdd_l& cells_to_add_mod_list_utra_fdd()
{
assert_choice_type("cellsToAddModListUTRA-FDD", type_.to_string(), "cellsToAddModList");
return c.get<cells_to_add_mod_list_utra_fdd_l>();
}
cells_to_add_mod_list_utra_tdd_l& cells_to_add_mod_list_utra_tdd()
{
assert_choice_type("cellsToAddModListUTRA-TDD", type_.to_string(), "cellsToAddModList");
return c.get<cells_to_add_mod_list_utra_tdd_l>();
}
const cells_to_add_mod_list_utra_fdd_l& cells_to_add_mod_list_utra_fdd() const
{
assert_choice_type("cellsToAddModListUTRA-FDD", type_.to_string(), "cellsToAddModList");
return c.get<cells_to_add_mod_list_utra_fdd_l>();
}
const cells_to_add_mod_list_utra_tdd_l& cells_to_add_mod_list_utra_tdd() const
{
assert_choice_type("cellsToAddModListUTRA-TDD", type_.to_string(), "cellsToAddModList");
return c.get<cells_to_add_mod_list_utra_tdd_l>();
}
cells_to_add_mod_list_utra_fdd_l& set_cells_to_add_mod_list_utra_fdd()
{
set(types::cells_to_add_mod_list_utra_fdd);
return c.get<cells_to_add_mod_list_utra_fdd_l>();
}
cells_to_add_mod_list_utra_tdd_l& set_cells_to_add_mod_list_utra_tdd()
{
set(types::cells_to_add_mod_list_utra_tdd);
return c.get<cells_to_add_mod_list_utra_tdd_l>();
}
private:
types type_;
choice_buffer_t<cells_to_add_mod_list_utra_fdd_l, cells_to_add_mod_list_utra_tdd_l> c;
void destroy_();
};
struct cell_for_which_to_report_cgi_c_ {
struct types_opts {
enum options { utra_fdd, utra_tdd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
cell_for_which_to_report_cgi_c_() = default;
cell_for_which_to_report_cgi_c_(const cell_for_which_to_report_cgi_c_& other);
cell_for_which_to_report_cgi_c_& operator=(const cell_for_which_to_report_cgi_c_& other);
~cell_for_which_to_report_cgi_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& utra_fdd()
{
assert_choice_type("utra-FDD", type_.to_string(), "cellForWhichToReportCGI");
return c.get<uint16_t>();
}
uint8_t& utra_tdd()
{
assert_choice_type("utra-TDD", type_.to_string(), "cellForWhichToReportCGI");
return c.get<uint8_t>();
}
const uint16_t& utra_fdd() const
{
assert_choice_type("utra-FDD", type_.to_string(), "cellForWhichToReportCGI");
return c.get<uint16_t>();
}
const uint8_t& utra_tdd() const
{
assert_choice_type("utra-TDD", type_.to_string(), "cellForWhichToReportCGI");
return c.get<uint8_t>();
}
uint16_t& set_utra_fdd()
{
set(types::utra_fdd);
return c.get<uint16_t>();
}
uint8_t& set_utra_tdd()
{
set(types::utra_tdd);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
bool offset_freq_present = false;
bool cells_to_rem_list_present = false;
bool cells_to_add_mod_list_present = false;
bool cell_for_which_to_report_cgi_present = false;
uint16_t carrier_freq = 0;
int8_t offset_freq = -15;
cell_idx_list_l cells_to_rem_list;
cells_to_add_mod_list_c_ cells_to_add_mod_list;
cell_for_which_to_report_cgi_c_ cell_for_which_to_report_cgi;
// ...
// group 0
copy_ptr<csg_allowed_report_cells_r9_s> csg_allowed_report_cells_v930;
// group 1
bool reduced_meas_performance_r12_present = false;
bool reduced_meas_performance_r12 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectWLAN-r13 ::= SEQUENCE
struct meas_obj_wlan_r13_s {
struct carrier_freq_r13_c_ {
using band_ind_list_wlan_r13_l_ = bounded_array<wlan_band_ind_r13_e, 8>;
using carrier_info_list_wlan_r13_l_ = dyn_array<wlan_carrier_info_r13_s>;
struct types_opts {
enum options { band_ind_list_wlan_r13, carrier_info_list_wlan_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
carrier_freq_r13_c_() = default;
carrier_freq_r13_c_(const carrier_freq_r13_c_& other);
carrier_freq_r13_c_& operator=(const carrier_freq_r13_c_& other);
~carrier_freq_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
band_ind_list_wlan_r13_l_& band_ind_list_wlan_r13()
{
assert_choice_type("bandIndicatorListWLAN-r13", type_.to_string(), "carrierFreq-r13");
return c.get<band_ind_list_wlan_r13_l_>();
}
carrier_info_list_wlan_r13_l_& carrier_info_list_wlan_r13()
{
assert_choice_type("carrierInfoListWLAN-r13", type_.to_string(), "carrierFreq-r13");
return c.get<carrier_info_list_wlan_r13_l_>();
}
const band_ind_list_wlan_r13_l_& band_ind_list_wlan_r13() const
{
assert_choice_type("bandIndicatorListWLAN-r13", type_.to_string(), "carrierFreq-r13");
return c.get<band_ind_list_wlan_r13_l_>();
}
const carrier_info_list_wlan_r13_l_& carrier_info_list_wlan_r13() const
{
assert_choice_type("carrierInfoListWLAN-r13", type_.to_string(), "carrierFreq-r13");
return c.get<carrier_info_list_wlan_r13_l_>();
}
band_ind_list_wlan_r13_l_& set_band_ind_list_wlan_r13()
{
set(types::band_ind_list_wlan_r13);
return c.get<band_ind_list_wlan_r13_l_>();
}
carrier_info_list_wlan_r13_l_& set_carrier_info_list_wlan_r13()
{
set(types::carrier_info_list_wlan_r13);
return c.get<carrier_info_list_wlan_r13_l_>();
}
private:
types type_;
choice_buffer_t<band_ind_list_wlan_r13_l_, carrier_info_list_wlan_r13_l_> c;
void destroy_();
};
// member variables
bool ext = false;
bool carrier_freq_r13_present = false;
bool wlan_to_add_mod_list_r13_present = false;
bool wlan_to_rem_list_r13_present = false;
carrier_freq_r13_c_ carrier_freq_r13;
wlan_id_list_r13_l wlan_to_add_mod_list_r13;
wlan_id_list_r13_l wlan_to_rem_list_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ObtainLocationConfig-r11 ::= SEQUENCE
struct obtain_location_cfg_r11_s {
bool obtain_location_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PowerPrefIndicationConfig-r11 ::= CHOICE
struct pwr_pref_ind_cfg_r11_c {
struct setup_s_ {
struct pwr_pref_ind_timer_r11_opts {
enum options {
s0,
s0dot5,
s1,
s2,
s5,
s10,
s20,
s30,
s60,
s90,
s120,
s300,
s600,
spare3,
spare2,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<pwr_pref_ind_timer_r11_opts> pwr_pref_ind_timer_r11_e_;
// member variables
pwr_pref_ind_timer_r11_e_ pwr_pref_ind_timer_r11;
};
typedef setup_e types;
// choice methods
pwr_pref_ind_cfg_r11_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "PowerPrefIndicationConfig-r11");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "PowerPrefIndicationConfig-r11");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// QuantityConfigNR-r15 ::= SEQUENCE
struct quant_cfg_nr_r15_s {
bool meas_quant_rs_idx_nr_r15_present = false;
quant_cfg_rs_nr_r15_s meas_quant_cell_nr_r15;
quant_cfg_rs_nr_r15_s meas_quant_rs_idx_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v10l0-IEs ::= SEQUENCE
struct rrc_conn_recfg_v10l0_ies_s {
bool mob_ctrl_info_v10l0_present = false;
bool scell_to_add_mod_list_v10l0_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
mob_ctrl_info_v10l0_s mob_ctrl_info_v10l0;
scell_to_add_mod_list_v10l0_l scell_to_add_mod_list_v10l0;
dyn_octstring late_non_crit_ext;
rrc_conn_recfg_v12f0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v1130-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1130_ies_s {
bool sib_type1_ded_r11_present = false;
bool non_crit_ext_present = false;
dyn_octstring sib_type1_ded_r11;
rrc_conn_recfg_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v1320-IEs ::= SEQUENCE
struct rrc_conn_release_v1320_ies_s {
bool resume_id_r13_present = false;
bool non_crit_ext_present = false;
fixed_bitstring<40> resume_id_r13;
rrc_conn_release_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
struct eutra_event_s {
struct event_id_c_ {
struct event_a1_s_ {
thres_eutra_c a1_thres;
};
struct event_a2_s_ {
thres_eutra_c a2_thres;
};
struct event_a3_s_ {
int8_t a3_offset = -30;
bool report_on_leave = false;
};
struct event_a4_s_ {
thres_eutra_c a4_thres;
};
struct event_a5_s_ {
thres_eutra_c a5_thres1;
thres_eutra_c a5_thres2;
};
struct event_a6_r10_s_ {
int8_t a6_offset_r10 = -30;
bool a6_report_on_leave_r10 = false;
};
struct event_c1_r12_s_ {
uint8_t c1_thres_r12 = 0;
bool c1_report_on_leave_r12 = false;
};
struct event_c2_r12_s_ {
uint8_t c2_ref_csi_rs_r12 = 1;
int8_t c2_offset_r12 = -30;
bool c2_report_on_leave_r12 = false;
};
struct event_v1_r14_s_ {
uint8_t v1_thres_r14 = 0;
};
struct event_v2_r14_s_ {
uint8_t v2_thres_r14 = 0;
};
struct event_h1_r15_s_ {
uint16_t h1_thres_offset_r15 = 0;
uint8_t h1_hysteresis_minus15 = 1;
};
struct event_h2_r15_s_ {
uint16_t h2_thres_offset_r15 = 0;
uint8_t h2_hysteresis_minus15 = 1;
};
struct types_opts {
enum options {
event_a1,
event_a2,
event_a3,
event_a4,
event_a5,
// ...
event_a6_r10,
event_c1_r12,
event_c2_r12,
event_v1_r14,
event_v2_r14,
event_h1_r15,
event_h2_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 7> types;
// choice methods
event_id_c_() = default;
event_id_c_(const event_id_c_& other);
event_id_c_& operator=(const event_id_c_& other);
~event_id_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
event_a1_s_& event_a1()
{
assert_choice_type("eventA1", type_.to_string(), "eventId");
return c.get<event_a1_s_>();
}
event_a2_s_& event_a2()
{
assert_choice_type("eventA2", type_.to_string(), "eventId");
return c.get<event_a2_s_>();
}
event_a3_s_& event_a3()
{
assert_choice_type("eventA3", type_.to_string(), "eventId");
return c.get<event_a3_s_>();
}
event_a4_s_& event_a4()
{
assert_choice_type("eventA4", type_.to_string(), "eventId");
return c.get<event_a4_s_>();
}
event_a5_s_& event_a5()
{
assert_choice_type("eventA5", type_.to_string(), "eventId");
return c.get<event_a5_s_>();
}
event_a6_r10_s_& event_a6_r10()
{
assert_choice_type("eventA6-r10", type_.to_string(), "eventId");
return c.get<event_a6_r10_s_>();
}
event_c1_r12_s_& event_c1_r12()
{
assert_choice_type("eventC1-r12", type_.to_string(), "eventId");
return c.get<event_c1_r12_s_>();
}
event_c2_r12_s_& event_c2_r12()
{
assert_choice_type("eventC2-r12", type_.to_string(), "eventId");
return c.get<event_c2_r12_s_>();
}
event_v1_r14_s_& event_v1_r14()
{
assert_choice_type("eventV1-r14", type_.to_string(), "eventId");
return c.get<event_v1_r14_s_>();
}
event_v2_r14_s_& event_v2_r14()
{
assert_choice_type("eventV2-r14", type_.to_string(), "eventId");
return c.get<event_v2_r14_s_>();
}
event_h1_r15_s_& event_h1_r15()
{
assert_choice_type("eventH1-r15", type_.to_string(), "eventId");
return c.get<event_h1_r15_s_>();
}
event_h2_r15_s_& event_h2_r15()
{
assert_choice_type("eventH2-r15", type_.to_string(), "eventId");
return c.get<event_h2_r15_s_>();
}
const event_a1_s_& event_a1() const
{
assert_choice_type("eventA1", type_.to_string(), "eventId");
return c.get<event_a1_s_>();
}
const event_a2_s_& event_a2() const
{
assert_choice_type("eventA2", type_.to_string(), "eventId");
return c.get<event_a2_s_>();
}
const event_a3_s_& event_a3() const
{
assert_choice_type("eventA3", type_.to_string(), "eventId");
return c.get<event_a3_s_>();
}
const event_a4_s_& event_a4() const
{
assert_choice_type("eventA4", type_.to_string(), "eventId");
return c.get<event_a4_s_>();
}
const event_a5_s_& event_a5() const
{
assert_choice_type("eventA5", type_.to_string(), "eventId");
return c.get<event_a5_s_>();
}
const event_a6_r10_s_& event_a6_r10() const
{
assert_choice_type("eventA6-r10", type_.to_string(), "eventId");
return c.get<event_a6_r10_s_>();
}
const event_c1_r12_s_& event_c1_r12() const
{
assert_choice_type("eventC1-r12", type_.to_string(), "eventId");
return c.get<event_c1_r12_s_>();
}
const event_c2_r12_s_& event_c2_r12() const
{
assert_choice_type("eventC2-r12", type_.to_string(), "eventId");
return c.get<event_c2_r12_s_>();
}
const event_v1_r14_s_& event_v1_r14() const
{
assert_choice_type("eventV1-r14", type_.to_string(), "eventId");
return c.get<event_v1_r14_s_>();
}
const event_v2_r14_s_& event_v2_r14() const
{
assert_choice_type("eventV2-r14", type_.to_string(), "eventId");
return c.get<event_v2_r14_s_>();
}
const event_h1_r15_s_& event_h1_r15() const
{
assert_choice_type("eventH1-r15", type_.to_string(), "eventId");
return c.get<event_h1_r15_s_>();
}
const event_h2_r15_s_& event_h2_r15() const
{
assert_choice_type("eventH2-r15", type_.to_string(), "eventId");
return c.get<event_h2_r15_s_>();
}
event_a1_s_& set_event_a1()
{
set(types::event_a1);
return c.get<event_a1_s_>();
}
event_a2_s_& set_event_a2()
{
set(types::event_a2);
return c.get<event_a2_s_>();
}
event_a3_s_& set_event_a3()
{
set(types::event_a3);
return c.get<event_a3_s_>();
}
event_a4_s_& set_event_a4()
{
set(types::event_a4);
return c.get<event_a4_s_>();
}
event_a5_s_& set_event_a5()
{
set(types::event_a5);
return c.get<event_a5_s_>();
}
event_a6_r10_s_& set_event_a6_r10()
{
set(types::event_a6_r10);
return c.get<event_a6_r10_s_>();
}
event_c1_r12_s_& set_event_c1_r12()
{
set(types::event_c1_r12);
return c.get<event_c1_r12_s_>();
}
event_c2_r12_s_& set_event_c2_r12()
{
set(types::event_c2_r12);
return c.get<event_c2_r12_s_>();
}
event_v1_r14_s_& set_event_v1_r14()
{
set(types::event_v1_r14);
return c.get<event_v1_r14_s_>();
}
event_v2_r14_s_& set_event_v2_r14()
{
set(types::event_v2_r14);
return c.get<event_v2_r14_s_>();
}
event_h1_r15_s_& set_event_h1_r15()
{
set(types::event_h1_r15);
return c.get<event_h1_r15_s_>();
}
event_h2_r15_s_& set_event_h2_r15()
{
set(types::event_h2_r15);
return c.get<event_h2_r15_s_>();
}
private:
types type_;
choice_buffer_t<event_a1_s_,
event_a2_s_,
event_a3_s_,
event_a4_s_,
event_a5_s_,
event_a6_r10_s_,
event_c1_r12_s_,
event_c2_r12_s_,
event_h1_r15_s_,
event_h2_r15_s_,
event_v1_r14_s_,
event_v2_r14_s_>
c;
void destroy_();
};
// member variables
event_id_c_ event_id;
uint8_t hysteresis = 0;
time_to_trigger_e time_to_trigger;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportConfigEUTRA ::= SEQUENCE
struct report_cfg_eutra_s {
struct trigger_type_c_ {
typedef eutra_event_s event_s_;
struct periodical_s_ {
struct purpose_opts {
enum options { report_strongest_cells, report_cgi, nulltype } value;
std::string to_string() const;
};
typedef enumerated<purpose_opts> purpose_e_;
// member variables
purpose_e_ purpose;
};
struct types_opts {
enum options { event, periodical, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
trigger_type_c_() = default;
trigger_type_c_(const trigger_type_c_& other);
trigger_type_c_& operator=(const trigger_type_c_& other);
~trigger_type_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
event_s_& event()
{
assert_choice_type("event", type_.to_string(), "triggerType");
return c.get<event_s_>();
}
periodical_s_& periodical()
{
assert_choice_type("periodical", type_.to_string(), "triggerType");
return c.get<periodical_s_>();
}
const event_s_& event() const
{
assert_choice_type("event", type_.to_string(), "triggerType");
return c.get<event_s_>();
}
const periodical_s_& periodical() const
{
assert_choice_type("periodical", type_.to_string(), "triggerType");
return c.get<periodical_s_>();
}
event_s_& set_event()
{
set(types::event);
return c.get<event_s_>();
}
periodical_s_& set_periodical()
{
set(types::periodical);
return c.get<periodical_s_>();
}
private:
types type_;
choice_buffer_t<event_s_, periodical_s_> c;
void destroy_();
};
struct trigger_quant_opts {
enum options { rsrp, rsrq, nulltype } value;
std::string to_string() const;
};
typedef enumerated<trigger_quant_opts> trigger_quant_e_;
struct report_quant_opts {
enum options { same_as_trigger_quant, both, nulltype } value;
std::string to_string() const;
};
typedef enumerated<report_quant_opts> report_quant_e_;
struct report_amount_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<report_amount_opts> report_amount_e_;
struct alt_time_to_trigger_r12_c_ {
typedef setup_e types;
// choice methods
alt_time_to_trigger_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
time_to_trigger_e& setup()
{
assert_choice_type("setup", type_.to_string(), "alternativeTimeToTrigger-r12");
return c;
}
const time_to_trigger_e& setup() const
{
assert_choice_type("setup", type_.to_string(), "alternativeTimeToTrigger-r12");
return c;
}
time_to_trigger_e& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
time_to_trigger_e c;
};
struct rs_sinr_cfg_r13_c_ {
struct setup_s_ {
struct report_quant_v1310_opts {
enum options { rsrp_andsinr, rsrq_andsinr, all, nulltype } value;
std::string to_string() const;
};
typedef enumerated<report_quant_v1310_opts> report_quant_v1310_e_;
// member variables
bool trigger_quant_v1310_present = false;
bool an_thres1_r13_present = false;
bool a5_thres2_r13_present = false;
uint8_t an_thres1_r13 = 0;
uint8_t a5_thres2_r13 = 0;
report_quant_v1310_e_ report_quant_v1310;
};
typedef setup_e types;
// choice methods
rs_sinr_cfg_r13_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "rs-sinr-Config-r13");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "rs-sinr-Config-r13");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct purpose_v1430_opts {
enum options { report_location, sidelink, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<purpose_v1430_opts> purpose_v1430_e_;
// member variables
bool ext = false;
trigger_type_c_ trigger_type;
trigger_quant_e_ trigger_quant;
report_quant_e_ report_quant;
uint8_t max_report_cells = 1;
report_interv_e report_interv;
report_amount_e_ report_amount;
// ...
// group 0
bool si_request_for_ho_r9_present = false;
bool ue_rx_tx_time_diff_periodical_r9_present = false;
// group 1
bool include_location_info_r10_present = false;
bool report_add_neigh_meas_r10_present = false;
// group 2
bool use_t312_r12_present = false;
bool use_ps_cell_r12_present = false;
bool report_strongest_csi_rss_r12_present = false;
bool report_crs_meas_r12_present = false;
bool trigger_quant_csi_rs_r12_present = false;
copy_ptr<alt_time_to_trigger_r12_c_> alt_time_to_trigger_r12;
bool use_t312_r12 = false;
bool use_ps_cell_r12 = false;
copy_ptr<rsrq_range_cfg_r12_c> an_thres1_v1250;
copy_ptr<rsrq_range_cfg_r12_c> a5_thres2_v1250;
bool report_strongest_csi_rss_r12 = false;
bool report_crs_meas_r12 = false;
bool trigger_quant_csi_rs_r12 = false;
// group 3
bool report_sstd_meas_r13_present = false;
bool use_white_cell_list_r13_present = false;
bool include_multi_band_info_r13_present = false;
bool report_sstd_meas_r13 = false;
copy_ptr<rs_sinr_cfg_r13_c_> rs_sinr_cfg_r13;
bool use_white_cell_list_r13 = false;
copy_ptr<meas_rssi_report_cfg_r13_s> meas_rssi_report_cfg_r13;
copy_ptr<ul_delay_cfg_r13_c> ul_delay_cfg_r13;
// group 4
bool ue_rx_tx_time_diff_periodical_tdd_r13_present = false;
bool ue_rx_tx_time_diff_periodical_tdd_r13 = false;
// group 5
bool purpose_v1430_present = false;
purpose_v1430_e_ purpose_v1430;
// group 6
bool max_report_rs_idx_r15_present = false;
uint8_t max_report_rs_idx_r15 = 0;
// group 7
bool purpose_r15_present = false;
bool nof_trigger_cells_r15_present = false;
bool a4_a5_report_on_leave_r15_present = false;
copy_ptr<bt_name_list_cfg_r15_c> include_bt_meas_r15;
copy_ptr<wlan_name_list_cfg_r15_c> include_wlan_meas_r15;
uint8_t nof_trigger_cells_r15 = 2;
bool a4_a5_report_on_leave_r15 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportConfigInterRAT ::= SEQUENCE
struct report_cfg_inter_rat_s {
struct trigger_type_c_ {
struct event_s_ {
struct event_id_c_ {
struct event_b1_s_ {
struct b1_thres_c_ {
struct types_opts {
enum options { b1_thres_utra, b1_thres_geran, b1_thres_cdma2000, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
b1_thres_c_() = default;
b1_thres_c_(const b1_thres_c_& other);
b1_thres_c_& operator=(const b1_thres_c_& other);
~b1_thres_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
thres_utra_c& b1_thres_utra()
{
assert_choice_type("b1-ThresholdUTRA", type_.to_string(), "b1-Threshold");
return c.get<thres_utra_c>();
}
uint8_t& b1_thres_geran()
{
assert_choice_type("b1-ThresholdGERAN", type_.to_string(), "b1-Threshold");
return c.get<uint8_t>();
}
uint8_t& b1_thres_cdma2000()
{
assert_choice_type("b1-ThresholdCDMA2000", type_.to_string(), "b1-Threshold");
return c.get<uint8_t>();
}
const thres_utra_c& b1_thres_utra() const
{
assert_choice_type("b1-ThresholdUTRA", type_.to_string(), "b1-Threshold");
return c.get<thres_utra_c>();
}
const uint8_t& b1_thres_geran() const
{
assert_choice_type("b1-ThresholdGERAN", type_.to_string(), "b1-Threshold");
return c.get<uint8_t>();
}
const uint8_t& b1_thres_cdma2000() const
{
assert_choice_type("b1-ThresholdCDMA2000", type_.to_string(), "b1-Threshold");
return c.get<uint8_t>();
}
thres_utra_c& set_b1_thres_utra()
{
set(types::b1_thres_utra);
return c.get<thres_utra_c>();
}
uint8_t& set_b1_thres_geran()
{
set(types::b1_thres_geran);
return c.get<uint8_t>();
}
uint8_t& set_b1_thres_cdma2000()
{
set(types::b1_thres_cdma2000);
return c.get<uint8_t>();
}
private:
types type_;
choice_buffer_t<thres_utra_c> c;
void destroy_();
};
// member variables
b1_thres_c_ b1_thres;
};
struct event_b2_s_ {
struct b2_thres2_c_ {
struct types_opts {
enum options { b2_thres2_utra, b2_thres2_geran, b2_thres2_cdma2000, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
b2_thres2_c_() = default;
b2_thres2_c_(const b2_thres2_c_& other);
b2_thres2_c_& operator=(const b2_thres2_c_& other);
~b2_thres2_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
thres_utra_c& b2_thres2_utra()
{
assert_choice_type("b2-Threshold2UTRA", type_.to_string(), "b2-Threshold2");
return c.get<thres_utra_c>();
}
uint8_t& b2_thres2_geran()
{
assert_choice_type("b2-Threshold2GERAN", type_.to_string(), "b2-Threshold2");
return c.get<uint8_t>();
}
uint8_t& b2_thres2_cdma2000()
{
assert_choice_type("b2-Threshold2CDMA2000", type_.to_string(), "b2-Threshold2");
return c.get<uint8_t>();
}
const thres_utra_c& b2_thres2_utra() const
{
assert_choice_type("b2-Threshold2UTRA", type_.to_string(), "b2-Threshold2");
return c.get<thres_utra_c>();
}
const uint8_t& b2_thres2_geran() const
{
assert_choice_type("b2-Threshold2GERAN", type_.to_string(), "b2-Threshold2");
return c.get<uint8_t>();
}
const uint8_t& b2_thres2_cdma2000() const
{
assert_choice_type("b2-Threshold2CDMA2000", type_.to_string(), "b2-Threshold2");
return c.get<uint8_t>();
}
thres_utra_c& set_b2_thres2_utra()
{
set(types::b2_thres2_utra);
return c.get<thres_utra_c>();
}
uint8_t& set_b2_thres2_geran()
{
set(types::b2_thres2_geran);
return c.get<uint8_t>();
}
uint8_t& set_b2_thres2_cdma2000()
{
set(types::b2_thres2_cdma2000);
return c.get<uint8_t>();
}
private:
types type_;
choice_buffer_t<thres_utra_c> c;
void destroy_();
};
// member variables
thres_eutra_c b2_thres1;
b2_thres2_c_ b2_thres2;
};
struct event_w1_r13_s_ {
uint8_t w1_thres_r13 = 0;
};
struct event_w2_r13_s_ {
uint8_t w2_thres1_r13 = 0;
uint8_t w2_thres2_r13 = 0;
};
struct event_w3_r13_s_ {
uint8_t w3_thres_r13 = 0;
};
struct event_b1_nr_r15_s_ {
thres_nr_r15_c b1_thres_nr_r15;
bool report_on_leave_r15 = false;
};
struct event_b2_nr_r15_s_ {
thres_eutra_c b2_thres1_r15;
thres_nr_r15_c b2_thres2_nr_r15;
bool report_on_leave_r15 = false;
};
struct types_opts {
enum options {
event_b1,
event_b2,
// ...
event_w1_r13,
event_w2_r13,
event_w3_r13,
event_b1_nr_r15,
event_b2_nr_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 5> types;
// choice methods
event_id_c_() = default;
event_id_c_(const event_id_c_& other);
event_id_c_& operator=(const event_id_c_& other);
~event_id_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
event_b1_s_& event_b1()
{
assert_choice_type("eventB1", type_.to_string(), "eventId");
return c.get<event_b1_s_>();
}
event_b2_s_& event_b2()
{
assert_choice_type("eventB2", type_.to_string(), "eventId");
return c.get<event_b2_s_>();
}
event_w1_r13_s_& event_w1_r13()
{
assert_choice_type("eventW1-r13", type_.to_string(), "eventId");
return c.get<event_w1_r13_s_>();
}
event_w2_r13_s_& event_w2_r13()
{
assert_choice_type("eventW2-r13", type_.to_string(), "eventId");
return c.get<event_w2_r13_s_>();
}
event_w3_r13_s_& event_w3_r13()
{
assert_choice_type("eventW3-r13", type_.to_string(), "eventId");
return c.get<event_w3_r13_s_>();
}
event_b1_nr_r15_s_& event_b1_nr_r15()
{
assert_choice_type("eventB1-NR-r15", type_.to_string(), "eventId");
return c.get<event_b1_nr_r15_s_>();
}
event_b2_nr_r15_s_& event_b2_nr_r15()
{
assert_choice_type("eventB2-NR-r15", type_.to_string(), "eventId");
return c.get<event_b2_nr_r15_s_>();
}
const event_b1_s_& event_b1() const
{
assert_choice_type("eventB1", type_.to_string(), "eventId");
return c.get<event_b1_s_>();
}
const event_b2_s_& event_b2() const
{
assert_choice_type("eventB2", type_.to_string(), "eventId");
return c.get<event_b2_s_>();
}
const event_w1_r13_s_& event_w1_r13() const
{
assert_choice_type("eventW1-r13", type_.to_string(), "eventId");
return c.get<event_w1_r13_s_>();
}
const event_w2_r13_s_& event_w2_r13() const
{
assert_choice_type("eventW2-r13", type_.to_string(), "eventId");
return c.get<event_w2_r13_s_>();
}
const event_w3_r13_s_& event_w3_r13() const
{
assert_choice_type("eventW3-r13", type_.to_string(), "eventId");
return c.get<event_w3_r13_s_>();
}
const event_b1_nr_r15_s_& event_b1_nr_r15() const
{
assert_choice_type("eventB1-NR-r15", type_.to_string(), "eventId");
return c.get<event_b1_nr_r15_s_>();
}
const event_b2_nr_r15_s_& event_b2_nr_r15() const
{
assert_choice_type("eventB2-NR-r15", type_.to_string(), "eventId");
return c.get<event_b2_nr_r15_s_>();
}
event_b1_s_& set_event_b1()
{
set(types::event_b1);
return c.get<event_b1_s_>();
}
event_b2_s_& set_event_b2()
{
set(types::event_b2);
return c.get<event_b2_s_>();
}
event_w1_r13_s_& set_event_w1_r13()
{
set(types::event_w1_r13);
return c.get<event_w1_r13_s_>();
}
event_w2_r13_s_& set_event_w2_r13()
{
set(types::event_w2_r13);
return c.get<event_w2_r13_s_>();
}
event_w3_r13_s_& set_event_w3_r13()
{
set(types::event_w3_r13);
return c.get<event_w3_r13_s_>();
}
event_b1_nr_r15_s_& set_event_b1_nr_r15()
{
set(types::event_b1_nr_r15);
return c.get<event_b1_nr_r15_s_>();
}
event_b2_nr_r15_s_& set_event_b2_nr_r15()
{
set(types::event_b2_nr_r15);
return c.get<event_b2_nr_r15_s_>();
}
private:
types type_;
choice_buffer_t<event_b1_nr_r15_s_,
event_b1_s_,
event_b2_nr_r15_s_,
event_b2_s_,
event_w1_r13_s_,
event_w2_r13_s_,
event_w3_r13_s_>
c;
void destroy_();
};
// member variables
event_id_c_ event_id;
uint8_t hysteresis = 0;
time_to_trigger_e time_to_trigger;
};
struct periodical_s_ {
struct purpose_opts {
enum options { report_strongest_cells, report_strongest_cells_for_son, report_cgi, nulltype } value;
std::string to_string() const;
};
typedef enumerated<purpose_opts> purpose_e_;
// member variables
purpose_e_ purpose;
};
struct types_opts {
enum options { event, periodical, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
trigger_type_c_() = default;
trigger_type_c_(const trigger_type_c_& other);
trigger_type_c_& operator=(const trigger_type_c_& other);
~trigger_type_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
event_s_& event()
{
assert_choice_type("event", type_.to_string(), "triggerType");
return c.get<event_s_>();
}
periodical_s_& periodical()
{
assert_choice_type("periodical", type_.to_string(), "triggerType");
return c.get<periodical_s_>();
}
const event_s_& event() const
{
assert_choice_type("event", type_.to_string(), "triggerType");
return c.get<event_s_>();
}
const periodical_s_& periodical() const
{
assert_choice_type("periodical", type_.to_string(), "triggerType");
return c.get<periodical_s_>();
}
event_s_& set_event()
{
set(types::event);
return c.get<event_s_>();
}
periodical_s_& set_periodical()
{
set(types::periodical);
return c.get<periodical_s_>();
}
private:
types type_;
choice_buffer_t<event_s_, periodical_s_> c;
void destroy_();
};
struct report_amount_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, infinity, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<report_amount_opts> report_amount_e_;
struct b2_thres1_v1250_c_ {
typedef setup_e types;
// choice methods
b2_thres1_v1250_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
int8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "b2-Threshold1-v1250");
return c;
}
const int8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "b2-Threshold1-v1250");
return c;
}
int8_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
int8_t c;
};
struct report_sftd_meas_r15_opts {
enum options { pscell, neighbor_cells, nulltype } value;
std::string to_string() const;
};
typedef enumerated<report_sftd_meas_r15_opts> report_sftd_meas_r15_e_;
// member variables
bool ext = false;
trigger_type_c_ trigger_type;
uint8_t max_report_cells = 1;
report_interv_e report_interv;
report_amount_e_ report_amount;
// ...
// group 0
bool si_request_for_ho_r9_present = false;
// group 1
bool report_quant_utra_fdd_r10_present = false;
// group 2
bool include_location_info_r11_present = false;
bool include_location_info_r11 = false;
// group 3
copy_ptr<b2_thres1_v1250_c_> b2_thres1_v1250;
// group 4
copy_ptr<report_quant_wlan_r13_s> report_quant_wlan_r13;
// group 5
bool report_any_wlan_r14_present = false;
bool report_any_wlan_r14 = false;
// group 6
bool max_report_rs_idx_r15_present = false;
bool report_rs_idx_results_nr_present = false;
bool report_sftd_meas_r15_present = false;
copy_ptr<report_quant_nr_r15_s> report_quant_cell_nr_r15;
uint8_t max_report_rs_idx_r15 = 0;
copy_ptr<report_quant_nr_r15_s> report_quant_rs_idx_nr_r15;
bool report_rs_idx_results_nr = false;
report_sftd_meas_r15_e_ report_sftd_meas_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportProximityConfig-r9 ::= SEQUENCE
struct report_proximity_cfg_r9_s {
bool proximity_ind_eutra_r9_present = false;
bool proximity_ind_utra_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TargetMBSFN-AreaList-r12 ::= SEQUENCE (SIZE (0..8)) OF TargetMBSFN-Area-r12
using target_mbsfn_area_list_r12_l = dyn_array<target_mbsfn_area_r12_s>;
// TrackingAreaCodeList-v1130 ::= SEQUENCE
struct tac_list_v1130_s {
using plmn_id_per_tac_list_r11_l_ = dyn_array<plmn_id_s>;
// member variables
plmn_id_per_tac_list_r11_l_ plmn_id_per_tac_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry-v1430-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1430_ies_s {
bool request_diff_fallback_comb_list_r14_present = false;
bool non_crit_ext_present = false;
band_combination_list_r14_l request_diff_fallback_comb_list_r14;
ue_cap_enquiry_v1510_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-v1250-IEs ::= SEQUENCE
struct ue_info_request_v1250_ies_s {
bool mob_history_report_req_r12_present = false;
bool non_crit_ext_present = false;
ue_info_request_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AreaConfiguration-v1130 ::= SEQUENCE
struct area_cfg_v1130_s {
tac_list_v1130_s tac_list_v1130;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellInfoListGERAN-r9 ::= SEQUENCE (SIZE (1..32)) OF CellInfoGERAN-r9
using cell_info_list_geran_r9_l = dyn_array<cell_info_geran_r9_s>;
// CellInfoListUTRA-FDD-r9 ::= SEQUENCE (SIZE (1..16)) OF CellInfoUTRA-FDD-r9
using cell_info_list_utra_fdd_r9_l = dyn_array<cell_info_utra_fdd_r9_s>;
// CellInfoListUTRA-TDD-r10 ::= SEQUENCE (SIZE (1..16)) OF CellInfoUTRA-TDD-r10
using cell_info_list_utra_tdd_r10_l = dyn_array<cell_info_utra_tdd_r10_s>;
// CellInfoListUTRA-TDD-r9 ::= SEQUENCE (SIZE (1..16)) OF CellInfoUTRA-TDD-r9
using cell_info_list_utra_tdd_r9_l = dyn_array<cell_info_utra_tdd_r9_s>;
// DRB-CountMSB-InfoListExt-r15 ::= SEQUENCE (SIZE (1..4)) OF DRB-CountMSB-Info
using drb_count_msb_info_list_ext_r15_l = dyn_array<drb_count_msb_info_s>;
// HandoverFromEUTRAPreparationRequest-v1020-IEs ::= SEQUENCE
struct ho_from_eutra_prep_request_v1020_ies_s {
bool dual_rx_tx_redirect_ind_r10_present = false;
bool redirect_carrier_cdma2000_minus1_xrtt_r10_present = false;
bool non_crit_ext_present = false;
carrier_freq_cdma2000_s redirect_carrier_cdma2000_minus1_xrtt_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-v1250-IEs ::= SEQUENCE
struct logged_meas_cfg_v1250_ies_s {
bool target_mbsfn_area_list_r12_present = false;
bool non_crit_ext_present = false;
target_mbsfn_area_list_r12_l target_mbsfn_area_list_r12;
logged_meas_cfg_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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>;
// MeasGapConfigToRemoveList-r14 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (0..31)
using meas_gap_cfg_to_rem_list_r14_l = bounded_array<uint8_t, 32>;
// MeasIdToAddMod ::= SEQUENCE
struct meas_id_to_add_mod_s {
uint8_t meas_id = 1;
uint8_t meas_obj_id = 1;
uint8_t report_cfg_id = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasIdToAddMod-v1310 ::= SEQUENCE
struct meas_id_to_add_mod_v1310_s {
bool meas_obj_id_v1310_present = false;
uint8_t meas_obj_id_v1310 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasIdToAddModExt-r12 ::= SEQUENCE
struct meas_id_to_add_mod_ext_r12_s {
uint8_t meas_id_v1250 = 33;
uint8_t meas_obj_id_r12 = 1;
uint8_t report_cfg_id_r12 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectToAddMod ::= SEQUENCE
struct meas_obj_to_add_mod_s {
struct meas_obj_c_ {
struct types_opts {
enum options {
meas_obj_eutra,
meas_obj_utra,
meas_obj_geran,
meas_obj_cdma2000,
// ...
meas_obj_wlan_r13,
meas_obj_nr_r15,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts, true, 2> types;
// choice methods
meas_obj_c_() = default;
meas_obj_c_(const meas_obj_c_& other);
meas_obj_c_& operator=(const meas_obj_c_& other);
~meas_obj_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_obj_eutra_s& meas_obj_eutra()
{
assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject");
return c.get<meas_obj_eutra_s>();
}
meas_obj_utra_s& meas_obj_utra()
{
assert_choice_type("measObjectUTRA", type_.to_string(), "measObject");
return c.get<meas_obj_utra_s>();
}
meas_obj_geran_s& meas_obj_geran()
{
assert_choice_type("measObjectGERAN", type_.to_string(), "measObject");
return c.get<meas_obj_geran_s>();
}
meas_obj_cdma2000_s& meas_obj_cdma2000()
{
assert_choice_type("measObjectCDMA2000", type_.to_string(), "measObject");
return c.get<meas_obj_cdma2000_s>();
}
meas_obj_wlan_r13_s& meas_obj_wlan_r13()
{
assert_choice_type("measObjectWLAN-r13", type_.to_string(), "measObject");
return c.get<meas_obj_wlan_r13_s>();
}
meas_obj_nr_r15_s& meas_obj_nr_r15()
{
assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject");
return c.get<meas_obj_nr_r15_s>();
}
const meas_obj_eutra_s& meas_obj_eutra() const
{
assert_choice_type("measObjectEUTRA", type_.to_string(), "measObject");
return c.get<meas_obj_eutra_s>();
}
const meas_obj_utra_s& meas_obj_utra() const
{
assert_choice_type("measObjectUTRA", type_.to_string(), "measObject");
return c.get<meas_obj_utra_s>();
}
const meas_obj_geran_s& meas_obj_geran() const
{
assert_choice_type("measObjectGERAN", type_.to_string(), "measObject");
return c.get<meas_obj_geran_s>();
}
const meas_obj_cdma2000_s& meas_obj_cdma2000() const
{
assert_choice_type("measObjectCDMA2000", type_.to_string(), "measObject");
return c.get<meas_obj_cdma2000_s>();
}
const meas_obj_wlan_r13_s& meas_obj_wlan_r13() const
{
assert_choice_type("measObjectWLAN-r13", type_.to_string(), "measObject");
return c.get<meas_obj_wlan_r13_s>();
}
const meas_obj_nr_r15_s& meas_obj_nr_r15() const
{
assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject");
return c.get<meas_obj_nr_r15_s>();
}
meas_obj_eutra_s& set_meas_obj_eutra()
{
set(types::meas_obj_eutra);
return c.get<meas_obj_eutra_s>();
}
meas_obj_utra_s& set_meas_obj_utra()
{
set(types::meas_obj_utra);
return c.get<meas_obj_utra_s>();
}
meas_obj_geran_s& set_meas_obj_geran()
{
set(types::meas_obj_geran);
return c.get<meas_obj_geran_s>();
}
meas_obj_cdma2000_s& set_meas_obj_cdma2000()
{
set(types::meas_obj_cdma2000);
return c.get<meas_obj_cdma2000_s>();
}
meas_obj_wlan_r13_s& set_meas_obj_wlan_r13()
{
set(types::meas_obj_wlan_r13);
return c.get<meas_obj_wlan_r13_s>();
}
meas_obj_nr_r15_s& set_meas_obj_nr_r15()
{
set(types::meas_obj_nr_r15);
return c.get<meas_obj_nr_r15_s>();
}
private:
types type_;
choice_buffer_t<meas_obj_cdma2000_s,
meas_obj_eutra_s,
meas_obj_geran_s,
meas_obj_nr_r15_s,
meas_obj_utra_s,
meas_obj_wlan_r13_s>
c;
void destroy_();
};
// member variables
uint8_t meas_obj_id = 1;
meas_obj_c_ meas_obj;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectToAddMod-v9e0 ::= SEQUENCE
struct meas_obj_to_add_mod_v9e0_s {
bool meas_obj_eutra_v9e0_present = false;
meas_obj_eutra_v9e0_s meas_obj_eutra_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasObjectToAddModExt-r13 ::= SEQUENCE
struct meas_obj_to_add_mod_ext_r13_s {
struct meas_obj_r13_c_ {
struct types_opts {
enum options {
meas_obj_eutra_r13,
meas_obj_utra_r13,
meas_obj_geran_r13,
meas_obj_cdma2000_r13,
// ...
meas_obj_wlan_v1320,
meas_obj_nr_r15,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts, true, 2> types;
// choice methods
meas_obj_r13_c_() = default;
meas_obj_r13_c_(const meas_obj_r13_c_& other);
meas_obj_r13_c_& operator=(const meas_obj_r13_c_& other);
~meas_obj_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_obj_eutra_s& meas_obj_eutra_r13()
{
assert_choice_type("measObjectEUTRA-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_eutra_s>();
}
meas_obj_utra_s& meas_obj_utra_r13()
{
assert_choice_type("measObjectUTRA-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_utra_s>();
}
meas_obj_geran_s& meas_obj_geran_r13()
{
assert_choice_type("measObjectGERAN-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_geran_s>();
}
meas_obj_cdma2000_s& meas_obj_cdma2000_r13()
{
assert_choice_type("measObjectCDMA2000-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_cdma2000_s>();
}
meas_obj_wlan_r13_s& meas_obj_wlan_v1320()
{
assert_choice_type("measObjectWLAN-v1320", type_.to_string(), "measObject-r13");
return c.get<meas_obj_wlan_r13_s>();
}
meas_obj_nr_r15_s& meas_obj_nr_r15()
{
assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject-r13");
return c.get<meas_obj_nr_r15_s>();
}
const meas_obj_eutra_s& meas_obj_eutra_r13() const
{
assert_choice_type("measObjectEUTRA-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_eutra_s>();
}
const meas_obj_utra_s& meas_obj_utra_r13() const
{
assert_choice_type("measObjectUTRA-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_utra_s>();
}
const meas_obj_geran_s& meas_obj_geran_r13() const
{
assert_choice_type("measObjectGERAN-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_geran_s>();
}
const meas_obj_cdma2000_s& meas_obj_cdma2000_r13() const
{
assert_choice_type("measObjectCDMA2000-r13", type_.to_string(), "measObject-r13");
return c.get<meas_obj_cdma2000_s>();
}
const meas_obj_wlan_r13_s& meas_obj_wlan_v1320() const
{
assert_choice_type("measObjectWLAN-v1320", type_.to_string(), "measObject-r13");
return c.get<meas_obj_wlan_r13_s>();
}
const meas_obj_nr_r15_s& meas_obj_nr_r15() const
{
assert_choice_type("measObjectNR-r15", type_.to_string(), "measObject-r13");
return c.get<meas_obj_nr_r15_s>();
}
meas_obj_eutra_s& set_meas_obj_eutra_r13()
{
set(types::meas_obj_eutra_r13);
return c.get<meas_obj_eutra_s>();
}
meas_obj_utra_s& set_meas_obj_utra_r13()
{
set(types::meas_obj_utra_r13);
return c.get<meas_obj_utra_s>();
}
meas_obj_geran_s& set_meas_obj_geran_r13()
{
set(types::meas_obj_geran_r13);
return c.get<meas_obj_geran_s>();
}
meas_obj_cdma2000_s& set_meas_obj_cdma2000_r13()
{
set(types::meas_obj_cdma2000_r13);
return c.get<meas_obj_cdma2000_s>();
}
meas_obj_wlan_r13_s& set_meas_obj_wlan_v1320()
{
set(types::meas_obj_wlan_v1320);
return c.get<meas_obj_wlan_r13_s>();
}
meas_obj_nr_r15_s& set_meas_obj_nr_r15()
{
set(types::meas_obj_nr_r15);
return c.get<meas_obj_nr_r15_s>();
}
private:
types type_;
choice_buffer_t<meas_obj_cdma2000_s,
meas_obj_eutra_s,
meas_obj_geran_s,
meas_obj_nr_r15_s,
meas_obj_utra_s,
meas_obj_wlan_r13_s>
c;
void destroy_();
};
// member variables
uint8_t meas_obj_id_r13 = 33;
meas_obj_r13_c_ meas_obj_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-v1530-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_v1530_ies_s {
bool smtc_r15_present = false;
bool non_crit_ext_present = false;
mtc_ssb_nr_r15_s smtc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// OtherConfig-r9 ::= SEQUENCE
struct other_cfg_r9_s {
struct bw_pref_ind_timer_r14_opts {
enum options {
s0,
s0dot5,
s1,
s2,
s5,
s10,
s20,
s30,
s60,
s90,
s120,
s300,
s600,
spare3,
spare2,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<bw_pref_ind_timer_r14_opts> bw_pref_ind_timer_r14_e_;
struct delay_budget_report_cfg_r14_c_ {
struct setup_s_ {
struct delay_budget_report_prohibit_timer_r14_opts {
enum options { s0, s0dot4, s0dot8, s1dot6, s3, s6, s12, s30, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<delay_budget_report_prohibit_timer_r14_opts> delay_budget_report_prohibit_timer_r14_e_;
// member variables
delay_budget_report_prohibit_timer_r14_e_ delay_budget_report_prohibit_timer_r14;
};
typedef setup_e types;
// choice methods
delay_budget_report_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "delayBudgetReportingConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct rlm_report_cfg_r14_c_ {
struct setup_s_ {
struct rlm_report_timer_r14_opts {
enum options {
s0,
s0dot5,
s1,
s2,
s5,
s10,
s20,
s30,
s60,
s90,
s120,
s300,
s600,
spare3,
spare2,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rlm_report_timer_r14_opts> rlm_report_timer_r14_e_;
// member variables
bool rlm_report_rep_mpdcch_r14_present = false;
rlm_report_timer_r14_e_ rlm_report_timer_r14;
};
typedef setup_e types;
// choice methods
rlm_report_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "rlm-ReportConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "rlm-ReportConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct overheat_assist_cfg_r14_c_ {
struct setup_s_ {
struct overheat_ind_prohibit_timer_r14_opts {
enum options {
s0,
s0dot5,
s1,
s2,
s5,
s10,
s20,
s30,
s60,
s90,
s120,
s300,
s600,
spare3,
spare2,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<overheat_ind_prohibit_timer_r14_opts> overheat_ind_prohibit_timer_r14_e_;
// member variables
overheat_ind_prohibit_timer_r14_e_ overheat_ind_prohibit_timer_r14;
};
typedef setup_e types;
// choice methods
overheat_assist_cfg_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "overheatingAssistanceConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "overheatingAssistanceConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct meas_cfg_app_layer_r15_c_ {
struct setup_s_ {
struct service_type_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_;
// member variables
dyn_octstring meas_cfg_app_layer_container_r15;
service_type_e_ service_type;
};
typedef setup_e types;
// choice methods
meas_cfg_app_layer_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "measConfigAppLayer-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "measConfigAppLayer-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool report_proximity_cfg_r9_present = false;
report_proximity_cfg_r9_s report_proximity_cfg_r9;
// ...
// group 0
copy_ptr<idc_cfg_r11_s> idc_cfg_r11;
copy_ptr<pwr_pref_ind_cfg_r11_c> pwr_pref_ind_cfg_r11;
copy_ptr<obtain_location_cfg_r11_s> obtain_location_cfg_r11;
// group 1
bool bw_pref_ind_timer_r14_present = false;
bool sps_assist_info_report_r14_present = false;
bw_pref_ind_timer_r14_e_ bw_pref_ind_timer_r14;
bool sps_assist_info_report_r14 = false;
copy_ptr<delay_budget_report_cfg_r14_c_> delay_budget_report_cfg_r14;
copy_ptr<rlm_report_cfg_r14_c_> rlm_report_cfg_r14;
// group 2
copy_ptr<overheat_assist_cfg_r14_c_> overheat_assist_cfg_r14;
// group 3
bool ailc_bit_cfg_r15_present = false;
copy_ptr<meas_cfg_app_layer_r15_c_> meas_cfg_app_layer_r15;
bool ailc_bit_cfg_r15 = false;
copy_ptr<bt_name_list_cfg_r15_c> bt_name_list_cfg_r15;
copy_ptr<wlan_name_list_cfg_r15_c> wlan_name_list_cfg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList3-r11 ::= SEQUENCE (SIZE (1..16)) OF PLMN-Identity
using plmn_id_list3_r11_l = dyn_array<plmn_id_s>;
// PRACH-Config-v1310 ::= SEQUENCE
struct prach_cfg_v1310_s {
struct mpdcch_start_sf_css_ra_r13_c_ {
struct fdd_r13_opts {
enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<fdd_r13_opts> fdd_r13_e_;
struct tdd_r13_opts {
enum options { v1, v2, v4, v5, v8, v10, v20, spare, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tdd_r13_opts> tdd_r13_e_;
struct types_opts {
enum options { fdd_r13, tdd_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mpdcch_start_sf_css_ra_r13_c_() = default;
mpdcch_start_sf_css_ra_r13_c_(const mpdcch_start_sf_css_ra_r13_c_& other);
mpdcch_start_sf_css_ra_r13_c_& operator=(const mpdcch_start_sf_css_ra_r13_c_& other);
~mpdcch_start_sf_css_ra_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fdd_r13_e_& fdd_r13()
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& tdd_r13()
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<tdd_r13_e_>();
}
const fdd_r13_e_& fdd_r13() const
{
assert_choice_type("fdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<fdd_r13_e_>();
}
const tdd_r13_e_& tdd_r13() const
{
assert_choice_type("tdd-r13", type_.to_string(), "mpdcch-startSF-CSS-RA-r13");
return c.get<tdd_r13_e_>();
}
fdd_r13_e_& set_fdd_r13()
{
set(types::fdd_r13);
return c.get<fdd_r13_e_>();
}
tdd_r13_e_& set_tdd_r13()
{
set(types::tdd_r13);
return c.get<tdd_r13_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool rsrp_thress_prach_info_list_r13_present = false;
bool mpdcch_start_sf_css_ra_r13_present = false;
bool prach_hop_offset_r13_present = false;
bool prach_params_list_ce_r13_present = false;
bool init_ce_level_r13_present = false;
rsrp_thress_prach_info_list_r13_l rsrp_thress_prach_info_list_r13;
mpdcch_start_sf_css_ra_r13_c_ mpdcch_start_sf_css_ra_r13;
uint8_t prach_hop_offset_r13 = 0;
prach_params_list_ce_r13_l prach_params_list_ce_r13;
uint8_t init_ce_level_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigCDMA2000 ::= SEQUENCE
struct quant_cfg_cdma2000_s {
struct meas_quant_cdma2000_opts {
enum options { pilot_strength, pilot_pn_phase_and_pilot_strength, nulltype } value;
std::string to_string() const;
};
typedef enumerated<meas_quant_cdma2000_opts> meas_quant_cdma2000_e_;
// member variables
meas_quant_cdma2000_e_ meas_quant_cdma2000;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigEUTRA ::= SEQUENCE
struct quant_cfg_eutra_s {
bool filt_coef_rsrp_present = false;
bool filt_coef_rsrq_present = false;
filt_coef_e filt_coef_rsrp;
filt_coef_e filt_coef_rsrq;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigEUTRA-v1250 ::= SEQUENCE
struct quant_cfg_eutra_v1250_s {
bool filt_coef_csi_rsrp_r12_present = false;
filt_coef_e filt_coef_csi_rsrp_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigEUTRA-v1310 ::= SEQUENCE
struct quant_cfg_eutra_v1310_s {
bool filt_coef_rs_sinr_r13_present = false;
filt_coef_e filt_coef_rs_sinr_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigGERAN ::= SEQUENCE
struct quant_cfg_geran_s {
bool filt_coef_present = false;
filt_coef_e filt_coef;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigNRList-r15 ::= SEQUENCE (SIZE (1..2)) OF QuantityConfigNR-r15
using quant_cfg_nr_list_r15_l = dyn_array<quant_cfg_nr_r15_s>;
// QuantityConfigUTRA ::= SEQUENCE
struct quant_cfg_utra_s {
struct meas_quant_utra_fdd_opts {
enum options { cpich_rscp, cpich_ec_n0, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<meas_quant_utra_fdd_opts> meas_quant_utra_fdd_e_;
// member variables
bool filt_coef_present = false;
meas_quant_utra_fdd_e_ meas_quant_utra_fdd;
filt_coef_e filt_coef;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigUTRA-v1020 ::= SEQUENCE
struct quant_cfg_utra_v1020_s {
bool filt_coef2_fdd_r10_present = false;
filt_coef_e filt_coef2_fdd_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfigWLAN-r13 ::= SEQUENCE
struct quant_cfg_wlan_r13_s {
bool filt_coef_r13_present = false;
filt_coef_e filt_coef_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v1020-IEs ::= SEQUENCE
struct rrc_conn_recfg_v1020_ies_s {
bool scell_to_release_list_r10_present = false;
bool scell_to_add_mod_list_r10_present = false;
bool non_crit_ext_present = false;
scell_to_release_list_r10_l scell_to_release_list_r10;
scell_to_add_mod_list_r10_l scell_to_add_mod_list_r10;
rrc_conn_recfg_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v10i0-IEs ::= SEQUENCE
struct rrc_conn_recfg_v10i0_ies_s {
bool ant_info_ded_pcell_v10i0_present = false;
bool non_crit_ext_present = false;
ant_info_ded_v10i0_s ant_info_ded_pcell_v10i0;
rrc_conn_recfg_v10l0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v1020-IEs ::= SEQUENCE
struct rrc_conn_release_v1020_ies_s {
bool extended_wait_time_r10_present = false;
bool non_crit_ext_present = false;
uint16_t extended_wait_time_r10 = 1;
rrc_conn_release_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResume-v1530-IEs ::= SEQUENCE
struct rrc_conn_resume_v1530_ies_s {
bool full_cfg_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RedirectedCarrierInfo-v9e0 ::= SEQUENCE
struct redirected_carrier_info_v9e0_s {
uint32_t eutra_v9e0 = 65536;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReportConfigToAddMod ::= SEQUENCE
struct report_cfg_to_add_mod_s {
struct report_cfg_c_ {
struct types_opts {
enum options { report_cfg_eutra, report_cfg_inter_rat, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
report_cfg_c_() = default;
report_cfg_c_(const report_cfg_c_& other);
report_cfg_c_& operator=(const report_cfg_c_& other);
~report_cfg_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
report_cfg_eutra_s& report_cfg_eutra()
{
assert_choice_type("reportConfigEUTRA", type_.to_string(), "reportConfig");
return c.get<report_cfg_eutra_s>();
}
report_cfg_inter_rat_s& report_cfg_inter_rat()
{
assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig");
return c.get<report_cfg_inter_rat_s>();
}
const report_cfg_eutra_s& report_cfg_eutra() const
{
assert_choice_type("reportConfigEUTRA", type_.to_string(), "reportConfig");
return c.get<report_cfg_eutra_s>();
}
const report_cfg_inter_rat_s& report_cfg_inter_rat() const
{
assert_choice_type("reportConfigInterRAT", type_.to_string(), "reportConfig");
return c.get<report_cfg_inter_rat_s>();
}
report_cfg_eutra_s& set_report_cfg_eutra()
{
set(types::report_cfg_eutra);
return c.get<report_cfg_eutra_s>();
}
report_cfg_inter_rat_s& set_report_cfg_inter_rat()
{
set(types::report_cfg_inter_rat);
return c.get<report_cfg_inter_rat_s>();
}
private:
types type_;
choice_buffer_t<report_cfg_eutra_s, report_cfg_inter_rat_s> c;
void destroy_();
};
// member variables
uint8_t report_cfg_id = 1;
report_cfg_c_ report_cfg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry-v1310-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1310_ies_s {
bool request_reduced_format_r13_present = false;
bool request_skip_fallback_comb_r13_present = false;
bool requested_max_ccs_dl_r13_present = false;
bool requested_max_ccs_ul_r13_present = false;
bool request_reduced_int_non_cont_comb_r13_present = false;
bool non_crit_ext_present = false;
uint8_t requested_max_ccs_dl_r13 = 2;
uint8_t requested_max_ccs_ul_r13 = 2;
ue_cap_enquiry_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-v1130-IEs ::= SEQUENCE
struct ue_info_request_v1130_ies_s {
bool conn_est_fail_report_req_r11_present = false;
bool non_crit_ext_present = false;
ue_info_request_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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(bit_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(bit_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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierInfoNR-r15 ::= SEQUENCE
struct carrier_info_nr_r15_s {
struct subcarrier_spacing_ssb_r15_opts {
enum options { khz15, khz30, khz120, khz240, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<subcarrier_spacing_ssb_r15_opts> subcarrier_spacing_ssb_r15_e_;
// member variables
bool smtc_r15_present = false;
uint32_t carrier_freq_r15 = 0;
subcarrier_spacing_ssb_r15_e_ subcarrier_spacing_ssb_r15;
mtc_ssb_nr_r15_s smtc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellGlobalIdList-r10 ::= SEQUENCE (SIZE (1..32)) OF CellGlobalIdEUTRA
using cell_global_id_list_r10_l = dyn_array<cell_global_id_eutra_s>;
// CounterCheck-v1530-IEs ::= SEQUENCE
struct counter_check_v1530_ies_s {
bool drb_count_msb_info_list_ext_r15_present = false;
bool non_crit_ext_present = false;
drb_count_msb_info_list_ext_r15_l drb_count_msb_info_list_ext_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverFromEUTRAPreparationRequest-v920-IEs ::= SEQUENCE
struct ho_from_eutra_prep_request_v920_ies_s {
bool concurr_prep_cdma2000_hrpd_r9_present = false;
bool non_crit_ext_present = false;
bool concurr_prep_cdma2000_hrpd_r9 = false;
ho_from_eutra_prep_request_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-v1130-IEs ::= SEQUENCE
struct logged_meas_cfg_v1130_ies_s {
bool plmn_id_list_r11_present = false;
bool area_cfg_v1130_present = false;
bool non_crit_ext_present = false;
plmn_id_list3_r11_l plmn_id_list_r11;
area_cfg_v1130_s area_cfg_v1130;
logged_meas_cfg_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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 {
enum options {
rstd0_r15,
rstd1_r15,
rstd2_r15,
rstd3_r15,
rstd4_r15,
rstd5_r15,
rstd6_r15,
rstd7_r15,
rstd8_r15,
rstd9_r15,
rstd10_r15,
rstd11_r15,
rstd12_r15,
rstd13_r15,
rstd14_r15,
rstd15_r15,
rstd16_r15,
rstd17_r15,
rstd18_r15,
rstd19_r15,
rstd20_r15,
// ...
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
gap_offset_dense_prs_r15_c_() = default;
gap_offset_dense_prs_r15_c_(const gap_offset_dense_prs_r15_c_& other);
gap_offset_dense_prs_r15_c_& operator=(const gap_offset_dense_prs_r15_c_& other);
~gap_offset_dense_prs_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& rstd0_r15()
{
assert_choice_type("rstd0-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
uint8_t& rstd1_r15()
{
assert_choice_type("rstd1-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
uint16_t& rstd2_r15()
{
assert_choice_type("rstd2-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd3_r15()
{
assert_choice_type("rstd3-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd4_r15()
{
assert_choice_type("rstd4-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint8_t& rstd5_r15()
{
assert_choice_type("rstd5-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
uint16_t& rstd6_r15()
{
assert_choice_type("rstd6-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd7_r15()
{
assert_choice_type("rstd7-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd8_r15()
{
assert_choice_type("rstd8-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd9_r15()
{
assert_choice_type("rstd9-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd10_r15()
{
assert_choice_type("rstd10-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd11_r15()
{
assert_choice_type("rstd11-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd12_r15()
{
assert_choice_type("rstd12-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd13_r15()
{
assert_choice_type("rstd13-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd14_r15()
{
assert_choice_type("rstd14-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd15_r15()
{
assert_choice_type("rstd15-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd16_r15()
{
assert_choice_type("rstd16-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd17_r15()
{
assert_choice_type("rstd17-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd18_r15()
{
assert_choice_type("rstd18-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd19_r15()
{
assert_choice_type("rstd19-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint16_t& rstd20_r15()
{
assert_choice_type("rstd20-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint8_t& rstd0_r15() const
{
assert_choice_type("rstd0-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
const uint8_t& rstd1_r15() const
{
assert_choice_type("rstd1-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
const uint16_t& rstd2_r15() const
{
assert_choice_type("rstd2-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd3_r15() const
{
assert_choice_type("rstd3-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd4_r15() const
{
assert_choice_type("rstd4-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint8_t& rstd5_r15() const
{
assert_choice_type("rstd5-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint8_t>();
}
const uint16_t& rstd6_r15() const
{
assert_choice_type("rstd6-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd7_r15() const
{
assert_choice_type("rstd7-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd8_r15() const
{
assert_choice_type("rstd8-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd9_r15() const
{
assert_choice_type("rstd9-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd10_r15() const
{
assert_choice_type("rstd10-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd11_r15() const
{
assert_choice_type("rstd11-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd12_r15() const
{
assert_choice_type("rstd12-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd13_r15() const
{
assert_choice_type("rstd13-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd14_r15() const
{
assert_choice_type("rstd14-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd15_r15() const
{
assert_choice_type("rstd15-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd16_r15() const
{
assert_choice_type("rstd16-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd17_r15() const
{
assert_choice_type("rstd17-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd18_r15() const
{
assert_choice_type("rstd18-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd19_r15() const
{
assert_choice_type("rstd19-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd20_r15() const
{
assert_choice_type("rstd20-r15", type_.to_string(), "gapOffsetDensePRS-r15");
return c.get<uint16_t>();
}
uint8_t& set_rstd0_r15()
{
set(types::rstd0_r15);
return c.get<uint8_t>();
}
uint8_t& set_rstd1_r15()
{
set(types::rstd1_r15);
return c.get<uint8_t>();
}
uint16_t& set_rstd2_r15()
{
set(types::rstd2_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd3_r15()
{
set(types::rstd3_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd4_r15()
{
set(types::rstd4_r15);
return c.get<uint16_t>();
}
uint8_t& set_rstd5_r15()
{
set(types::rstd5_r15);
return c.get<uint8_t>();
}
uint16_t& set_rstd6_r15()
{
set(types::rstd6_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd7_r15()
{
set(types::rstd7_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd8_r15()
{
set(types::rstd8_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd9_r15()
{
set(types::rstd9_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd10_r15()
{
set(types::rstd10_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd11_r15()
{
set(types::rstd11_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd12_r15()
{
set(types::rstd12_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd13_r15()
{
set(types::rstd13_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd14_r15()
{
set(types::rstd14_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd15_r15()
{
set(types::rstd15_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd16_r15()
{
set(types::rstd16_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd17_r15()
{
set(types::rstd17_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd18_r15()
{
set(types::rstd18_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd19_r15()
{
set(types::rstd19_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd20_r15()
{
set(types::rstd20_r15);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
gap_offset_dense_prs_r15_c_ gap_offset_dense_prs_r15;
};
typedef setup_e types;
// choice methods
meas_gap_cfg_dense_prs_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfigDensePRS-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfigDensePRS-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasGapConfigPerCC-List-r14 ::= CHOICE
struct meas_gap_cfg_per_cc_list_r14_c {
struct setup_s_ {
bool meas_gap_cfg_to_rem_list_r14_present = false;
bool meas_gap_cfg_to_add_mod_list_r14_present = false;
meas_gap_cfg_to_rem_list_r14_l meas_gap_cfg_to_rem_list_r14;
meas_gap_cfg_to_add_mod_list_r14_l meas_gap_cfg_to_add_mod_list_r14;
};
typedef setup_e types;
// choice methods
meas_gap_cfg_per_cc_list_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfigPerCC-List-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasGapConfigPerCC-List-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasGapSharingConfig-r14 ::= CHOICE
struct meas_gap_sharing_cfg_r14_c {
struct setup_s_ {
struct meas_gap_sharing_scheme_r14_opts {
enum options { scheme00, scheme01, scheme10, scheme11, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<meas_gap_sharing_scheme_r14_opts> meas_gap_sharing_scheme_r14_e_;
// member variables
meas_gap_sharing_scheme_r14_e_ meas_gap_sharing_scheme_r14;
};
typedef setup_e types;
// choice methods
meas_gap_sharing_cfg_r14_c() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "MeasGapSharingConfig-r14");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "MeasGapSharingConfig-r14");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// MeasIdToAddModList ::= SEQUENCE (SIZE (1..32)) OF MeasIdToAddMod
using meas_id_to_add_mod_list_l = dyn_array<meas_id_to_add_mod_s>;
// MeasIdToAddModList-v1310 ::= SEQUENCE (SIZE (1..32)) OF MeasIdToAddMod-v1310
using meas_id_to_add_mod_list_v1310_l = dyn_array<meas_id_to_add_mod_v1310_s>;
// MeasIdToAddModListExt-r12 ::= SEQUENCE (SIZE (1..32)) OF MeasIdToAddModExt-r12
using meas_id_to_add_mod_list_ext_r12_l = dyn_array<meas_id_to_add_mod_ext_r12_s>;
// MeasIdToAddModListExt-v1310 ::= SEQUENCE (SIZE (1..32)) OF MeasIdToAddMod-v1310
using meas_id_to_add_mod_list_ext_v1310_l = dyn_array<meas_id_to_add_mod_v1310_s>;
// MeasIdToRemoveList ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..32)
using meas_id_to_rem_list_l = bounded_array<uint8_t, 32>;
// MeasIdToRemoveListExt-r12 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (33..64)
using meas_id_to_rem_list_ext_r12_l = bounded_array<uint8_t, 32>;
// MeasObjectToAddModList ::= SEQUENCE (SIZE (1..32)) OF MeasObjectToAddMod
using meas_obj_to_add_mod_list_l = dyn_array<meas_obj_to_add_mod_s>;
// MeasObjectToAddModList-v9e0 ::= SEQUENCE (SIZE (1..32)) OF MeasObjectToAddMod-v9e0
using meas_obj_to_add_mod_list_v9e0_l = dyn_array<meas_obj_to_add_mod_v9e0_s>;
// MeasObjectToAddModListExt-r13 ::= SEQUENCE (SIZE (1..32)) OF MeasObjectToAddModExt-r13
using meas_obj_to_add_mod_list_ext_r13_l = dyn_array<meas_obj_to_add_mod_ext_r13_s>;
// MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..32)
using meas_obj_to_rem_list_l = bounded_array<uint8_t, 32>;
// MeasObjectToRemoveListExt-r13 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (33..64)
using meas_obj_to_rem_list_ext_r13_l = bounded_array<uint8_t, 32>;
// MeasScaleFactor-r12 ::= ENUMERATED
struct meas_scale_factor_r12_opts {
enum options { sf_eutra_cf1, sf_eutra_cf2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-v8d0-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_v8d0_ies_s {
bool band_ind_present = false;
bool non_crit_ext_present = false;
band_ind_geran_e band_ind;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-v960-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_v960_ies_s {
bool band_ind_present = false;
bool non_crit_ext_present = false;
band_ind_geran_e band_ind;
mob_from_eutra_cmd_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// QuantityConfig ::= SEQUENCE
struct quant_cfg_s {
bool ext = false;
bool quant_cfg_eutra_present = false;
bool quant_cfg_utra_present = false;
bool quant_cfg_geran_present = false;
bool quant_cfg_cdma2000_present = false;
quant_cfg_eutra_s quant_cfg_eutra;
quant_cfg_utra_s quant_cfg_utra;
quant_cfg_geran_s quant_cfg_geran;
quant_cfg_cdma2000_s quant_cfg_cdma2000;
// ...
// group 0
copy_ptr<quant_cfg_utra_v1020_s> quant_cfg_utra_v1020;
// group 1
copy_ptr<quant_cfg_eutra_v1250_s> quant_cfg_eutra_v1250;
// group 2
copy_ptr<quant_cfg_eutra_v1310_s> quant_cfg_eutra_v1310;
copy_ptr<quant_cfg_wlan_r13_s> quant_cfg_wlan_r13;
// group 3
copy_ptr<quant_cfg_nr_list_r15_l> quant_cfg_nr_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RAT-Type ::= ENUMERATED
struct rat_type_opts {
enum options { eutra, utra, geran_cs, geran_ps, cdma2000_minus1_xrtt, nr, eutra_nr, spare1, /*...*/ nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<rat_type_opts, true> rat_type_e;
// RRCConnectionReconfiguration-v8m0-IEs ::= SEQUENCE
struct rrc_conn_recfg_v8m0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_recfg_v10i0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v920-IEs ::= SEQUENCE
struct rrc_conn_recfg_v920_ies_s {
bool other_cfg_r9_present = false;
bool full_cfg_r9_present = false;
bool non_crit_ext_present = false;
other_cfg_r9_s other_cfg_r9;
rrc_conn_recfg_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v920-IEs ::= SEQUENCE
struct rrc_conn_release_v920_ies_s {
struct cell_info_list_r9_c_ {
struct types_opts {
enum options { geran_r9, utra_fdd_r9, utra_tdd_r9, /*...*/ utra_tdd_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 1> types;
// choice methods
cell_info_list_r9_c_() = default;
cell_info_list_r9_c_(const cell_info_list_r9_c_& other);
cell_info_list_r9_c_& operator=(const cell_info_list_r9_c_& other);
~cell_info_list_r9_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cell_info_list_geran_r9_l& geran_r9()
{
assert_choice_type("geran-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_geran_r9_l>();
}
cell_info_list_utra_fdd_r9_l& utra_fdd_r9()
{
assert_choice_type("utra-FDD-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_fdd_r9_l>();
}
cell_info_list_utra_tdd_r9_l& utra_tdd_r9()
{
assert_choice_type("utra-TDD-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_tdd_r9_l>();
}
cell_info_list_utra_tdd_r10_l& utra_tdd_r10()
{
assert_choice_type("utra-TDD-r10", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_tdd_r10_l>();
}
const cell_info_list_geran_r9_l& geran_r9() const
{
assert_choice_type("geran-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_geran_r9_l>();
}
const cell_info_list_utra_fdd_r9_l& utra_fdd_r9() const
{
assert_choice_type("utra-FDD-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_fdd_r9_l>();
}
const cell_info_list_utra_tdd_r9_l& utra_tdd_r9() const
{
assert_choice_type("utra-TDD-r9", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_tdd_r9_l>();
}
const cell_info_list_utra_tdd_r10_l& utra_tdd_r10() const
{
assert_choice_type("utra-TDD-r10", type_.to_string(), "cellInfoList-r9");
return c.get<cell_info_list_utra_tdd_r10_l>();
}
cell_info_list_geran_r9_l& set_geran_r9()
{
set(types::geran_r9);
return c.get<cell_info_list_geran_r9_l>();
}
cell_info_list_utra_fdd_r9_l& set_utra_fdd_r9()
{
set(types::utra_fdd_r9);
return c.get<cell_info_list_utra_fdd_r9_l>();
}
cell_info_list_utra_tdd_r9_l& set_utra_tdd_r9()
{
set(types::utra_tdd_r9);
return c.get<cell_info_list_utra_tdd_r9_l>();
}
cell_info_list_utra_tdd_r10_l& set_utra_tdd_r10()
{
set(types::utra_tdd_r10);
return c.get<cell_info_list_utra_tdd_r10_l>();
}
private:
types type_;
choice_buffer_t<cell_info_list_geran_r9_l,
cell_info_list_utra_fdd_r9_l,
cell_info_list_utra_tdd_r10_l,
cell_info_list_utra_tdd_r9_l>
c;
void destroy_();
};
// member variables
bool cell_info_list_r9_present = false;
bool non_crit_ext_present = false;
cell_info_list_r9_c_ cell_info_list_r9;
rrc_conn_release_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v9e0-IEs ::= SEQUENCE
struct rrc_conn_release_v9e0_ies_s {
bool redirected_carrier_info_v9e0_present = false;
bool idle_mode_mob_ctrl_info_v9e0_present = false;
bool non_crit_ext_present = false;
redirected_carrier_info_v9e0_s redirected_carrier_info_v9e0;
idle_mode_mob_ctrl_info_v9e0_s idle_mode_mob_ctrl_info_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResume-v1510-IEs ::= SEQUENCE
struct rrc_conn_resume_v1510_ies_s {
bool sk_counter_r15_present = false;
bool nr_radio_bearer_cfg1_r15_present = false;
bool nr_radio_bearer_cfg2_r15_present = false;
bool non_crit_ext_present = false;
uint32_t sk_counter_r15 = 0;
dyn_octstring nr_radio_bearer_cfg1_r15;
dyn_octstring nr_radio_bearer_cfg2_r15;
rrc_conn_resume_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RadioResourceConfigCommon ::= SEQUENCE
struct rr_cfg_common_s {
bool ext = false;
bool rach_cfg_common_present = false;
bool pdsch_cfg_common_present = false;
bool phich_cfg_present = false;
bool pucch_cfg_common_present = false;
bool srs_ul_cfg_common_present = false;
bool ul_pwr_ctrl_common_present = false;
bool ant_info_common_present = false;
bool p_max_present = false;
bool tdd_cfg_present = false;
rach_cfg_common_s rach_cfg_common;
prach_cfg_s prach_cfg;
pdsch_cfg_common_s pdsch_cfg_common;
pusch_cfg_common_s pusch_cfg_common;
phich_cfg_s phich_cfg;
pucch_cfg_common_s pucch_cfg_common;
srs_ul_cfg_common_c srs_ul_cfg_common;
ul_pwr_ctrl_common_s ul_pwr_ctrl_common;
ant_info_common_s ant_info_common;
int8_t p_max = -30;
tdd_cfg_s tdd_cfg;
ul_cp_len_e ul_cp_len;
// ...
// group 0
copy_ptr<ul_pwr_ctrl_common_v1020_s> ul_pwr_ctrl_common_v1020;
// group 1
copy_ptr<tdd_cfg_v1130_s> tdd_cfg_v1130;
// group 2
copy_ptr<pusch_cfg_common_v1270_s> pusch_cfg_common_v1270;
// group 3
copy_ptr<prach_cfg_v1310_s> prach_cfg_v1310;
copy_ptr<freq_hop_params_r13_s> freq_hop_params_r13;
copy_ptr<pdsch_cfg_common_v1310_s> pdsch_cfg_common_v1310;
copy_ptr<pucch_cfg_common_v1310_s> pucch_cfg_common_v1310;
copy_ptr<pusch_cfg_common_v1310_s> pusch_cfg_common_v1310;
copy_ptr<ul_pwr_ctrl_common_v1310_s> ul_pwr_ctrl_common_v1310;
// group 4
copy_ptr<high_speed_cfg_r14_s> high_speed_cfg_r14;
copy_ptr<prach_cfg_v1430_s> prach_cfg_v1430;
copy_ptr<pucch_cfg_common_v1430_s> pucch_cfg_common_v1430;
copy_ptr<tdd_cfg_v1430_s> tdd_cfg_v1430;
// group 5
copy_ptr<tdd_cfg_v1450_s> tdd_cfg_v1450;
// group 6
copy_ptr<ul_pwr_ctrl_common_v1530_s> ul_pwr_ctrl_common_v1530;
copy_ptr<high_speed_cfg_v1530_s> high_speed_cfg_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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>;
// ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..32)
using report_cfg_to_rem_list_l = bounded_array<uint8_t, 32>;
// SI-OrPSI-GERAN ::= CHOICE
struct si_or_psi_geran_c {
struct types_opts {
enum options { si, psi, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
si_or_psi_geran_c() = default;
si_or_psi_geran_c(const si_or_psi_geran_c& other);
si_or_psi_geran_c& operator=(const si_or_psi_geran_c& other);
~si_or_psi_geran_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sys_info_list_geran_l& si()
{
assert_choice_type("si", type_.to_string(), "SI-OrPSI-GERAN");
return c.get<sys_info_list_geran_l>();
}
sys_info_list_geran_l& psi()
{
assert_choice_type("psi", type_.to_string(), "SI-OrPSI-GERAN");
return c.get<sys_info_list_geran_l>();
}
const sys_info_list_geran_l& si() const
{
assert_choice_type("si", type_.to_string(), "SI-OrPSI-GERAN");
return c.get<sys_info_list_geran_l>();
}
const sys_info_list_geran_l& psi() const
{
assert_choice_type("psi", type_.to_string(), "SI-OrPSI-GERAN");
return c.get<sys_info_list_geran_l>();
}
sys_info_list_geran_l& set_si()
{
set(types::si);
return c.get<sys_info_list_geran_l>();
}
sys_info_list_geran_l& set_psi()
{
set(types::psi);
return c.get<sys_info_list_geran_l>();
}
private:
types type_;
choice_buffer_t<sys_info_list_geran_l> c;
void destroy_();
};
// TrackingAreaCodeList-r10 ::= SEQUENCE (SIZE (1..8)) OF BIT STRING (SIZE (16))
using tac_list_r10_l = bounded_array<fixed_bitstring<16>, 8>;
// UECapabilityEnquiry-v1180-IEs ::= SEQUENCE
struct ue_cap_enquiry_v1180_ies_s {
using requested_freq_bands_r11_l_ = bounded_array<uint16_t, 16>;
// member variables
bool requested_freq_bands_r11_present = false;
bool non_crit_ext_present = false;
requested_freq_bands_r11_l_ requested_freq_bands_r11;
ue_cap_enquiry_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-v1020-IEs ::= SEQUENCE
struct ue_info_request_v1020_ies_s {
bool log_meas_report_req_r10_present = false;
bool non_crit_ext_present = false;
ue_info_request_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AreaConfiguration-r10 ::= CHOICE
struct area_cfg_r10_c {
struct types_opts {
enum options { cell_global_id_list_r10, tac_list_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
area_cfg_r10_c() = default;
area_cfg_r10_c(const area_cfg_r10_c& other);
area_cfg_r10_c& operator=(const area_cfg_r10_c& other);
~area_cfg_r10_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cell_global_id_list_r10_l& cell_global_id_list_r10()
{
assert_choice_type("cellGlobalIdList-r10", type_.to_string(), "AreaConfiguration-r10");
return c.get<cell_global_id_list_r10_l>();
}
tac_list_r10_l& tac_list_r10()
{
assert_choice_type("trackingAreaCodeList-r10", type_.to_string(), "AreaConfiguration-r10");
return c.get<tac_list_r10_l>();
}
const cell_global_id_list_r10_l& cell_global_id_list_r10() const
{
assert_choice_type("cellGlobalIdList-r10", type_.to_string(), "AreaConfiguration-r10");
return c.get<cell_global_id_list_r10_l>();
}
const tac_list_r10_l& tac_list_r10() const
{
assert_choice_type("trackingAreaCodeList-r10", type_.to_string(), "AreaConfiguration-r10");
return c.get<tac_list_r10_l>();
}
cell_global_id_list_r10_l& set_cell_global_id_list_r10()
{
set(types::cell_global_id_list_r10);
return c.get<cell_global_id_list_r10_l>();
}
tac_list_r10_l& set_tac_list_r10()
{
set(types::tac_list_r10);
return c.get<tac_list_r10_l>();
}
private:
types type_;
choice_buffer_t<cell_global_id_list_r10_l, tac_list_r10_l> c;
void destroy_();
};
// CSFBParametersResponseCDMA2000-v8a0-IEs ::= SEQUENCE
struct csfb_params_resp_cdma2000_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellChangeOrder ::= SEQUENCE
struct cell_change_order_s {
struct t304_opts {
enum options { ms100, ms200, ms500, ms1000, ms2000, ms4000, ms8000, ms10000_v1310, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t304_opts> t304_e_;
struct target_rat_type_c_ {
struct geran_s_ {
bool network_ctrl_order_present = false;
bool sys_info_present = false;
pci_geran_s pci;
carrier_freq_geran_s carrier_freq;
fixed_bitstring<2> network_ctrl_order;
si_or_psi_geran_c sys_info;
};
struct types_opts {
enum options { geran, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
types type() const { return types::geran; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
geran_s_& geran() { return c; }
const geran_s_& geran() const { return c; }
private:
geran_s_ c;
};
// member variables
t304_e_ t304;
target_rat_type_c_ target_rat_type;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheck-v8a0-IEs ::= SEQUENCE
struct counter_check_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
counter_check_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DLInformationTransfer-v8a0-IEs ::= SEQUENCE
struct dl_info_transfer_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-CountMSB-InfoList ::= SEQUENCE (SIZE (1..11)) OF DRB-CountMSB-Info
using drb_count_msb_info_list_l = dyn_array<drb_count_msb_info_s>;
// E-CSFB-r9 ::= SEQUENCE
struct e_csfb_r9_s {
struct mob_cdma2000_hrpd_r9_opts {
enum options { ho, redirection, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mob_cdma2000_hrpd_r9_opts> mob_cdma2000_hrpd_r9_e_;
// member variables
bool msg_cont_cdma2000_minus1_xrtt_r9_present = false;
bool mob_cdma2000_hrpd_r9_present = false;
bool msg_cont_cdma2000_hrpd_r9_present = false;
bool redirect_carrier_cdma2000_hrpd_r9_present = false;
dyn_octstring msg_cont_cdma2000_minus1_xrtt_r9;
mob_cdma2000_hrpd_r9_e_ mob_cdma2000_hrpd_r9;
dyn_octstring msg_cont_cdma2000_hrpd_r9;
carrier_freq_cdma2000_s redirect_carrier_cdma2000_hrpd_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Handover ::= SEQUENCE
struct ho_s {
struct target_rat_type_opts {
enum options {
utra,
geran,
cdma2000_minus1_xrtt,
cdma2000_hrpd,
nr,
eutra,
spare2,
spare1,
/*...*/ nulltype
} value;
std::string to_string() const;
};
typedef enumerated<target_rat_type_opts, true> target_rat_type_e_;
// member variables
bool nas_security_param_from_eutra_present = false;
bool sys_info_present = false;
target_rat_type_e_ target_rat_type;
dyn_octstring target_rat_msg_container;
fixed_octstring<1> nas_security_param_from_eutra;
si_or_psi_geran_c sys_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverFromEUTRAPreparationRequest-v890-IEs ::= SEQUENCE
struct ho_from_eutra_prep_request_v890_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ho_from_eutra_prep_request_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-v1080-IEs ::= SEQUENCE
struct logged_meas_cfg_v1080_ies_s {
bool late_non_crit_ext_r10_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext_r10;
logged_meas_cfg_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggingDuration-r10 ::= ENUMERATED
struct logging_dur_r10_opts {
enum options { min10, min20, min40, min60, min90, min120, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<logging_dur_r10_opts> logging_dur_r10_e;
// LoggingInterval-r10 ::= ENUMERATED
struct logging_interv_r10_opts {
enum options { ms1280, ms2560, ms5120, ms10240, ms20480, ms30720, ms40960, ms61440, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<logging_interv_r10_opts> logging_interv_r10_e;
// MeasConfig ::= SEQUENCE
struct meas_cfg_s {
struct speed_state_pars_c_ {
struct setup_s_ {
mob_state_params_s mob_state_params;
speed_state_scale_factors_s time_to_trigger_sf;
};
typedef setup_e types;
// choice methods
speed_state_pars_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "speedStatePars");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "speedStatePars");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
struct meas_scale_factor_r12_c_ {
typedef setup_e types;
// choice methods
meas_scale_factor_r12_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_scale_factor_r12_e& setup()
{
assert_choice_type("setup", type_.to_string(), "measScaleFactor-r12");
return c;
}
const meas_scale_factor_r12_e& setup() const
{
assert_choice_type("setup", type_.to_string(), "measScaleFactor-r12");
return c;
}
meas_scale_factor_r12_e& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
meas_scale_factor_r12_e c;
};
struct height_thresh_ref_r15_c_ {
typedef setup_e types;
// choice methods
height_thresh_ref_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& setup()
{
assert_choice_type("setup", type_.to_string(), "heightThreshRef-r15");
return c;
}
const uint8_t& setup() const
{
assert_choice_type("setup", type_.to_string(), "heightThreshRef-r15");
return c;
}
uint8_t& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
uint8_t c;
};
// member variables
bool ext = false;
bool meas_obj_to_rem_list_present = false;
bool meas_obj_to_add_mod_list_present = false;
bool report_cfg_to_rem_list_present = false;
bool report_cfg_to_add_mod_list_present = false;
bool meas_id_to_rem_list_present = false;
bool meas_id_to_add_mod_list_present = false;
bool quant_cfg_present = false;
bool meas_gap_cfg_present = false;
bool s_measure_present = false;
bool pre_regist_info_hrpd_present = false;
bool speed_state_pars_present = false;
meas_obj_to_rem_list_l meas_obj_to_rem_list;
meas_obj_to_add_mod_list_l meas_obj_to_add_mod_list;
report_cfg_to_rem_list_l report_cfg_to_rem_list;
report_cfg_to_add_mod_list_l report_cfg_to_add_mod_list;
meas_id_to_rem_list_l meas_id_to_rem_list;
meas_id_to_add_mod_list_l meas_id_to_add_mod_list;
quant_cfg_s quant_cfg;
meas_gap_cfg_c meas_gap_cfg;
uint8_t s_measure = 0;
pre_regist_info_hrpd_s pre_regist_info_hrpd;
speed_state_pars_c_ speed_state_pars;
// ...
// group 0
copy_ptr<meas_obj_to_add_mod_list_v9e0_l> meas_obj_to_add_mod_list_v9e0;
// group 1
bool allow_interruptions_r11_present = false;
bool allow_interruptions_r11 = false;
// group 2
bool meas_rsrq_on_all_symbols_r12_present = false;
copy_ptr<meas_scale_factor_r12_c_> meas_scale_factor_r12;
copy_ptr<meas_id_to_rem_list_ext_r12_l> meas_id_to_rem_list_ext_r12;
copy_ptr<meas_id_to_add_mod_list_ext_r12_l> meas_id_to_add_mod_list_ext_r12;
bool meas_rsrq_on_all_symbols_r12 = false;
// group 3
copy_ptr<meas_obj_to_rem_list_ext_r13_l> meas_obj_to_rem_list_ext_r13;
copy_ptr<meas_obj_to_add_mod_list_ext_r13_l> meas_obj_to_add_mod_list_ext_r13;
copy_ptr<meas_id_to_add_mod_list_v1310_l> meas_id_to_add_mod_list_v1310;
copy_ptr<meas_id_to_add_mod_list_ext_v1310_l> meas_id_to_add_mod_list_ext_v1310;
// group 4
copy_ptr<meas_gap_cfg_per_cc_list_r14_c> meas_gap_cfg_per_cc_list_r14;
copy_ptr<meas_gap_sharing_cfg_r14_c> meas_gap_sharing_cfg_r14;
// group 5
bool fr1_gap_r15_present = false;
bool mgta_r15_present = false;
bool fr1_gap_r15 = false;
bool mgta_r15 = false;
// group 6
copy_ptr<meas_gap_cfg_dense_prs_r15_c> meas_gap_cfg_dense_prs_r15;
copy_ptr<height_thresh_ref_r15_c_> height_thresh_ref_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityControlInfo ::= SEQUENCE
struct mob_ctrl_info_s {
struct t304_opts {
enum options { ms50, ms100, ms150, ms200, ms500, ms1000, ms2000, ms10000_v1310, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<t304_opts> t304_e_;
struct ho_without_wt_change_r14_opts {
enum options { keep_lwa_cfg, send_end_marker, nulltype } value;
std::string to_string() const;
};
typedef enumerated<ho_without_wt_change_r14_opts> ho_without_wt_change_r14_e_;
// member variables
bool ext = false;
bool carrier_freq_present = false;
bool carrier_bw_present = false;
bool add_spec_emission_present = false;
bool rach_cfg_ded_present = false;
uint16_t target_pci = 0;
carrier_freq_eutra_s carrier_freq;
carrier_bw_eutra_s carrier_bw;
uint8_t add_spec_emission = 1;
t304_e_ t304;
fixed_bitstring<16> new_ue_id;
rr_cfg_common_s rr_cfg_common;
rach_cfg_ded_s rach_cfg_ded;
// ...
// group 0
copy_ptr<carrier_freq_eutra_v9e0_s> carrier_freq_v9e0;
// group 1
bool drb_continue_rohc_r11_present = false;
// group 2
bool ho_without_wt_change_r14_present = false;
bool make_before_break_r14_present = false;
bool same_sfn_ind_r14_present = false;
copy_ptr<mob_ctrl_info_v2x_r14_s> mob_ctrl_info_v2x_r14;
ho_without_wt_change_r14_e_ ho_without_wt_change_r14;
copy_ptr<rach_skip_r14_s> rach_skip_r14;
// group 3
bool mib_repeat_status_r14_present = false;
bool sched_info_sib1_br_r14_present = false;
bool mib_repeat_status_r14 = false;
uint8_t sched_info_sib1_br_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-v8a0-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
mob_from_eutra_cmd_v8d0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-v930-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_v930_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
mob_from_eutra_cmd_v960_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RN-SubframeConfig-r10 ::= SEQUENCE
struct rn_sf_cfg_r10_s {
struct sf_cfg_pattern_r10_c_ {
struct types_opts {
enum options { sf_cfg_pattern_fdd_r10, sf_cfg_pattern_tdd_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
sf_cfg_pattern_r10_c_() = default;
sf_cfg_pattern_r10_c_(const sf_cfg_pattern_r10_c_& other);
sf_cfg_pattern_r10_c_& operator=(const sf_cfg_pattern_r10_c_& other);
~sf_cfg_pattern_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<8>& sf_cfg_pattern_fdd_r10()
{
assert_choice_type("subframeConfigPatternFDD-r10", type_.to_string(), "subframeConfigPattern-r10");
return c.get<fixed_bitstring<8> >();
}
uint8_t& sf_cfg_pattern_tdd_r10()
{
assert_choice_type("subframeConfigPatternTDD-r10", type_.to_string(), "subframeConfigPattern-r10");
return c.get<uint8_t>();
}
const fixed_bitstring<8>& sf_cfg_pattern_fdd_r10() const
{
assert_choice_type("subframeConfigPatternFDD-r10", type_.to_string(), "subframeConfigPattern-r10");
return c.get<fixed_bitstring<8> >();
}
const uint8_t& sf_cfg_pattern_tdd_r10() const
{
assert_choice_type("subframeConfigPatternTDD-r10", type_.to_string(), "subframeConfigPattern-r10");
return c.get<uint8_t>();
}
fixed_bitstring<8>& set_sf_cfg_pattern_fdd_r10()
{
set(types::sf_cfg_pattern_fdd_r10);
return c.get<fixed_bitstring<8> >();
}
uint8_t& set_sf_cfg_pattern_tdd_r10()
{
set(types::sf_cfg_pattern_tdd_r10);
return c.get<uint8_t>();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<8> > c;
void destroy_();
};
struct rpdcch_cfg_r10_s_ {
struct res_alloc_type_r10_opts {
enum options { type0, type1, type2_localized, type2_distributed, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<res_alloc_type_r10_opts> res_alloc_type_r10_e_;
struct res_block_assign_r10_c_ {
struct type01_r10_c_ {
struct types_opts {
enum options { nrb6_r10, nrb15_r10, nrb25_r10, nrb50_r10, nrb75_r10, nrb100_r10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
type01_r10_c_() = default;
type01_r10_c_(const type01_r10_c_& other);
type01_r10_c_& operator=(const type01_r10_c_& other);
~type01_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<6>& nrb6_r10()
{
assert_choice_type("nrb6-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<8>& nrb15_r10()
{
assert_choice_type("nrb15-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<13>& nrb25_r10()
{
assert_choice_type("nrb25-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<13> >();
}
fixed_bitstring<17>& nrb50_r10()
{
assert_choice_type("nrb50-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<17> >();
}
fixed_bitstring<19>& nrb75_r10()
{
assert_choice_type("nrb75-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<19> >();
}
fixed_bitstring<25>& nrb100_r10()
{
assert_choice_type("nrb100-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<25> >();
}
const fixed_bitstring<6>& nrb6_r10() const
{
assert_choice_type("nrb6-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<6> >();
}
const fixed_bitstring<8>& nrb15_r10() const
{
assert_choice_type("nrb15-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<13>& nrb25_r10() const
{
assert_choice_type("nrb25-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<13> >();
}
const fixed_bitstring<17>& nrb50_r10() const
{
assert_choice_type("nrb50-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<17> >();
}
const fixed_bitstring<19>& nrb75_r10() const
{
assert_choice_type("nrb75-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<19> >();
}
const fixed_bitstring<25>& nrb100_r10() const
{
assert_choice_type("nrb100-r10", type_.to_string(), "type01-r10");
return c.get<fixed_bitstring<25> >();
}
fixed_bitstring<6>& set_nrb6_r10()
{
set(types::nrb6_r10);
return c.get<fixed_bitstring<6> >();
}
fixed_bitstring<8>& set_nrb15_r10()
{
set(types::nrb15_r10);
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<13>& set_nrb25_r10()
{
set(types::nrb25_r10);
return c.get<fixed_bitstring<13> >();
}
fixed_bitstring<17>& set_nrb50_r10()
{
set(types::nrb50_r10);
return c.get<fixed_bitstring<17> >();
}
fixed_bitstring<19>& set_nrb75_r10()
{
set(types::nrb75_r10);
return c.get<fixed_bitstring<19> >();
}
fixed_bitstring<25>& set_nrb100_r10()
{
set(types::nrb100_r10);
return c.get<fixed_bitstring<25> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<25> > c;
void destroy_();
};
struct type2_r10_c_ {
struct types_opts {
enum options { nrb6_r10, nrb15_r10, nrb25_r10, nrb50_r10, nrb75_r10, nrb100_r10, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
type2_r10_c_() = default;
type2_r10_c_(const type2_r10_c_& other);
type2_r10_c_& operator=(const type2_r10_c_& other);
~type2_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<5>& nrb6_r10()
{
assert_choice_type("nrb6-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<5> >();
}
fixed_bitstring<7>& nrb15_r10()
{
assert_choice_type("nrb15-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<9>& nrb25_r10()
{
assert_choice_type("nrb25-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<9> >();
}
fixed_bitstring<11>& nrb50_r10()
{
assert_choice_type("nrb50-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<11> >();
}
fixed_bitstring<12>& nrb75_r10()
{
assert_choice_type("nrb75-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<12> >();
}
fixed_bitstring<13>& nrb100_r10()
{
assert_choice_type("nrb100-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<13> >();
}
const fixed_bitstring<5>& nrb6_r10() const
{
assert_choice_type("nrb6-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<5> >();
}
const fixed_bitstring<7>& nrb15_r10() const
{
assert_choice_type("nrb15-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<7> >();
}
const fixed_bitstring<9>& nrb25_r10() const
{
assert_choice_type("nrb25-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<9> >();
}
const fixed_bitstring<11>& nrb50_r10() const
{
assert_choice_type("nrb50-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<11> >();
}
const fixed_bitstring<12>& nrb75_r10() const
{
assert_choice_type("nrb75-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<12> >();
}
const fixed_bitstring<13>& nrb100_r10() const
{
assert_choice_type("nrb100-r10", type_.to_string(), "type2-r10");
return c.get<fixed_bitstring<13> >();
}
fixed_bitstring<5>& set_nrb6_r10()
{
set(types::nrb6_r10);
return c.get<fixed_bitstring<5> >();
}
fixed_bitstring<7>& set_nrb15_r10()
{
set(types::nrb15_r10);
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<9>& set_nrb25_r10()
{
set(types::nrb25_r10);
return c.get<fixed_bitstring<9> >();
}
fixed_bitstring<11>& set_nrb50_r10()
{
set(types::nrb50_r10);
return c.get<fixed_bitstring<11> >();
}
fixed_bitstring<12>& set_nrb75_r10()
{
set(types::nrb75_r10);
return c.get<fixed_bitstring<12> >();
}
fixed_bitstring<13>& set_nrb100_r10()
{
set(types::nrb100_r10);
return c.get<fixed_bitstring<13> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<13> > c;
void destroy_();
};
struct types_opts {
enum options { type01_r10, type2_r10, /*...*/ nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
res_block_assign_r10_c_() = default;
res_block_assign_r10_c_(const res_block_assign_r10_c_& other);
res_block_assign_r10_c_& operator=(const res_block_assign_r10_c_& other);
~res_block_assign_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
type01_r10_c_& type01_r10()
{
assert_choice_type("type01-r10", type_.to_string(), "resourceBlockAssignment-r10");
return c.get<type01_r10_c_>();
}
type2_r10_c_& type2_r10()
{
assert_choice_type("type2-r10", type_.to_string(), "resourceBlockAssignment-r10");
return c.get<type2_r10_c_>();
}
const type01_r10_c_& type01_r10() const
{
assert_choice_type("type01-r10", type_.to_string(), "resourceBlockAssignment-r10");
return c.get<type01_r10_c_>();
}
const type2_r10_c_& type2_r10() const
{
assert_choice_type("type2-r10", type_.to_string(), "resourceBlockAssignment-r10");
return c.get<type2_r10_c_>();
}
type01_r10_c_& set_type01_r10()
{
set(types::type01_r10);
return c.get<type01_r10_c_>();
}
type2_r10_c_& set_type2_r10()
{
set(types::type2_r10);
return c.get<type2_r10_c_>();
}
private:
types type_;
choice_buffer_t<type01_r10_c_, type2_r10_c_> c;
void destroy_();
};
struct demod_rs_r10_c_ {
struct no_interleaving_r10_opts {
enum options { crs, dmrs, nulltype } value;
std::string to_string() const;
};
typedef enumerated<no_interleaving_r10_opts> no_interleaving_r10_e_;
struct types_opts {
enum options { interleaving_r10, no_interleaving_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
demod_rs_r10_c_() = default;
demod_rs_r10_c_(const demod_rs_r10_c_& other);
demod_rs_r10_c_& operator=(const demod_rs_r10_c_& other);
~demod_rs_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
no_interleaving_r10_e_& no_interleaving_r10()
{
assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10");
return c.get<no_interleaving_r10_e_>();
}
const no_interleaving_r10_e_& no_interleaving_r10() const
{
assert_choice_type("noInterleaving-r10", type_.to_string(), "demodulationRS-r10");
return c.get<no_interleaving_r10_e_>();
}
no_interleaving_r10_e_& set_no_interleaving_r10()
{
set(types::no_interleaving_r10);
return c.get<no_interleaving_r10_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct pucch_cfg_r10_c_ {
struct tdd_c_ {
struct ch_sel_mux_bundling_s_ {
using n1_pucch_an_list_r10_l_ = bounded_array<uint16_t, 4>;
// member variables
n1_pucch_an_list_r10_l_ n1_pucch_an_list_r10;
};
struct fallback_for_format3_s_ {
bool n1_pucch_an_p1_r10_present = false;
uint16_t n1_pucch_an_p0_r10 = 0;
uint16_t n1_pucch_an_p1_r10 = 0;
};
struct types_opts {
enum options { ch_sel_mux_bundling, fallback_for_format3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
tdd_c_() = default;
tdd_c_(const tdd_c_& other);
tdd_c_& operator=(const tdd_c_& other);
~tdd_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ch_sel_mux_bundling_s_& ch_sel_mux_bundling()
{
assert_choice_type("channelSelectionMultiplexingBundling", type_.to_string(), "tdd");
return c.get<ch_sel_mux_bundling_s_>();
}
fallback_for_format3_s_& fallback_for_format3()
{
assert_choice_type("fallbackForFormat3", type_.to_string(), "tdd");
return c.get<fallback_for_format3_s_>();
}
const ch_sel_mux_bundling_s_& ch_sel_mux_bundling() const
{
assert_choice_type("channelSelectionMultiplexingBundling", type_.to_string(), "tdd");
return c.get<ch_sel_mux_bundling_s_>();
}
const fallback_for_format3_s_& fallback_for_format3() const
{
assert_choice_type("fallbackForFormat3", type_.to_string(), "tdd");
return c.get<fallback_for_format3_s_>();
}
ch_sel_mux_bundling_s_& set_ch_sel_mux_bundling()
{
set(types::ch_sel_mux_bundling);
return c.get<ch_sel_mux_bundling_s_>();
}
fallback_for_format3_s_& set_fallback_for_format3()
{
set(types::fallback_for_format3);
return c.get<fallback_for_format3_s_>();
}
private:
types type_;
choice_buffer_t<ch_sel_mux_bundling_s_, fallback_for_format3_s_> c;
void destroy_();
};
struct fdd_s_ {
bool n1_pucch_an_p1_r10_present = false;
uint16_t n1_pucch_an_p0_r10 = 0;
uint16_t n1_pucch_an_p1_r10 = 0;
};
struct types_opts {
enum options { tdd, fdd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pucch_cfg_r10_c_() = default;
pucch_cfg_r10_c_(const pucch_cfg_r10_c_& other);
pucch_cfg_r10_c_& operator=(const pucch_cfg_r10_c_& other);
~pucch_cfg_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
tdd_c_& tdd()
{
assert_choice_type("tdd", type_.to_string(), "pucch-Config-r10");
return c.get<tdd_c_>();
}
fdd_s_& fdd()
{
assert_choice_type("fdd", type_.to_string(), "pucch-Config-r10");
return c.get<fdd_s_>();
}
const tdd_c_& tdd() const
{
assert_choice_type("tdd", type_.to_string(), "pucch-Config-r10");
return c.get<tdd_c_>();
}
const fdd_s_& fdd() const
{
assert_choice_type("fdd", type_.to_string(), "pucch-Config-r10");
return c.get<fdd_s_>();
}
tdd_c_& set_tdd()
{
set(types::tdd);
return c.get<tdd_c_>();
}
fdd_s_& set_fdd()
{
set(types::fdd);
return c.get<fdd_s_>();
}
private:
types type_;
choice_buffer_t<fdd_s_, tdd_c_> c;
void destroy_();
};
// member variables
bool ext = false;
res_alloc_type_r10_e_ res_alloc_type_r10;
res_block_assign_r10_c_ res_block_assign_r10;
demod_rs_r10_c_ demod_rs_r10;
uint8_t pdsch_start_r10 = 1;
pucch_cfg_r10_c_ pucch_cfg_r10;
// ...
};
// member variables
bool ext = false;
bool sf_cfg_pattern_r10_present = false;
bool rpdcch_cfg_r10_present = false;
sf_cfg_pattern_r10_c_ sf_cfg_pattern_r10;
rpdcch_cfg_r10_s_ rpdcch_cfg_r10;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RN-SystemInfo-r10 ::= SEQUENCE
struct rn_sys_info_r10_s {
bool ext = false;
bool sib_type1_r10_present = false;
bool sib_type2_r10_present = false;
dyn_octstring sib_type1_r10;
sib_type2_s sib_type2_r10;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-v890-IEs ::= SEQUENCE
struct rrc_conn_recfg_v890_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_recfg_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-v890-IEs ::= SEQUENCE
struct rrc_conn_release_v890_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_release_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResume-v1430-IEs ::= SEQUENCE
struct rrc_conn_resume_v1430_ies_s {
bool other_cfg_r14_present = false;
bool rrc_conn_resume_v1510_ies_present = false;
other_cfg_r9_s other_cfg_r14;
rrc_conn_resume_v1510_ies_s rrc_conn_resume_v1510_ies;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RedirectedCarrierInfo ::= CHOICE
struct redirected_carrier_info_c {
struct types_opts {
enum options {
eutra,
geran,
utra_fdd,
utra_tdd,
cdma2000_hrpd,
cdma2000_minus1x_rtt,
// ...
utra_tdd_r10,
nr_r15,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 2> types;
// choice methods
redirected_carrier_info_c() = default;
redirected_carrier_info_c(const redirected_carrier_info_c& other);
redirected_carrier_info_c& operator=(const redirected_carrier_info_c& other);
~redirected_carrier_info_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint32_t& eutra()
{
assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint32_t>();
}
carrier_freqs_geran_s& geran()
{
assert_choice_type("geran", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freqs_geran_s>();
}
uint16_t& utra_fdd()
{
assert_choice_type("utra-FDD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint16_t>();
}
uint16_t& utra_tdd()
{
assert_choice_type("utra-TDD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint16_t>();
}
carrier_freq_cdma2000_s& cdma2000_hrpd()
{
assert_choice_type("cdma2000-HRPD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_cdma2000_s& cdma2000_minus1x_rtt()
{
assert_choice_type("cdma2000-1xRTT", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_list_utra_tdd_r10_l& utra_tdd_r10()
{
assert_choice_type("utra-TDD-r10", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
carrier_info_nr_r15_s& nr_r15()
{
assert_choice_type("nr-r15", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_info_nr_r15_s>();
}
const uint32_t& eutra() const
{
assert_choice_type("eutra", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint32_t>();
}
const carrier_freqs_geran_s& geran() const
{
assert_choice_type("geran", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freqs_geran_s>();
}
const uint16_t& utra_fdd() const
{
assert_choice_type("utra-FDD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint16_t>();
}
const uint16_t& utra_tdd() const
{
assert_choice_type("utra-TDD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<uint16_t>();
}
const carrier_freq_cdma2000_s& cdma2000_hrpd() const
{
assert_choice_type("cdma2000-HRPD", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_cdma2000_s>();
}
const carrier_freq_cdma2000_s& cdma2000_minus1x_rtt() const
{
assert_choice_type("cdma2000-1xRTT", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_cdma2000_s>();
}
const carrier_freq_list_utra_tdd_r10_l& utra_tdd_r10() const
{
assert_choice_type("utra-TDD-r10", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
const carrier_info_nr_r15_s& nr_r15() const
{
assert_choice_type("nr-r15", type_.to_string(), "RedirectedCarrierInfo");
return c.get<carrier_info_nr_r15_s>();
}
uint32_t& set_eutra()
{
set(types::eutra);
return c.get<uint32_t>();
}
carrier_freqs_geran_s& set_geran()
{
set(types::geran);
return c.get<carrier_freqs_geran_s>();
}
uint16_t& set_utra_fdd()
{
set(types::utra_fdd);
return c.get<uint16_t>();
}
uint16_t& set_utra_tdd()
{
set(types::utra_tdd);
return c.get<uint16_t>();
}
carrier_freq_cdma2000_s& set_cdma2000_hrpd()
{
set(types::cdma2000_hrpd);
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_cdma2000_s& set_cdma2000_minus1x_rtt()
{
set(types::cdma2000_minus1x_rtt);
return c.get<carrier_freq_cdma2000_s>();
}
carrier_freq_list_utra_tdd_r10_l& set_utra_tdd_r10()
{
set(types::utra_tdd_r10);
return c.get<carrier_freq_list_utra_tdd_r10_l>();
}
carrier_info_nr_r15_s& set_nr_r15()
{
set(types::nr_r15);
return c.get<carrier_info_nr_r15_s>();
}
private:
types type_;
choice_buffer_t<carrier_freq_cdma2000_s,
carrier_freq_list_utra_tdd_r10_l,
carrier_freqs_geran_s,
carrier_info_nr_r15_s>
c;
void destroy_();
};
// ReleaseCause ::= ENUMERATED
struct release_cause_opts {
enum options { load_balancing_ta_urequired, other, cs_fallback_high_prio_v1020, rrc_suspend_v1320, nulltype } value;
std::string to_string() const;
};
typedef enumerated<release_cause_opts> release_cause_e;
// SecurityConfigHO ::= SEQUENCE
struct security_cfg_ho_s {
struct ho_type_c_ {
struct intra_lte_s_ {
bool security_algorithm_cfg_present = false;
security_algorithm_cfg_s security_algorithm_cfg;
bool key_change_ind = false;
uint8_t next_hop_chaining_count = 0;
};
struct inter_rat_s_ {
security_algorithm_cfg_s security_algorithm_cfg;
fixed_octstring<6> nas_security_param_to_eutra;
};
struct types_opts {
enum options { intra_lte, inter_rat, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ho_type_c_() = default;
ho_type_c_(const ho_type_c_& other);
ho_type_c_& operator=(const ho_type_c_& other);
~ho_type_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
intra_lte_s_& intra_lte()
{
assert_choice_type("intraLTE", type_.to_string(), "handoverType");
return c.get<intra_lte_s_>();
}
inter_rat_s_& inter_rat()
{
assert_choice_type("interRAT", type_.to_string(), "handoverType");
return c.get<inter_rat_s_>();
}
const intra_lte_s_& intra_lte() const
{
assert_choice_type("intraLTE", type_.to_string(), "handoverType");
return c.get<intra_lte_s_>();
}
const inter_rat_s_& inter_rat() const
{
assert_choice_type("interRAT", type_.to_string(), "handoverType");
return c.get<inter_rat_s_>();
}
intra_lte_s_& set_intra_lte()
{
set(types::intra_lte);
return c.get<intra_lte_s_>();
}
inter_rat_s_& set_inter_rat()
{
set(types::inter_rat);
return c.get<inter_rat_s_>();
}
private:
types type_;
choice_buffer_t<inter_rat_s_, intra_lte_s_> c;
void destroy_();
};
// member variables
bool ext = false;
ho_type_c_ ho_type;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityConfigSMC ::= SEQUENCE
struct security_cfg_smc_s {
bool ext = false;
security_algorithm_cfg_s security_algorithm_cfg;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeCommand-v8a0-IEs ::= SEQUENCE
struct security_mode_cmd_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TraceReference-r10 ::= SEQUENCE
struct trace_ref_r10_s {
plmn_id_s plmn_id_r10;
fixed_octstring<3> trace_id_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-CapabilityRequest ::= SEQUENCE (SIZE (1..8)) OF RAT-Type
using ue_cap_request_l = bounded_array<rat_type_e, 8>;
// UECapabilityEnquiry-v8a0-IEs ::= SEQUENCE
struct ue_cap_enquiry_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_cap_enquiry_v1180_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-v930-IEs ::= SEQUENCE
struct ue_info_request_v930_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_info_request_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFBParametersResponseCDMA2000-r8-IEs ::= SEQUENCE
struct csfb_params_resp_cdma2000_r8_ies_s {
bool non_crit_ext_present = false;
fixed_bitstring<32> rand;
dyn_octstring mob_params;
csfb_params_resp_cdma2000_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheck-r8-IEs ::= SEQUENCE
struct counter_check_r8_ies_s {
bool non_crit_ext_present = false;
drb_count_msb_info_list_l drb_count_msb_info_list;
counter_check_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DLInformationTransfer-r15-IEs ::= SEQUENCE
struct dl_info_transfer_r15_ies_s {
struct ded_info_type_r15_c_ {
struct types_opts {
enum options { ded_info_nas_r15, ded_info_cdma2000_minus1_xrtt_r15, ded_info_cdma2000_hrpd_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ded_info_type_r15_c_() = default;
ded_info_type_r15_c_(const ded_info_type_r15_c_& other);
ded_info_type_r15_c_& operator=(const ded_info_type_r15_c_& other);
~ded_info_type_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dyn_octstring& ded_info_nas_r15()
{
assert_choice_type("dedicatedInfoNAS-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_minus1_xrtt_r15()
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_hrpd_r15()
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_nas_r15() const
{
assert_choice_type("dedicatedInfoNAS-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_minus1_xrtt_r15() const
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_hrpd_r15() const
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD-r15", type_.to_string(), "dedicatedInfoType-r15");
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_nas_r15()
{
set(types::ded_info_nas_r15);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_minus1_xrtt_r15()
{
set(types::ded_info_cdma2000_minus1_xrtt_r15);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_hrpd_r15()
{
set(types::ded_info_cdma2000_hrpd_r15);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring> c;
void destroy_();
};
// member variables
bool ded_info_type_r15_present = false;
bool time_ref_info_r15_present = false;
bool non_crit_ext_present = false;
ded_info_type_r15_c_ ded_info_type_r15;
time_ref_info_r15_s time_ref_info_r15;
dl_info_transfer_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DLInformationTransfer-r8-IEs ::= SEQUENCE
struct dl_info_transfer_r8_ies_s {
struct ded_info_type_c_ {
struct types_opts {
enum options { ded_info_nas, ded_info_cdma2000_minus1_xrtt, ded_info_cdma2000_hrpd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ded_info_type_c_() = default;
ded_info_type_c_(const ded_info_type_c_& other);
ded_info_type_c_& operator=(const ded_info_type_c_& other);
~ded_info_type_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dyn_octstring& ded_info_nas()
{
assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_minus1_xrtt()
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_hrpd()
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_nas() const
{
assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_minus1_xrtt() const
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_hrpd() const
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_nas()
{
set(types::ded_info_nas);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_minus1_xrtt()
{
set(types::ded_info_cdma2000_minus1_xrtt);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_hrpd()
{
set(types::ded_info_cdma2000_hrpd);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring> c;
void destroy_();
};
// member variables
bool non_crit_ext_present = false;
ded_info_type_c_ ded_info_type;
dl_info_transfer_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverFromEUTRAPreparationRequest-r8-IEs ::= SEQUENCE
struct ho_from_eutra_prep_request_r8_ies_s {
bool rand_present = false;
bool mob_params_present = false;
bool non_crit_ext_present = false;
cdma2000_type_e cdma2000_type;
fixed_bitstring<32> rand;
dyn_octstring mob_params;
ho_from_eutra_prep_request_v890_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-r10-IEs ::= SEQUENCE
struct logged_meas_cfg_r10_ies_s {
bool area_cfg_r10_present = false;
bool non_crit_ext_present = false;
trace_ref_r10_s trace_ref_r10;
fixed_octstring<2> trace_recording_session_ref_r10;
fixed_octstring<1> tce_id_r10;
fixed_bitstring<48> absolute_time_info_r10;
area_cfg_r10_c area_cfg_r10;
logging_dur_r10_e logging_dur_r10;
logging_interv_r10_e logging_interv_r10;
logged_meas_cfg_v1080_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-r8-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_r8_ies_s {
struct purpose_c_ {
struct types_opts {
enum options { ho, cell_change_order, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
purpose_c_() = default;
purpose_c_(const purpose_c_& other);
purpose_c_& operator=(const purpose_c_& other);
~purpose_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_s& ho()
{
assert_choice_type("handover", type_.to_string(), "purpose");
return c.get<ho_s>();
}
cell_change_order_s& cell_change_order()
{
assert_choice_type("cellChangeOrder", type_.to_string(), "purpose");
return c.get<cell_change_order_s>();
}
const ho_s& ho() const
{
assert_choice_type("handover", type_.to_string(), "purpose");
return c.get<ho_s>();
}
const cell_change_order_s& cell_change_order() const
{
assert_choice_type("cellChangeOrder", type_.to_string(), "purpose");
return c.get<cell_change_order_s>();
}
ho_s& set_ho()
{
set(types::ho);
return c.get<ho_s>();
}
cell_change_order_s& set_cell_change_order()
{
set(types::cell_change_order);
return c.get<cell_change_order_s>();
}
private:
types type_;
choice_buffer_t<cell_change_order_s, ho_s> c;
void destroy_();
};
// member variables
bool non_crit_ext_present = false;
bool cs_fallback_ind = false;
purpose_c_ purpose;
mob_from_eutra_cmd_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand-r9-IEs ::= SEQUENCE
struct mob_from_eutra_cmd_r9_ies_s {
struct purpose_c_ {
struct types_opts {
enum options { ho, cell_change_order, e_csfb_r9, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
purpose_c_() = default;
purpose_c_(const purpose_c_& other);
purpose_c_& operator=(const purpose_c_& other);
~purpose_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_s& ho()
{
assert_choice_type("handover", type_.to_string(), "purpose");
return c.get<ho_s>();
}
cell_change_order_s& cell_change_order()
{
assert_choice_type("cellChangeOrder", type_.to_string(), "purpose");
return c.get<cell_change_order_s>();
}
e_csfb_r9_s& e_csfb_r9()
{
assert_choice_type("e-CSFB-r9", type_.to_string(), "purpose");
return c.get<e_csfb_r9_s>();
}
const ho_s& ho() const
{
assert_choice_type("handover", type_.to_string(), "purpose");
return c.get<ho_s>();
}
const cell_change_order_s& cell_change_order() const
{
assert_choice_type("cellChangeOrder", type_.to_string(), "purpose");
return c.get<cell_change_order_s>();
}
const e_csfb_r9_s& e_csfb_r9() const
{
assert_choice_type("e-CSFB-r9", type_.to_string(), "purpose");
return c.get<e_csfb_r9_s>();
}
ho_s& set_ho()
{
set(types::ho);
return c.get<ho_s>();
}
cell_change_order_s& set_cell_change_order()
{
set(types::cell_change_order);
return c.get<cell_change_order_s>();
}
e_csfb_r9_s& set_e_csfb_r9()
{
set(types::e_csfb_r9);
return c.get<e_csfb_r9_s>();
}
private:
types type_;
choice_buffer_t<cell_change_order_s, e_csfb_r9_s, ho_s> c;
void destroy_();
};
// member variables
bool non_crit_ext_present = false;
bool cs_fallback_ind = false;
purpose_c_ purpose;
mob_from_eutra_cmd_v930_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RNReconfiguration-r10-IEs ::= SEQUENCE
struct rn_recfg_r10_ies_s {
bool rn_sys_info_r10_present = false;
bool rn_sf_cfg_r10_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
rn_sys_info_r10_s rn_sys_info_r10;
rn_sf_cfg_r10_s rn_sf_cfg_r10;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration-r8-IEs ::= SEQUENCE
struct rrc_conn_recfg_r8_ies_s {
using ded_info_nas_list_l_ = bounded_array<dyn_octstring, 11>;
// member variables
bool meas_cfg_present = false;
bool mob_ctrl_info_present = false;
bool ded_info_nas_list_present = false;
bool rr_cfg_ded_present = false;
bool security_cfg_ho_present = false;
bool non_crit_ext_present = false;
meas_cfg_s meas_cfg;
mob_ctrl_info_s mob_ctrl_info;
ded_info_nas_list_l_ ded_info_nas_list;
rr_cfg_ded_s rr_cfg_ded;
security_cfg_ho_s security_cfg_ho;
rrc_conn_recfg_v890_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease-r8-IEs ::= SEQUENCE
struct rrc_conn_release_r8_ies_s {
bool redirected_carrier_info_present = false;
bool idle_mode_mob_ctrl_info_present = false;
bool non_crit_ext_present = false;
release_cause_e release_cause;
redirected_carrier_info_c redirected_carrier_info;
idle_mode_mob_ctrl_info_s idle_mode_mob_ctrl_info;
rrc_conn_release_v890_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResume-r13-IEs ::= SEQUENCE
struct rrc_conn_resume_r13_ies_s {
bool rr_cfg_ded_r13_present = false;
bool meas_cfg_r13_present = false;
bool ant_info_ded_pcell_r13_present = false;
bool drb_continue_rohc_r13_present = false;
bool late_non_crit_ext_present = false;
bool rrc_conn_resume_v1430_ies_present = false;
rr_cfg_ded_s rr_cfg_ded_r13;
uint8_t next_hop_chaining_count_r13 = 0;
meas_cfg_s meas_cfg_r13;
ant_info_ded_v10i0_s ant_info_ded_pcell_r13;
dyn_octstring late_non_crit_ext;
rrc_conn_resume_v1430_ies_s rrc_conn_resume_v1430_ies;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeCommand-r8-IEs ::= SEQUENCE
struct security_mode_cmd_r8_ies_s {
bool non_crit_ext_present = false;
security_cfg_smc_s security_cfg_smc;
security_mode_cmd_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry-r8-IEs ::= SEQUENCE
struct ue_cap_enquiry_r8_ies_s {
bool non_crit_ext_present = false;
ue_cap_request_l ue_cap_request;
ue_cap_enquiry_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-r9-IEs ::= SEQUENCE
struct ue_info_request_r9_ies_s {
bool non_crit_ext_present = false;
bool rach_report_req_r9 = false;
bool rlf_report_req_r9 = false;
ue_info_request_v930_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFBParametersResponseCDMA2000 ::= SEQUENCE
struct csfb_params_resp_cdma2000_s {
struct crit_exts_c_ {
struct types_opts {
enum options { csfb_params_resp_cdma2000_r8, crit_exts_future, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8()
{
assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions");
return c.get<csfb_params_resp_cdma2000_r8_ies_s>();
}
const csfb_params_resp_cdma2000_r8_ies_s& csfb_params_resp_cdma2000_r8() const
{
assert_choice_type("csfbParametersResponseCDMA2000-r8", type_.to_string(), "criticalExtensions");
return c.get<csfb_params_resp_cdma2000_r8_ies_s>();
}
csfb_params_resp_cdma2000_r8_ies_s& set_csfb_params_resp_cdma2000_r8()
{
set(types::csfb_params_resp_cdma2000_r8);
return c.get<csfb_params_resp_cdma2000_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<csfb_params_resp_cdma2000_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheck ::= SEQUENCE
struct counter_check_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { counter_check_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
counter_check_r8_ies_s& counter_check_r8()
{
assert_choice_type("counterCheck-r8", type_.to_string(), "c1");
return c;
}
const counter_check_r8_ies_s& counter_check_r8() const
{
assert_choice_type("counterCheck-r8", type_.to_string(), "c1");
return c;
}
counter_check_r8_ies_s& set_counter_check_r8()
{
set(types::counter_check_r8);
return c;
}
private:
types type_;
counter_check_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DLInformationTransfer ::= SEQUENCE
struct dl_info_transfer_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { dl_info_transfer_r8, dl_info_transfer_r15, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dl_info_transfer_r8_ies_s& dl_info_transfer_r8()
{
assert_choice_type("dlInformationTransfer-r8", type_.to_string(), "c1");
return c.get<dl_info_transfer_r8_ies_s>();
}
dl_info_transfer_r15_ies_s& dl_info_transfer_r15()
{
assert_choice_type("dlInformationTransfer-r15", type_.to_string(), "c1");
return c.get<dl_info_transfer_r15_ies_s>();
}
const dl_info_transfer_r8_ies_s& dl_info_transfer_r8() const
{
assert_choice_type("dlInformationTransfer-r8", type_.to_string(), "c1");
return c.get<dl_info_transfer_r8_ies_s>();
}
const dl_info_transfer_r15_ies_s& dl_info_transfer_r15() const
{
assert_choice_type("dlInformationTransfer-r15", type_.to_string(), "c1");
return c.get<dl_info_transfer_r15_ies_s>();
}
dl_info_transfer_r8_ies_s& set_dl_info_transfer_r8()
{
set(types::dl_info_transfer_r8);
return c.get<dl_info_transfer_r8_ies_s>();
}
dl_info_transfer_r15_ies_s& set_dl_info_transfer_r15()
{
set(types::dl_info_transfer_r15);
return c.get<dl_info_transfer_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<dl_info_transfer_r15_ies_s, dl_info_transfer_r8_ies_s> c;
void destroy_();
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverFromEUTRAPreparationRequest ::= SEQUENCE
struct ho_from_eutra_prep_request_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ho_from_eutra_prep_request_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_from_eutra_prep_request_r8_ies_s& ho_from_eutra_prep_request_r8()
{
assert_choice_type("handoverFromEUTRAPreparationRequest-r8", type_.to_string(), "c1");
return c;
}
const ho_from_eutra_prep_request_r8_ies_s& ho_from_eutra_prep_request_r8() const
{
assert_choice_type("handoverFromEUTRAPreparationRequest-r8", type_.to_string(), "c1");
return c;
}
ho_from_eutra_prep_request_r8_ies_s& set_ho_from_eutra_prep_request_r8()
{
set(types::ho_from_eutra_prep_request_r8);
return c;
}
private:
types type_;
ho_from_eutra_prep_request_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LoggedMeasurementConfiguration-r10 ::= SEQUENCE
struct logged_meas_cfg_r10_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { logged_meas_cfg_r10, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
logged_meas_cfg_r10_ies_s& logged_meas_cfg_r10()
{
assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1");
return c;
}
const logged_meas_cfg_r10_ies_s& logged_meas_cfg_r10() const
{
assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1");
return c;
}
logged_meas_cfg_r10_ies_s& set_logged_meas_cfg_r10()
{
set(types::logged_meas_cfg_r10);
return c;
}
private:
types type_;
logged_meas_cfg_r10_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityFromEUTRACommand ::= SEQUENCE
struct mob_from_eutra_cmd_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { mob_from_eutra_cmd_r8, mob_from_eutra_cmd_r9, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mob_from_eutra_cmd_r8_ies_s& mob_from_eutra_cmd_r8()
{
assert_choice_type("mobilityFromEUTRACommand-r8", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_r8_ies_s>();
}
mob_from_eutra_cmd_r9_ies_s& mob_from_eutra_cmd_r9()
{
assert_choice_type("mobilityFromEUTRACommand-r9", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_r9_ies_s>();
}
const mob_from_eutra_cmd_r8_ies_s& mob_from_eutra_cmd_r8() const
{
assert_choice_type("mobilityFromEUTRACommand-r8", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_r8_ies_s>();
}
const mob_from_eutra_cmd_r9_ies_s& mob_from_eutra_cmd_r9() const
{
assert_choice_type("mobilityFromEUTRACommand-r9", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_r9_ies_s>();
}
mob_from_eutra_cmd_r8_ies_s& set_mob_from_eutra_cmd_r8()
{
set(types::mob_from_eutra_cmd_r8);
return c.get<mob_from_eutra_cmd_r8_ies_s>();
}
mob_from_eutra_cmd_r9_ies_s& set_mob_from_eutra_cmd_r9()
{
set(types::mob_from_eutra_cmd_r9);
return c.get<mob_from_eutra_cmd_r9_ies_s>();
}
private:
types type_;
choice_buffer_t<mob_from_eutra_cmd_r8_ies_s, mob_from_eutra_cmd_r9_ies_s> c;
void destroy_();
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RNReconfiguration-r10 ::= SEQUENCE
struct rn_recfg_r10_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rn_recfg_r10, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rn_recfg_r10_ies_s& rn_recfg_r10()
{
assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1");
return c;
}
const rn_recfg_r10_ies_s& rn_recfg_r10() const
{
assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1");
return c;
}
rn_recfg_r10_ies_s& set_rn_recfg_r10()
{
set(types::rn_recfg_r10);
return c;
}
private:
types type_;
rn_recfg_r10_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfiguration ::= SEQUENCE
struct rrc_conn_recfg_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_recfg_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_recfg_r8_ies_s& rrc_conn_recfg_r8()
{
assert_choice_type("rrcConnectionReconfiguration-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_recfg_r8_ies_s& rrc_conn_recfg_r8() const
{
assert_choice_type("rrcConnectionReconfiguration-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_recfg_r8_ies_s& set_rrc_conn_recfg_r8()
{
set(types::rrc_conn_recfg_r8);
return c;
}
private:
types type_;
rrc_conn_recfg_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRelease ::= SEQUENCE
struct rrc_conn_release_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_release_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_release_r8_ies_s& rrc_conn_release_r8()
{
assert_choice_type("rrcConnectionRelease-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_release_r8_ies_s& rrc_conn_release_r8() const
{
assert_choice_type("rrcConnectionRelease-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_release_r8_ies_s& set_rrc_conn_release_r8()
{
set(types::rrc_conn_release_r8);
return c;
}
private:
types type_;
rrc_conn_release_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResume-r13 ::= SEQUENCE
struct rrc_conn_resume_r13_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_resume_r13, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_resume_r13_ies_s& rrc_conn_resume_r13()
{
assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1");
return c;
}
const rrc_conn_resume_r13_ies_s& rrc_conn_resume_r13() const
{
assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1");
return c;
}
rrc_conn_resume_r13_ies_s& set_rrc_conn_resume_r13()
{
set(types::rrc_conn_resume_r13);
return c;
}
private:
types type_;
rrc_conn_resume_r13_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeCommand ::= SEQUENCE
struct security_mode_cmd_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { security_mode_cmd_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
security_mode_cmd_r8_ies_s& security_mode_cmd_r8()
{
assert_choice_type("securityModeCommand-r8", type_.to_string(), "c1");
return c;
}
const security_mode_cmd_r8_ies_s& security_mode_cmd_r8() const
{
assert_choice_type("securityModeCommand-r8", type_.to_string(), "c1");
return c;
}
security_mode_cmd_r8_ies_s& set_security_mode_cmd_r8()
{
set(types::security_mode_cmd_r8);
return c;
}
private:
types type_;
security_mode_cmd_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityEnquiry ::= SEQUENCE
struct ue_cap_enquiry_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ue_cap_enquiry_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_cap_enquiry_r8_ies_s& ue_cap_enquiry_r8()
{
assert_choice_type("ueCapabilityEnquiry-r8", type_.to_string(), "c1");
return c;
}
const ue_cap_enquiry_r8_ies_s& ue_cap_enquiry_r8() const
{
assert_choice_type("ueCapabilityEnquiry-r8", type_.to_string(), "c1");
return c;
}
ue_cap_enquiry_r8_ies_s& set_ue_cap_enquiry_r8()
{
set(types::ue_cap_enquiry_r8);
return c;
}
private:
types type_;
ue_cap_enquiry_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationRequest-r9 ::= SEQUENCE
struct ue_info_request_r9_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ue_info_request_r9, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_info_request_r9_ies_s& ue_info_request_r9()
{
assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1");
return c;
}
const ue_info_request_r9_ies_s& ue_info_request_r9() const
{
assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1");
return c;
}
ue_info_request_r9_ies_s& set_ue_info_request_r9()
{
set(types::ue_info_request_r9);
return c;
}
private:
types type_;
ue_info_request_r9_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DL-DCCH-MessageType ::= CHOICE
struct dl_dcch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options {
csfb_params_resp_cdma2000,
dl_info_transfer,
ho_from_eutra_prep_request,
mob_from_eutra_cmd,
rrc_conn_recfg,
rrc_conn_release,
security_mode_cmd,
ue_cap_enquiry,
counter_check,
ue_info_request_r9,
logged_meas_cfg_r10,
rn_recfg_r10,
rrc_conn_resume_r13,
spare3,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csfb_params_resp_cdma2000_s& csfb_params_resp_cdma2000()
{
assert_choice_type("csfbParametersResponseCDMA2000", type_.to_string(), "c1");
return c.get<csfb_params_resp_cdma2000_s>();
}
dl_info_transfer_s& dl_info_transfer()
{
assert_choice_type("dlInformationTransfer", type_.to_string(), "c1");
return c.get<dl_info_transfer_s>();
}
ho_from_eutra_prep_request_s& ho_from_eutra_prep_request()
{
assert_choice_type("handoverFromEUTRAPreparationRequest", type_.to_string(), "c1");
return c.get<ho_from_eutra_prep_request_s>();
}
mob_from_eutra_cmd_s& mob_from_eutra_cmd()
{
assert_choice_type("mobilityFromEUTRACommand", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_s>();
}
rrc_conn_recfg_s& rrc_conn_recfg()
{
assert_choice_type("rrcConnectionReconfiguration", type_.to_string(), "c1");
return c.get<rrc_conn_recfg_s>();
}
rrc_conn_release_s& rrc_conn_release()
{
assert_choice_type("rrcConnectionRelease", type_.to_string(), "c1");
return c.get<rrc_conn_release_s>();
}
security_mode_cmd_s& security_mode_cmd()
{
assert_choice_type("securityModeCommand", type_.to_string(), "c1");
return c.get<security_mode_cmd_s>();
}
ue_cap_enquiry_s& ue_cap_enquiry()
{
assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1");
return c.get<ue_cap_enquiry_s>();
}
counter_check_s& counter_check()
{
assert_choice_type("counterCheck", type_.to_string(), "c1");
return c.get<counter_check_s>();
}
ue_info_request_r9_s& ue_info_request_r9()
{
assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1");
return c.get<ue_info_request_r9_s>();
}
logged_meas_cfg_r10_s& logged_meas_cfg_r10()
{
assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1");
return c.get<logged_meas_cfg_r10_s>();
}
rn_recfg_r10_s& rn_recfg_r10()
{
assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1");
return c.get<rn_recfg_r10_s>();
}
rrc_conn_resume_r13_s& rrc_conn_resume_r13()
{
assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1");
return c.get<rrc_conn_resume_r13_s>();
}
const csfb_params_resp_cdma2000_s& csfb_params_resp_cdma2000() const
{
assert_choice_type("csfbParametersResponseCDMA2000", type_.to_string(), "c1");
return c.get<csfb_params_resp_cdma2000_s>();
}
const dl_info_transfer_s& dl_info_transfer() const
{
assert_choice_type("dlInformationTransfer", type_.to_string(), "c1");
return c.get<dl_info_transfer_s>();
}
const ho_from_eutra_prep_request_s& ho_from_eutra_prep_request() const
{
assert_choice_type("handoverFromEUTRAPreparationRequest", type_.to_string(), "c1");
return c.get<ho_from_eutra_prep_request_s>();
}
const mob_from_eutra_cmd_s& mob_from_eutra_cmd() const
{
assert_choice_type("mobilityFromEUTRACommand", type_.to_string(), "c1");
return c.get<mob_from_eutra_cmd_s>();
}
const rrc_conn_recfg_s& rrc_conn_recfg() const
{
assert_choice_type("rrcConnectionReconfiguration", type_.to_string(), "c1");
return c.get<rrc_conn_recfg_s>();
}
const rrc_conn_release_s& rrc_conn_release() const
{
assert_choice_type("rrcConnectionRelease", type_.to_string(), "c1");
return c.get<rrc_conn_release_s>();
}
const security_mode_cmd_s& security_mode_cmd() const
{
assert_choice_type("securityModeCommand", type_.to_string(), "c1");
return c.get<security_mode_cmd_s>();
}
const ue_cap_enquiry_s& ue_cap_enquiry() const
{
assert_choice_type("ueCapabilityEnquiry", type_.to_string(), "c1");
return c.get<ue_cap_enquiry_s>();
}
const counter_check_s& counter_check() const
{
assert_choice_type("counterCheck", type_.to_string(), "c1");
return c.get<counter_check_s>();
}
const ue_info_request_r9_s& ue_info_request_r9() const
{
assert_choice_type("ueInformationRequest-r9", type_.to_string(), "c1");
return c.get<ue_info_request_r9_s>();
}
const logged_meas_cfg_r10_s& logged_meas_cfg_r10() const
{
assert_choice_type("loggedMeasurementConfiguration-r10", type_.to_string(), "c1");
return c.get<logged_meas_cfg_r10_s>();
}
const rn_recfg_r10_s& rn_recfg_r10() const
{
assert_choice_type("rnReconfiguration-r10", type_.to_string(), "c1");
return c.get<rn_recfg_r10_s>();
}
const rrc_conn_resume_r13_s& rrc_conn_resume_r13() const
{
assert_choice_type("rrcConnectionResume-r13", type_.to_string(), "c1");
return c.get<rrc_conn_resume_r13_s>();
}
csfb_params_resp_cdma2000_s& set_csfb_params_resp_cdma2000()
{
set(types::csfb_params_resp_cdma2000);
return c.get<csfb_params_resp_cdma2000_s>();
}
dl_info_transfer_s& set_dl_info_transfer()
{
set(types::dl_info_transfer);
return c.get<dl_info_transfer_s>();
}
ho_from_eutra_prep_request_s& set_ho_from_eutra_prep_request()
{
set(types::ho_from_eutra_prep_request);
return c.get<ho_from_eutra_prep_request_s>();
}
mob_from_eutra_cmd_s& set_mob_from_eutra_cmd()
{
set(types::mob_from_eutra_cmd);
return c.get<mob_from_eutra_cmd_s>();
}
rrc_conn_recfg_s& set_rrc_conn_recfg()
{
set(types::rrc_conn_recfg);
return c.get<rrc_conn_recfg_s>();
}
rrc_conn_release_s& set_rrc_conn_release()
{
set(types::rrc_conn_release);
return c.get<rrc_conn_release_s>();
}
security_mode_cmd_s& set_security_mode_cmd()
{
set(types::security_mode_cmd);
return c.get<security_mode_cmd_s>();
}
ue_cap_enquiry_s& set_ue_cap_enquiry()
{
set(types::ue_cap_enquiry);
return c.get<ue_cap_enquiry_s>();
}
counter_check_s& set_counter_check()
{
set(types::counter_check);
return c.get<counter_check_s>();
}
ue_info_request_r9_s& set_ue_info_request_r9()
{
set(types::ue_info_request_r9);
return c.get<ue_info_request_r9_s>();
}
logged_meas_cfg_r10_s& set_logged_meas_cfg_r10()
{
set(types::logged_meas_cfg_r10);
return c.get<logged_meas_cfg_r10_s>();
}
rn_recfg_r10_s& set_rn_recfg_r10()
{
set(types::rn_recfg_r10);
return c.get<rn_recfg_r10_s>();
}
rrc_conn_resume_r13_s& set_rrc_conn_resume_r13()
{
set(types::rrc_conn_resume_r13);
return c.get<rrc_conn_resume_r13_s>();
}
private:
types type_;
choice_buffer_t<counter_check_s,
csfb_params_resp_cdma2000_s,
dl_info_transfer_s,
ho_from_eutra_prep_request_s,
logged_meas_cfg_r10_s,
mob_from_eutra_cmd_s,
rn_recfg_r10_s,
rrc_conn_recfg_s,
rrc_conn_release_s,
rrc_conn_resume_r13_s,
security_mode_cmd_s,
ue_cap_enquiry_s,
ue_info_request_r9_s>
c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
dl_dcch_msg_type_c() = default;
dl_dcch_msg_type_c(const dl_dcch_msg_type_c& other);
dl_dcch_msg_type_c& operator=(const dl_dcch_msg_type_c& other);
~dl_dcch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "DL-DCCH-MessageType");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// DL-DCCH-Message ::= SEQUENCE
struct dl_dcch_msg_s {
dl_dcch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TMGI-r9 ::= SEQUENCE
struct tmgi_r9_s {
struct plmn_id_r9_c_ {
struct types_opts {
enum options { plmn_idx_r9, explicit_value_r9, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
plmn_id_r9_c_() = default;
plmn_id_r9_c_(const plmn_id_r9_c_& other);
plmn_id_r9_c_& operator=(const plmn_id_r9_c_& other);
~plmn_id_r9_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& plmn_idx_r9()
{
assert_choice_type("plmn-Index-r9", type_.to_string(), "plmn-Id-r9");
return c.get<uint8_t>();
}
plmn_id_s& explicit_value_r9()
{
assert_choice_type("explicitValue-r9", type_.to_string(), "plmn-Id-r9");
return c.get<plmn_id_s>();
}
const uint8_t& plmn_idx_r9() const
{
assert_choice_type("plmn-Index-r9", type_.to_string(), "plmn-Id-r9");
return c.get<uint8_t>();
}
const plmn_id_s& explicit_value_r9() const
{
assert_choice_type("explicitValue-r9", type_.to_string(), "plmn-Id-r9");
return c.get<plmn_id_s>();
}
uint8_t& set_plmn_idx_r9()
{
set(types::plmn_idx_r9);
return c.get<uint8_t>();
}
plmn_id_s& set_explicit_value_r9()
{
set(types::explicit_value_r9);
return c.get<plmn_id_s>();
}
private:
types type_;
choice_buffer_t<plmn_id_s> c;
void destroy_();
};
// member variables
plmn_id_r9_c_ plmn_id_r9;
fixed_octstring<3> service_id_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-SessionInfo-r9 ::= SEQUENCE
struct mbms_session_info_r9_s {
bool ext = false;
bool session_id_r9_present = false;
tmgi_r9_s tmgi_r9;
fixed_octstring<1> session_id_r9;
uint8_t lc_ch_id_r9 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-SessionInfoList-r9 ::= SEQUENCE (SIZE (0..29)) OF MBMS-SessionInfo-r9
using mbms_session_info_list_r9_l = dyn_array<mbms_session_info_r9_s>;
// PMCH-Config-r12 ::= SEQUENCE
struct pmch_cfg_r12_s {
struct data_mcs_r12_c_ {
struct types_opts {
enum options { normal_r12, higer_order_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
data_mcs_r12_c_() = default;
data_mcs_r12_c_(const data_mcs_r12_c_& other);
data_mcs_r12_c_& operator=(const data_mcs_r12_c_& other);
~data_mcs_r12_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& normal_r12()
{
assert_choice_type("normal-r12", type_.to_string(), "dataMCS-r12");
return c.get<uint8_t>();
}
uint8_t& higer_order_r12()
{
assert_choice_type("higerOrder-r12", type_.to_string(), "dataMCS-r12");
return c.get<uint8_t>();
}
const uint8_t& normal_r12() const
{
assert_choice_type("normal-r12", type_.to_string(), "dataMCS-r12");
return c.get<uint8_t>();
}
const uint8_t& higer_order_r12() const
{
assert_choice_type("higerOrder-r12", type_.to_string(), "dataMCS-r12");
return c.get<uint8_t>();
}
uint8_t& set_normal_r12()
{
set(types::normal_r12);
return c.get<uint8_t>();
}
uint8_t& set_higer_order_r12()
{
set(types::higer_order_r12);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct mch_sched_period_r12_opts {
enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mch_sched_period_r12_opts> mch_sched_period_r12_e_;
struct mch_sched_period_v1430_opts {
enum options { rf1, rf2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mch_sched_period_v1430_opts> mch_sched_period_v1430_e_;
// member variables
bool ext = false;
uint16_t sf_alloc_end_r12 = 0;
data_mcs_r12_c_ data_mcs_r12;
mch_sched_period_r12_e_ mch_sched_period_r12;
// ...
// group 0
bool mch_sched_period_v1430_present = false;
mch_sched_period_v1430_e_ mch_sched_period_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CommonSF-AllocPatternList-r14 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-SubframeConfig-v1430
using common_sf_alloc_pattern_list_r14_l = dyn_array<mbsfn_sf_cfg_v1430_s>;
// PMCH-InfoExt-r12 ::= SEQUENCE
struct pmch_info_ext_r12_s {
bool ext = false;
pmch_cfg_r12_s pmch_cfg_r12;
mbms_session_info_list_r9_l mbms_session_info_list_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFNAreaConfiguration-v1430-IEs ::= SEQUENCE
struct mbsfn_area_cfg_v1430_ies_s {
bool non_crit_ext_present = false;
common_sf_alloc_pattern_list_r14_l common_sf_alloc_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PMCH-Config-r9 ::= SEQUENCE
struct pmch_cfg_r9_s {
struct mch_sched_period_r9_opts {
enum options { rf8, rf16, rf32, rf64, rf128, rf256, rf512, rf1024, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mch_sched_period_r9_opts> mch_sched_period_r9_e_;
// member variables
bool ext = false;
uint16_t sf_alloc_end_r9 = 0;
uint8_t data_mcs_r9 = 0;
mch_sched_period_r9_e_ mch_sched_period_r9;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PMCH-InfoListExt-r12 ::= SEQUENCE (SIZE (0..15)) OF PMCH-InfoExt-r12
using pmch_info_list_ext_r12_l = dyn_array<pmch_info_ext_r12_s>;
// CountingRequestInfo-r10 ::= SEQUENCE
struct count_request_info_r10_s {
bool ext = false;
tmgi_r9_s tmgi_r10;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFNAreaConfiguration-v1250-IEs ::= SEQUENCE
struct mbsfn_area_cfg_v1250_ies_s {
bool pmch_info_list_ext_r12_present = false;
bool non_crit_ext_present = false;
pmch_info_list_ext_r12_l pmch_info_list_ext_r12;
mbsfn_area_cfg_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PMCH-Info-r9 ::= SEQUENCE
struct pmch_info_r9_s {
bool ext = false;
pmch_cfg_r9_s pmch_cfg_r9;
mbms_session_info_list_r9_l mbms_session_info_list_r9;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CommonSF-AllocPatternList-r9 ::= SEQUENCE (SIZE (1..8)) OF MBSFN-SubframeConfig
using common_sf_alloc_pattern_list_r9_l = dyn_array<mbsfn_sf_cfg_s>;
// CountingRequestList-r10 ::= SEQUENCE (SIZE (1..16)) OF CountingRequestInfo-r10
using count_request_list_r10_l = dyn_array<count_request_info_r10_s>;
// MBSFNAreaConfiguration-v930-IEs ::= SEQUENCE
struct mbsfn_area_cfg_v930_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
mbsfn_area_cfg_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PMCH-InfoList-r9 ::= SEQUENCE (SIZE (0..15)) OF PMCH-Info-r9
using pmch_info_list_r9_l = dyn_array<pmch_info_r9_s>;
// MBMSCountingRequest-r10 ::= SEQUENCE
struct mbms_count_request_r10_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
count_request_list_r10_l count_request_list_r10;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBSFNAreaConfiguration-r9 ::= SEQUENCE
struct mbsfn_area_cfg_r9_s {
struct common_sf_alloc_period_r9_opts {
enum options { rf4, rf8, rf16, rf32, rf64, rf128, rf256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<common_sf_alloc_period_r9_opts> common_sf_alloc_period_r9_e_;
// member variables
bool non_crit_ext_present = false;
common_sf_alloc_pattern_list_r9_l common_sf_alloc_r9;
common_sf_alloc_period_r9_e_ common_sf_alloc_period_r9;
pmch_info_list_r9_l pmch_info_list_r9;
mbsfn_area_cfg_v930_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MCCH-MessageType ::= CHOICE
struct mcch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options { mbsfn_area_cfg_r9, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::mbsfn_area_cfg_r9; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mbsfn_area_cfg_r9_s& mbsfn_area_cfg_r9() { return c; }
const mbsfn_area_cfg_r9_s& mbsfn_area_cfg_r9() const { return c; }
private:
mbsfn_area_cfg_r9_s c;
};
struct later_c_ {
struct c2_c_ {
struct types_opts {
enum options { mbms_count_request_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::mbms_count_request_r10; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mbms_count_request_r10_s& mbms_count_request_r10() { return c; }
const mbms_count_request_r10_s& mbms_count_request_r10() const { return c; }
private:
mbms_count_request_r10_s c;
};
struct types_opts {
enum options { c2, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
later_c_() = default;
later_c_(const later_c_& other);
later_c_& operator=(const later_c_& other);
~later_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c2_c_& c2()
{
assert_choice_type("c2", type_.to_string(), "later");
return c.get<c2_c_>();
}
const c2_c_& c2() const
{
assert_choice_type("c2", type_.to_string(), "later");
return c.get<c2_c_>();
}
c2_c_& set_c2()
{
set(types::c2);
return c.get<c2_c_>();
}
private:
types type_;
choice_buffer_t<c2_c_> c;
void destroy_();
};
struct types_opts {
enum options { c1, later, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
mcch_msg_type_c() = default;
mcch_msg_type_c(const mcch_msg_type_c& other);
mcch_msg_type_c& operator=(const mcch_msg_type_c& other);
~mcch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "MCCH-MessageType");
return c.get<c1_c_>();
}
later_c_& later()
{
assert_choice_type("later", type_.to_string(), "MCCH-MessageType");
return c.get<later_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "MCCH-MessageType");
return c.get<c1_c_>();
}
const later_c_& later() const
{
assert_choice_type("later", type_.to_string(), "MCCH-MessageType");
return c.get<later_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
later_c_& set_later()
{
set(types::later);
return c.get<later_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_, later_c_> c;
void destroy_();
};
// MCCH-Message ::= SEQUENCE
struct mcch_msg_s {
mcch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Paging-v1530-IEs ::= SEQUENCE
struct paging_v1530_ies_s {
bool access_type_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IMSI ::= SEQUENCE (SIZE (6..21)) OF INTEGER (0..9)
using imsi_l = bounded_array<uint8_t, 21>;
// Paging-v1310-IEs ::= SEQUENCE
struct paging_v1310_ies_s {
bool redist_ind_r13_present = false;
bool sys_info_mod_e_drx_r13_present = false;
bool non_crit_ext_present = false;
paging_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// S-TMSI ::= SEQUENCE
struct s_tmsi_s {
fixed_bitstring<8> mmec;
fixed_bitstring<32> m_tmsi;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Paging-v1130-IEs ::= SEQUENCE
struct paging_v1130_ies_s {
bool eab_param_mod_r11_present = false;
bool non_crit_ext_present = false;
paging_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PagingUE-Identity ::= CHOICE
struct paging_ue_id_c {
struct types_opts {
enum options { s_tmsi, imsi, /*...*/ ng_minus5_g_s_tmsi_r15, i_rnti_r15, nulltype } value;
typedef int8_t number_type;
std::string to_string() const;
int8_t to_number() const;
};
typedef enumerated<types_opts, true, 2> types;
// choice methods
paging_ue_id_c() = default;
paging_ue_id_c(const paging_ue_id_c& other);
paging_ue_id_c& operator=(const paging_ue_id_c& other);
~paging_ue_id_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
s_tmsi_s& s_tmsi()
{
assert_choice_type("s-TMSI", type_.to_string(), "PagingUE-Identity");
return c.get<s_tmsi_s>();
}
imsi_l& imsi()
{
assert_choice_type("imsi", type_.to_string(), "PagingUE-Identity");
return c.get<imsi_l>();
}
fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15()
{
assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "PagingUE-Identity");
return c.get<fixed_bitstring<48> >();
}
fixed_bitstring<40>& i_rnti_r15()
{
assert_choice_type("i-RNTI-r15", type_.to_string(), "PagingUE-Identity");
return c.get<fixed_bitstring<40> >();
}
const s_tmsi_s& s_tmsi() const
{
assert_choice_type("s-TMSI", type_.to_string(), "PagingUE-Identity");
return c.get<s_tmsi_s>();
}
const imsi_l& imsi() const
{
assert_choice_type("imsi", type_.to_string(), "PagingUE-Identity");
return c.get<imsi_l>();
}
const fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() const
{
assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "PagingUE-Identity");
return c.get<fixed_bitstring<48> >();
}
const fixed_bitstring<40>& i_rnti_r15() const
{
assert_choice_type("i-RNTI-r15", type_.to_string(), "PagingUE-Identity");
return c.get<fixed_bitstring<40> >();
}
s_tmsi_s& set_s_tmsi()
{
set(types::s_tmsi);
return c.get<s_tmsi_s>();
}
imsi_l& set_imsi()
{
set(types::imsi);
return c.get<imsi_l>();
}
fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15()
{
set(types::ng_minus5_g_s_tmsi_r15);
return c.get<fixed_bitstring<48> >();
}
fixed_bitstring<40>& set_i_rnti_r15()
{
set(types::i_rnti_r15);
return c.get<fixed_bitstring<40> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<48>, imsi_l, s_tmsi_s> c;
void destroy_();
};
// Paging-v920-IEs ::= SEQUENCE
struct paging_v920_ies_s {
bool cmas_ind_r9_present = false;
bool non_crit_ext_present = false;
paging_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PagingRecord ::= SEQUENCE
struct paging_record_s {
struct cn_domain_opts {
enum options { ps, cs, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cn_domain_opts> cn_domain_e_;
// member variables
bool ext = false;
paging_ue_id_c ue_id;
cn_domain_e_ cn_domain;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Paging-v890-IEs ::= SEQUENCE
struct paging_v890_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
paging_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PagingRecordList ::= SEQUENCE (SIZE (1..16)) OF PagingRecord
using paging_record_list_l = dyn_array<paging_record_s>;
// Paging ::= SEQUENCE
struct paging_s {
bool paging_record_list_present = false;
bool sys_info_mod_present = false;
bool etws_ind_present = false;
bool non_crit_ext_present = false;
paging_record_list_l paging_record_list;
paging_v890_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PCCH-MessageType ::= CHOICE
struct pcch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options { paging, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::paging; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
paging_s& paging() { return c; }
const paging_s& paging() const { return c; }
private:
paging_s c;
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
pcch_msg_type_c() = default;
pcch_msg_type_c(const pcch_msg_type_c& other);
pcch_msg_type_c& operator=(const pcch_msg_type_c& other);
~pcch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "PCCH-MessageType");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "PCCH-MessageType");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// PCCH-Message ::= SEQUENCE
struct pcch_msg_s {
pcch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSSessionInfo-r13 ::= SEQUENCE
struct mbms_session_info_r13_s {
bool session_id_r13_present = false;
tmgi_r9_s tmgi_r13;
fixed_octstring<1> session_id_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MTCH-SchedulingInfo-BR-r14 ::= SEQUENCE
struct sc_mtch_sched_info_br_r14_s {
struct on_dur_timer_scptm_r14_opts {
enum options { psf300, psf400, psf500, psf600, psf800, psf1000, psf1200, psf1600, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<on_dur_timer_scptm_r14_opts> on_dur_timer_scptm_r14_e_;
struct drx_inactivity_timer_scptm_r14_opts {
enum options {
psf0,
psf1,
psf2,
psf4,
psf8,
psf16,
psf32,
psf64,
psf128,
psf256,
ps512,
psf1024,
psf2048,
psf4096,
psf8192,
psf16384,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_inactivity_timer_scptm_r14_opts> drx_inactivity_timer_scptm_r14_e_;
struct sched_period_start_offset_scptm_r14_c_ {
struct types_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf256,
sf320,
sf512,
sf640,
sf1024,
sf2048,
sf4096,
sf8192,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sched_period_start_offset_scptm_r14_c_() = default;
sched_period_start_offset_scptm_r14_c_(const sched_period_start_offset_scptm_r14_c_& other);
sched_period_start_offset_scptm_r14_c_& operator=(const sched_period_start_offset_scptm_r14_c_& other);
~sched_period_start_offset_scptm_r14_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf10()
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf20()
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf4096()
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint16_t& sf8192()
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf4096() const
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
const uint16_t& sf8192() const
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r14");
return c.get<uint16_t>();
}
uint8_t& set_sf10()
{
set(types::sf10);
return c.get<uint8_t>();
}
uint8_t& set_sf20()
{
set(types::sf20);
return c.get<uint8_t>();
}
uint8_t& set_sf32()
{
set(types::sf32);
return c.get<uint8_t>();
}
uint8_t& set_sf40()
{
set(types::sf40);
return c.get<uint8_t>();
}
uint8_t& set_sf64()
{
set(types::sf64);
return c.get<uint8_t>();
}
uint8_t& set_sf80()
{
set(types::sf80);
return c.get<uint8_t>();
}
uint8_t& set_sf128()
{
set(types::sf128);
return c.get<uint8_t>();
}
uint8_t& set_sf160()
{
set(types::sf160);
return c.get<uint8_t>();
}
uint16_t& set_sf256()
{
set(types::sf256);
return c.get<uint16_t>();
}
uint16_t& set_sf320()
{
set(types::sf320);
return c.get<uint16_t>();
}
uint16_t& set_sf512()
{
set(types::sf512);
return c.get<uint16_t>();
}
uint16_t& set_sf640()
{
set(types::sf640);
return c.get<uint16_t>();
}
uint16_t& set_sf1024()
{
set(types::sf1024);
return c.get<uint16_t>();
}
uint16_t& set_sf2048()
{
set(types::sf2048);
return c.get<uint16_t>();
}
uint16_t& set_sf4096()
{
set(types::sf4096);
return c.get<uint16_t>();
}
uint16_t& set_sf8192()
{
set(types::sf8192);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
on_dur_timer_scptm_r14_e_ on_dur_timer_scptm_r14;
drx_inactivity_timer_scptm_r14_e_ drx_inactivity_timer_scptm_r14;
sched_period_start_offset_scptm_r14_c_ sched_period_start_offset_scptm_r14;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MTCH-SchedulingInfo-r13 ::= SEQUENCE
struct sc_mtch_sched_info_r13_s {
struct on_dur_timer_scptm_r13_opts {
enum options {
psf1,
psf2,
psf3,
psf4,
psf5,
psf6,
psf8,
psf10,
psf20,
psf30,
psf40,
psf50,
psf60,
psf80,
psf100,
psf200,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<on_dur_timer_scptm_r13_opts> on_dur_timer_scptm_r13_e_;
struct drx_inactivity_timer_scptm_r13_opts {
enum options {
psf0,
psf1,
psf2,
psf4,
psf8,
psf10,
psf20,
psf40,
psf80,
psf160,
ps320,
psf640,
psf960,
psf1280,
psf1920,
psf2560,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_inactivity_timer_scptm_r13_opts> drx_inactivity_timer_scptm_r13_e_;
struct sched_period_start_offset_scptm_r13_c_ {
struct types_opts {
enum options {
sf10,
sf20,
sf32,
sf40,
sf64,
sf80,
sf128,
sf160,
sf256,
sf320,
sf512,
sf640,
sf1024,
sf2048,
sf4096,
sf8192,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sched_period_start_offset_scptm_r13_c_() = default;
sched_period_start_offset_scptm_r13_c_(const sched_period_start_offset_scptm_r13_c_& other);
sched_period_start_offset_scptm_r13_c_& operator=(const sched_period_start_offset_scptm_r13_c_& other);
~sched_period_start_offset_scptm_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& sf10()
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf20()
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf32()
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf40()
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf64()
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf80()
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf128()
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint8_t& sf160()
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
uint16_t& sf256()
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf320()
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf512()
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf640()
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf1024()
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf2048()
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf4096()
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint16_t& sf8192()
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint8_t& sf10() const
{
assert_choice_type("sf10", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf20() const
{
assert_choice_type("sf20", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf32() const
{
assert_choice_type("sf32", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf40() const
{
assert_choice_type("sf40", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf64() const
{
assert_choice_type("sf64", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf80() const
{
assert_choice_type("sf80", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf128() const
{
assert_choice_type("sf128", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint8_t& sf160() const
{
assert_choice_type("sf160", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint8_t>();
}
const uint16_t& sf256() const
{
assert_choice_type("sf256", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf320() const
{
assert_choice_type("sf320", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf512() const
{
assert_choice_type("sf512", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf640() const
{
assert_choice_type("sf640", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf1024() const
{
assert_choice_type("sf1024", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf2048() const
{
assert_choice_type("sf2048", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf4096() const
{
assert_choice_type("sf4096", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
const uint16_t& sf8192() const
{
assert_choice_type("sf8192", type_.to_string(), "schedulingPeriodStartOffsetSCPTM-r13");
return c.get<uint16_t>();
}
uint8_t& set_sf10()
{
set(types::sf10);
return c.get<uint8_t>();
}
uint8_t& set_sf20()
{
set(types::sf20);
return c.get<uint8_t>();
}
uint8_t& set_sf32()
{
set(types::sf32);
return c.get<uint8_t>();
}
uint8_t& set_sf40()
{
set(types::sf40);
return c.get<uint8_t>();
}
uint8_t& set_sf64()
{
set(types::sf64);
return c.get<uint8_t>();
}
uint8_t& set_sf80()
{
set(types::sf80);
return c.get<uint8_t>();
}
uint8_t& set_sf128()
{
set(types::sf128);
return c.get<uint8_t>();
}
uint8_t& set_sf160()
{
set(types::sf160);
return c.get<uint8_t>();
}
uint16_t& set_sf256()
{
set(types::sf256);
return c.get<uint16_t>();
}
uint16_t& set_sf320()
{
set(types::sf320);
return c.get<uint16_t>();
}
uint16_t& set_sf512()
{
set(types::sf512);
return c.get<uint16_t>();
}
uint16_t& set_sf640()
{
set(types::sf640);
return c.get<uint16_t>();
}
uint16_t& set_sf1024()
{
set(types::sf1024);
return c.get<uint16_t>();
}
uint16_t& set_sf2048()
{
set(types::sf2048);
return c.get<uint16_t>();
}
uint16_t& set_sf4096()
{
set(types::sf4096);
return c.get<uint16_t>();
}
uint16_t& set_sf8192()
{
set(types::sf8192);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
on_dur_timer_scptm_r13_e_ on_dur_timer_scptm_r13;
drx_inactivity_timer_scptm_r13_e_ drx_inactivity_timer_scptm_r13;
sched_period_start_offset_scptm_r13_c_ sched_period_start_offset_scptm_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PCI-ARFCN-r13 ::= SEQUENCE
struct pci_arfcn_r13_s {
bool carrier_freq_r13_present = false;
uint16_t pci_r13 = 0;
uint32_t carrier_freq_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MTCH-Info-BR-r14 ::= SEQUENCE
struct sc_mtch_info_br_r14_s {
struct mpdcch_num_repeat_sc_mtch_r14_opts {
enum options { r1, r2, r4, r8, r16, r32, r64, r128, r256, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<mpdcch_num_repeat_sc_mtch_r14_opts> mpdcch_num_repeat_sc_mtch_r14_e_;
struct mpdcch_start_sf_sc_mtch_r14_c_ {
struct fdd_r14_opts {
enum options { v1, v1dot5, v2, v2dot5, v4, v5, v8, v10, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<fdd_r14_opts> fdd_r14_e_;
struct tdd_r14_opts {
enum options { v1, v2, v4, v5, v8, v10, v20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tdd_r14_opts> tdd_r14_e_;
struct types_opts {
enum options { fdd_r14, tdd_r14, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mpdcch_start_sf_sc_mtch_r14_c_() = default;
mpdcch_start_sf_sc_mtch_r14_c_(const mpdcch_start_sf_sc_mtch_r14_c_& other);
mpdcch_start_sf_sc_mtch_r14_c_& operator=(const mpdcch_start_sf_sc_mtch_r14_c_& other);
~mpdcch_start_sf_sc_mtch_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fdd_r14_e_& fdd_r14()
{
assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14");
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& tdd_r14()
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14");
return c.get<tdd_r14_e_>();
}
const fdd_r14_e_& fdd_r14() const
{
assert_choice_type("fdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14");
return c.get<fdd_r14_e_>();
}
const tdd_r14_e_& tdd_r14() const
{
assert_choice_type("tdd-r14", type_.to_string(), "mpdcch-StartSF-SC-MTCH-r14");
return c.get<tdd_r14_e_>();
}
fdd_r14_e_& set_fdd_r14()
{
set(types::fdd_r14);
return c.get<fdd_r14_e_>();
}
tdd_r14_e_& set_tdd_r14()
{
set(types::tdd_r14);
return c.get<tdd_r14_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct mpdcch_pdsch_hop_cfg_sc_mtch_r14_opts {
enum options { on, off, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mpdcch_pdsch_hop_cfg_sc_mtch_r14_opts> mpdcch_pdsch_hop_cfg_sc_mtch_r14_e_;
struct mpdcch_pdsch_cemode_cfg_sc_mtch_r14_opts {
enum options { ce_mode_a, ce_mode_b, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mpdcch_pdsch_cemode_cfg_sc_mtch_r14_opts> mpdcch_pdsch_cemode_cfg_sc_mtch_r14_e_;
struct mpdcch_pdsch_max_bw_sc_mtch_r14_opts {
enum options { bw1dot4, bw5, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<mpdcch_pdsch_max_bw_sc_mtch_r14_opts> mpdcch_pdsch_max_bw_sc_mtch_r14_e_;
struct mpdcch_offset_sc_mtch_r14_opts {
enum options {
zero,
one_eighth,
one_quarter,
three_eighth,
one_half,
five_eighth,
three_quarter,
seven_eighth,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<mpdcch_offset_sc_mtch_r14_opts> mpdcch_offset_sc_mtch_r14_e_;
struct p_a_r14_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_r14_opts> p_a_r14_e_;
// member variables
bool ext = false;
bool sc_mtch_sched_info_r14_present = false;
bool sc_mtch_neighbour_cell_r14_present = false;
bool p_a_r14_present = false;
uint32_t sc_mtch_carrier_freq_r14 = 0;
mbms_session_info_r13_s mbms_session_info_r14;
fixed_bitstring<16> g_rnti_r14;
sc_mtch_sched_info_br_r14_s sc_mtch_sched_info_r14;
fixed_bitstring<8> sc_mtch_neighbour_cell_r14;
uint8_t mpdcch_nb_sc_mtch_r14 = 1;
mpdcch_num_repeat_sc_mtch_r14_e_ mpdcch_num_repeat_sc_mtch_r14;
mpdcch_start_sf_sc_mtch_r14_c_ mpdcch_start_sf_sc_mtch_r14;
mpdcch_pdsch_hop_cfg_sc_mtch_r14_e_ mpdcch_pdsch_hop_cfg_sc_mtch_r14;
mpdcch_pdsch_cemode_cfg_sc_mtch_r14_e_ mpdcch_pdsch_cemode_cfg_sc_mtch_r14;
mpdcch_pdsch_max_bw_sc_mtch_r14_e_ mpdcch_pdsch_max_bw_sc_mtch_r14;
mpdcch_offset_sc_mtch_r14_e_ mpdcch_offset_sc_mtch_r14;
p_a_r14_e_ p_a_r14;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MTCH-Info-r13 ::= SEQUENCE
struct sc_mtch_info_r13_s {
struct p_a_r13_opts {
enum options { db_minus6, db_minus4dot77, db_minus3, db_minus1dot77, db0, db1, db2, db3, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<p_a_r13_opts> p_a_r13_e_;
// member variables
bool ext = false;
bool sc_mtch_sched_info_r13_present = false;
bool sc_mtch_neighbour_cell_r13_present = false;
mbms_session_info_r13_s mbms_session_info_r13;
fixed_bitstring<16> g_rnti_r13;
sc_mtch_sched_info_r13_s sc_mtch_sched_info_r13;
fixed_bitstring<8> sc_mtch_neighbour_cell_r13;
// ...
// group 0
bool p_a_r13_present = false;
p_a_r13_e_ p_a_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MTCH-InfoList-BR-r14 ::= SEQUENCE (SIZE (0..128)) OF SC-MTCH-Info-BR-r14
using sc_mtch_info_list_br_r14_l = dyn_array<sc_mtch_info_br_r14_s>;
// SC-MTCH-InfoList-r13 ::= SEQUENCE (SIZE (0..1023)) OF SC-MTCH-Info-r13
using sc_mtch_info_list_r13_l = dyn_array<sc_mtch_info_r13_s>;
// SCPTM-NeighbourCellList-r13 ::= SEQUENCE (SIZE (1..8)) OF PCI-ARFCN-r13
using scptm_neighbour_cell_list_r13_l = dyn_array<pci_arfcn_r13_s>;
// SCPTMConfiguration-v1340 ::= SEQUENCE
struct scptm_cfg_v1340_s {
bool p_b_r13_present = false;
bool non_crit_ext_present = false;
uint8_t p_b_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCPTMConfiguration-BR-r14 ::= SEQUENCE
struct scptm_cfg_br_r14_s {
bool scptm_neighbour_cell_list_r14_present = false;
bool p_b_r14_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
sc_mtch_info_list_br_r14_l sc_mtch_info_list_r14;
scptm_neighbour_cell_list_r13_l scptm_neighbour_cell_list_r14;
uint8_t p_b_r14 = 0;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCPTMConfiguration-r13 ::= SEQUENCE
struct scptm_cfg_r13_s {
bool scptm_neighbour_cell_list_r13_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
sc_mtch_info_list_r13_l sc_mtch_info_list_r13;
scptm_neighbour_cell_list_r13_l scptm_neighbour_cell_list_r13;
dyn_octstring late_non_crit_ext;
scptm_cfg_v1340_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SC-MCCH-MessageType-r13 ::= CHOICE
struct sc_mcch_msg_type_r13_c {
struct c1_c_ {
struct types_opts {
enum options { scptm_cfg_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::scptm_cfg_r13; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scptm_cfg_r13_s& scptm_cfg_r13() { return c; }
const scptm_cfg_r13_s& scptm_cfg_r13() const { return c; }
private:
scptm_cfg_r13_s c;
};
struct msg_class_ext_c_ {
struct c2_c_ {
struct types_opts {
enum options { scptm_cfg_br_r14, spare, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c2_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scptm_cfg_br_r14_s& scptm_cfg_br_r14()
{
assert_choice_type("scptmConfiguration-BR-r14", type_.to_string(), "c2");
return c;
}
const scptm_cfg_br_r14_s& scptm_cfg_br_r14() const
{
assert_choice_type("scptmConfiguration-BR-r14", type_.to_string(), "c2");
return c;
}
scptm_cfg_br_r14_s& set_scptm_cfg_br_r14()
{
set(types::scptm_cfg_br_r14);
return c;
}
private:
types type_;
scptm_cfg_br_r14_s c;
};
struct types_opts {
enum options { c2, msg_class_ext_future_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
msg_class_ext_c_() = default;
msg_class_ext_c_(const msg_class_ext_c_& other);
msg_class_ext_c_& operator=(const msg_class_ext_c_& other);
~msg_class_ext_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c2_c_& c2()
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
const c2_c_& c2() const
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
c2_c_& set_c2()
{
set(types::c2);
return c.get<c2_c_>();
}
private:
types type_;
choice_buffer_t<c2_c_> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sc_mcch_msg_type_r13_c() = default;
sc_mcch_msg_type_r13_c(const sc_mcch_msg_type_r13_c& other);
sc_mcch_msg_type_r13_c& operator=(const sc_mcch_msg_type_r13_c& other);
~sc_mcch_msg_type_r13_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-r13");
return c.get<c1_c_>();
}
msg_class_ext_c_& msg_class_ext()
{
assert_choice_type("messageClassExtension", type_.to_string(), "SC-MCCH-MessageType-r13");
return c.get<msg_class_ext_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "SC-MCCH-MessageType-r13");
return c.get<c1_c_>();
}
const msg_class_ext_c_& msg_class_ext() const
{
assert_choice_type("messageClassExtension", type_.to_string(), "SC-MCCH-MessageType-r13");
return c.get<msg_class_ext_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
msg_class_ext_c_& set_msg_class_ext()
{
set(types::msg_class_ext);
return c.get<msg_class_ext_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_, msg_class_ext_c_> c;
void destroy_();
};
// SC-MCCH-Message-r13 ::= SEQUENCE
struct sc_mcch_msg_r13_s {
sc_mcch_msg_type_r13_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// EstablishmentCause ::= ENUMERATED
struct establishment_cause_opts {
enum options {
emergency,
high_prio_access,
mt_access,
mo_sig,
mo_data,
delay_tolerant_access_v1020,
mo_voice_call_v1280,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<establishment_cause_opts> establishment_cause_e;
// InitialUE-Identity ::= CHOICE
struct init_ue_id_c {
struct types_opts {
enum options { s_tmsi, random_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
init_ue_id_c() = default;
init_ue_id_c(const init_ue_id_c& other);
init_ue_id_c& operator=(const init_ue_id_c& other);
~init_ue_id_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
s_tmsi_s& s_tmsi()
{
assert_choice_type("s-TMSI", type_.to_string(), "InitialUE-Identity");
return c.get<s_tmsi_s>();
}
fixed_bitstring<40>& random_value()
{
assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity");
return c.get<fixed_bitstring<40> >();
}
const s_tmsi_s& s_tmsi() const
{
assert_choice_type("s-TMSI", type_.to_string(), "InitialUE-Identity");
return c.get<s_tmsi_s>();
}
const fixed_bitstring<40>& random_value() const
{
assert_choice_type("randomValue", type_.to_string(), "InitialUE-Identity");
return c.get<fixed_bitstring<40> >();
}
s_tmsi_s& set_s_tmsi()
{
set(types::s_tmsi);
return c.get<s_tmsi_s>();
}
fixed_bitstring<40>& set_random_value()
{
set(types::random_value);
return c.get<fixed_bitstring<40> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<40>, s_tmsi_s> c;
void destroy_();
};
// ReestabUE-Identity ::= SEQUENCE
struct reestab_ue_id_s {
fixed_bitstring<16> c_rnti;
uint16_t pci = 0;
fixed_bitstring<16> short_mac_i;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ReestablishmentCause ::= ENUMERATED
struct reest_cause_opts {
enum options { recfg_fail, ho_fail, other_fail, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<reest_cause_opts> reest_cause_e;
// ResumeCause ::= ENUMERATED
struct resume_cause_opts {
enum options {
emergency,
high_prio_access,
mt_access,
mo_sig,
mo_data,
delay_tolerant_access_v1020,
mo_voice_call_v1280,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<resume_cause_opts> resume_cause_e;
// ResumeCause-r15 ::= ENUMERATED
struct resume_cause_r15_opts {
enum options {
emergency,
high_prio_access,
mt_access,
mo_sig,
mo_data,
rna_upd,
mo_voice_call,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<resume_cause_r15_opts> resume_cause_r15_e;
// RRCConnectionReestablishmentRequest-r8-IEs ::= SEQUENCE
struct rrc_conn_reest_request_r8_ies_s {
reestab_ue_id_s ue_id;
reest_cause_e reest_cause;
fixed_bitstring<2> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRequest-r8-IEs ::= SEQUENCE
struct rrc_conn_request_r8_ies_s {
init_ue_id_c ue_id;
establishment_cause_e establishment_cause;
fixed_bitstring<1> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeRequest-5GC-r15-IEs ::= SEQUENCE
struct rrc_conn_resume_request_minus5_gc_r15_ies_s {
struct resume_id_r15_c_ {
struct types_opts {
enum options { full_i_rnti_r15, short_i_rnti_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
resume_id_r15_c_() = default;
resume_id_r15_c_(const resume_id_r15_c_& other);
resume_id_r15_c_& operator=(const resume_id_r15_c_& other);
~resume_id_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<40>& full_i_rnti_r15()
{
assert_choice_type("fullI-RNTI-r15", type_.to_string(), "resumeIdentity-r15");
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<24>& short_i_rnti_r15()
{
assert_choice_type("shortI-RNTI-r15", type_.to_string(), "resumeIdentity-r15");
return c.get<fixed_bitstring<24> >();
}
const fixed_bitstring<40>& full_i_rnti_r15() const
{
assert_choice_type("fullI-RNTI-r15", type_.to_string(), "resumeIdentity-r15");
return c.get<fixed_bitstring<40> >();
}
const fixed_bitstring<24>& short_i_rnti_r15() const
{
assert_choice_type("shortI-RNTI-r15", type_.to_string(), "resumeIdentity-r15");
return c.get<fixed_bitstring<24> >();
}
fixed_bitstring<40>& set_full_i_rnti_r15()
{
set(types::full_i_rnti_r15);
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<24>& set_short_i_rnti_r15()
{
set(types::short_i_rnti_r15);
return c.get<fixed_bitstring<24> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<40> > c;
void destroy_();
};
// member variables
resume_id_r15_c_ resume_id_r15;
fixed_bitstring<16> short_resume_mac_i_r15;
resume_cause_r15_e resume_cause_r15;
fixed_bitstring<1> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeRequest-r13-IEs ::= SEQUENCE
struct rrc_conn_resume_request_r13_ies_s {
struct resume_id_r13_c_ {
struct types_opts {
enum options { resume_id_r13, truncated_resume_id_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
resume_id_r13_c_() = default;
resume_id_r13_c_(const resume_id_r13_c_& other);
resume_id_r13_c_& operator=(const resume_id_r13_c_& other);
~resume_id_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<40>& resume_id_r13()
{
assert_choice_type("resumeID-r13", type_.to_string(), "resumeIdentity-r13");
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<24>& truncated_resume_id_r13()
{
assert_choice_type("truncatedResumeID-r13", type_.to_string(), "resumeIdentity-r13");
return c.get<fixed_bitstring<24> >();
}
const fixed_bitstring<40>& resume_id_r13() const
{
assert_choice_type("resumeID-r13", type_.to_string(), "resumeIdentity-r13");
return c.get<fixed_bitstring<40> >();
}
const fixed_bitstring<24>& truncated_resume_id_r13() const
{
assert_choice_type("truncatedResumeID-r13", type_.to_string(), "resumeIdentity-r13");
return c.get<fixed_bitstring<24> >();
}
fixed_bitstring<40>& set_resume_id_r13()
{
set(types::resume_id_r13);
return c.get<fixed_bitstring<40> >();
}
fixed_bitstring<24>& set_truncated_resume_id_r13()
{
set(types::truncated_resume_id_r13);
return c.get<fixed_bitstring<24> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<40> > c;
void destroy_();
};
// member variables
resume_id_r13_c_ resume_id_r13;
fixed_bitstring<16> short_resume_mac_i_r13;
resume_cause_e resume_cause_r13;
fixed_bitstring<1> spare;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
std::string to_string() const;
};
typedef enumerated<establishment_cause_r15_opts> establishment_cause_r15_e_;
// member variables
bool non_crit_ext_present = false;
s_tmsi_s s_tmsi_r15;
establishment_cause_r15_e_ establishment_cause_r15;
dyn_octstring ded_info_nas_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentRequest ::= SEQUENCE
struct rrc_conn_reest_request_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_reest_request_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8()
{
assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_request_r8_ies_s>();
}
const rrc_conn_reest_request_r8_ies_s& rrc_conn_reest_request_r8() const
{
assert_choice_type("rrcConnectionReestablishmentRequest-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_request_r8_ies_s>();
}
rrc_conn_reest_request_r8_ies_s& set_rrc_conn_reest_request_r8()
{
set(types::rrc_conn_reest_request_r8);
return c.get<rrc_conn_reest_request_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_reest_request_r8_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionRequest ::= SEQUENCE
struct rrc_conn_request_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_request_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_request_r8_ies_s& rrc_conn_request_r8()
{
assert_choice_type("rrcConnectionRequest-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_request_r8_ies_s>();
}
const rrc_conn_request_r8_ies_s& rrc_conn_request_r8() const
{
assert_choice_type("rrcConnectionRequest-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_request_r8_ies_s>();
}
rrc_conn_request_r8_ies_s& set_rrc_conn_request_r8()
{
set(types::rrc_conn_request_r8);
return c.get<rrc_conn_request_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_request_r8_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeRequest-r13 ::= SEQUENCE
struct rrc_conn_resume_request_r13_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_resume_request_r13, rrc_conn_resume_request_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_resume_request_r13_ies_s& rrc_conn_resume_request_r13()
{
assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_request_r13_ies_s>();
}
rrc_conn_resume_request_minus5_gc_r15_ies_s& rrc_conn_resume_request_r15()
{
assert_choice_type("rrcConnectionResumeRequest-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_request_minus5_gc_r15_ies_s>();
}
const rrc_conn_resume_request_r13_ies_s& rrc_conn_resume_request_r13() const
{
assert_choice_type("rrcConnectionResumeRequest-r13", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_request_r13_ies_s>();
}
const rrc_conn_resume_request_minus5_gc_r15_ies_s& rrc_conn_resume_request_r15() const
{
assert_choice_type("rrcConnectionResumeRequest-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_request_minus5_gc_r15_ies_s>();
}
rrc_conn_resume_request_r13_ies_s& set_rrc_conn_resume_request_r13()
{
set(types::rrc_conn_resume_request_r13);
return c.get<rrc_conn_resume_request_r13_ies_s>();
}
rrc_conn_resume_request_minus5_gc_r15_ies_s& set_rrc_conn_resume_request_r15()
{
set(types::rrc_conn_resume_request_r15);
return c.get<rrc_conn_resume_request_minus5_gc_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_resume_request_minus5_gc_r15_ies_s, rrc_conn_resume_request_r13_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCEarlyDataRequest-r15 ::= SEQUENCE
struct rrc_early_data_request_r15_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_early_data_request_r15, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15()
{
assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_early_data_request_r15_ies_s>();
}
const rrc_early_data_request_r15_ies_s& rrc_early_data_request_r15() const
{
assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "criticalExtensions");
return c.get<rrc_early_data_request_r15_ies_s>();
}
rrc_early_data_request_r15_ies_s& set_rrc_early_data_request_r15()
{
set(types::rrc_early_data_request_r15);
return c.get<rrc_early_data_request_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_early_data_request_r15_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-CCCH-MessageType ::= CHOICE
struct ul_ccch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_reest_request, rrc_conn_request, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_request_s& rrc_conn_reest_request()
{
assert_choice_type("rrcConnectionReestablishmentRequest", type_.to_string(), "c1");
return c.get<rrc_conn_reest_request_s>();
}
rrc_conn_request_s& rrc_conn_request()
{
assert_choice_type("rrcConnectionRequest", type_.to_string(), "c1");
return c.get<rrc_conn_request_s>();
}
const rrc_conn_reest_request_s& rrc_conn_reest_request() const
{
assert_choice_type("rrcConnectionReestablishmentRequest", type_.to_string(), "c1");
return c.get<rrc_conn_reest_request_s>();
}
const rrc_conn_request_s& rrc_conn_request() const
{
assert_choice_type("rrcConnectionRequest", type_.to_string(), "c1");
return c.get<rrc_conn_request_s>();
}
rrc_conn_reest_request_s& set_rrc_conn_reest_request()
{
set(types::rrc_conn_reest_request);
return c.get<rrc_conn_reest_request_s>();
}
rrc_conn_request_s& set_rrc_conn_request()
{
set(types::rrc_conn_request);
return c.get<rrc_conn_request_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_reest_request_s, rrc_conn_request_s> c;
void destroy_();
};
struct msg_class_ext_c_ {
struct c2_c_ {
struct types_opts {
enum options { rrc_conn_resume_request_r13, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
types type() const { return types::rrc_conn_resume_request_r13; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_resume_request_r13_s& rrc_conn_resume_request_r13() { return c; }
const rrc_conn_resume_request_r13_s& rrc_conn_resume_request_r13() const { return c; }
private:
rrc_conn_resume_request_r13_s c;
};
struct msg_class_ext_future_r13_c_ {
struct c3_c_ {
struct types_opts {
enum options { rrc_early_data_request_r15, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c3_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_early_data_request_r15_s& rrc_early_data_request_r15()
{
assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c3");
return c;
}
const rrc_early_data_request_r15_s& rrc_early_data_request_r15() const
{
assert_choice_type("rrcEarlyDataRequest-r15", type_.to_string(), "c3");
return c;
}
rrc_early_data_request_r15_s& set_rrc_early_data_request_r15()
{
set(types::rrc_early_data_request_r15);
return c;
}
private:
types type_;
rrc_early_data_request_r15_s c;
};
struct types_opts {
enum options { c3, msg_class_ext_future_r15, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
msg_class_ext_future_r13_c_() = default;
msg_class_ext_future_r13_c_(const msg_class_ext_future_r13_c_& other);
msg_class_ext_future_r13_c_& operator=(const msg_class_ext_future_r13_c_& other);
~msg_class_ext_future_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c3_c_& c3()
{
assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13");
return c.get<c3_c_>();
}
const c3_c_& c3() const
{
assert_choice_type("c3", type_.to_string(), "messageClassExtensionFuture-r13");
return c.get<c3_c_>();
}
c3_c_& set_c3()
{
set(types::c3);
return c.get<c3_c_>();
}
private:
types type_;
choice_buffer_t<c3_c_> c;
void destroy_();
};
struct types_opts {
enum options { c2, msg_class_ext_future_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
msg_class_ext_c_() = default;
msg_class_ext_c_(const msg_class_ext_c_& other);
msg_class_ext_c_& operator=(const msg_class_ext_c_& other);
~msg_class_ext_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c2_c_& c2()
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
msg_class_ext_future_r13_c_& msg_class_ext_future_r13()
{
assert_choice_type("messageClassExtensionFuture-r13", type_.to_string(), "messageClassExtension");
return c.get<msg_class_ext_future_r13_c_>();
}
const c2_c_& c2() const
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
const msg_class_ext_future_r13_c_& msg_class_ext_future_r13() const
{
assert_choice_type("messageClassExtensionFuture-r13", type_.to_string(), "messageClassExtension");
return c.get<msg_class_ext_future_r13_c_>();
}
c2_c_& set_c2()
{
set(types::c2);
return c.get<c2_c_>();
}
msg_class_ext_future_r13_c_& set_msg_class_ext_future_r13()
{
set(types::msg_class_ext_future_r13);
return c.get<msg_class_ext_future_r13_c_>();
}
private:
types type_;
choice_buffer_t<c2_c_, msg_class_ext_future_r13_c_> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
ul_ccch_msg_type_c() = default;
ul_ccch_msg_type_c(const ul_ccch_msg_type_c& other);
ul_ccch_msg_type_c& operator=(const ul_ccch_msg_type_c& other);
~ul_ccch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType");
return c.get<c1_c_>();
}
msg_class_ext_c_& msg_class_ext()
{
assert_choice_type("messageClassExtension", type_.to_string(), "UL-CCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "UL-CCCH-MessageType");
return c.get<c1_c_>();
}
const msg_class_ext_c_& msg_class_ext() const
{
assert_choice_type("messageClassExtension", type_.to_string(), "UL-CCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
msg_class_ext_c_& set_msg_class_ext()
{
set(types::msg_class_ext);
return c.get<msg_class_ext_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_, msg_class_ext_c_> c;
void destroy_();
};
// UL-CCCH-Message ::= SEQUENCE
struct ul_ccch_msg_s {
ul_ccch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellGlobalIdCDMA2000 ::= CHOICE
struct cell_global_id_cdma2000_c {
struct types_opts {
enum options { cell_global_id1_xrtt, cell_global_id_hrpd, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
cell_global_id_cdma2000_c() = default;
cell_global_id_cdma2000_c(const cell_global_id_cdma2000_c& other);
cell_global_id_cdma2000_c& operator=(const cell_global_id_cdma2000_c& other);
~cell_global_id_cdma2000_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<47>& cell_global_id1_xrtt()
{
assert_choice_type("cellGlobalId1XRTT", type_.to_string(), "CellGlobalIdCDMA2000");
return c.get<fixed_bitstring<47> >();
}
fixed_bitstring<128>& cell_global_id_hrpd()
{
assert_choice_type("cellGlobalIdHRPD", type_.to_string(), "CellGlobalIdCDMA2000");
return c.get<fixed_bitstring<128> >();
}
const fixed_bitstring<47>& cell_global_id1_xrtt() const
{
assert_choice_type("cellGlobalId1XRTT", type_.to_string(), "CellGlobalIdCDMA2000");
return c.get<fixed_bitstring<47> >();
}
const fixed_bitstring<128>& cell_global_id_hrpd() const
{
assert_choice_type("cellGlobalIdHRPD", type_.to_string(), "CellGlobalIdCDMA2000");
return c.get<fixed_bitstring<128> >();
}
fixed_bitstring<47>& set_cell_global_id1_xrtt()
{
set(types::cell_global_id1_xrtt);
return c.get<fixed_bitstring<47> >();
}
fixed_bitstring<128>& set_cell_global_id_hrpd()
{
set(types::cell_global_id_hrpd);
return c.get<fixed_bitstring<128> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<128> > c;
void destroy_();
};
// AdditionalSI-Info-r9 ::= SEQUENCE
struct add_si_info_r9_s {
bool csg_member_status_r9_present = false;
bool csg_id_r9_present = false;
fixed_bitstring<27> csg_id_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BLER-Result-r12 ::= SEQUENCE
struct bler_result_r12_s {
struct blocks_rx_r12_s_ {
fixed_bitstring<3> n_r12;
fixed_bitstring<8> m_r12;
};
// member variables
uint8_t bler_r12 = 0;
blocks_rx_r12_s_ blocks_rx_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CellGlobalIdUTRA ::= SEQUENCE
struct cell_global_id_utra_s {
plmn_id_s plmn_id;
fixed_bitstring<28> cell_id;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultCDMA2000 ::= SEQUENCE
struct meas_result_cdma2000_s {
struct meas_result_s_ {
bool ext = false;
bool pilot_pn_phase_present = false;
uint16_t pilot_pn_phase = 0;
uint8_t pilot_strength = 0;
// ...
};
// member variables
bool cgi_info_present = false;
uint16_t pci = 0;
cell_global_id_cdma2000_c cgi_info;
meas_result_s_ meas_result;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityList2 ::= SEQUENCE (SIZE (1..5)) OF PLMN-Identity
using plmn_id_list2_l = dyn_array<plmn_id_s>;
// CellGlobalIdGERAN ::= SEQUENCE
struct cell_global_id_geran_s {
plmn_id_s plmn_id;
fixed_bitstring<16> location_area_code;
fixed_bitstring<16> cell_id;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DataBLER-MCH-Result-r12 ::= SEQUENCE
struct data_bler_mch_result_r12_s {
uint8_t mch_idx_r12 = 1;
bler_result_r12_s data_bler_result_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultEUTRA ::= SEQUENCE
struct meas_result_eutra_s {
struct cgi_info_s_ {
bool plmn_id_list_present = false;
cell_global_id_eutra_s cell_global_id;
fixed_bitstring<16> tac;
plmn_id_list2_l plmn_id_list;
};
struct meas_result_s_ {
struct cgi_info_v1310_s_ {
bool freq_band_ind_r13_present = false;
bool multi_band_info_list_r13_present = false;
bool freq_band_ind_prio_r13_present = false;
uint16_t freq_band_ind_r13 = 1;
multi_band_info_list_r11_l multi_band_info_list_r13;
};
using cgi_info_minus5_gc_r15_l_ = dyn_array<cell_access_related_info_minus5_gc_r15_s>;
// member variables
bool ext = false;
bool rsrp_result_present = false;
bool rsrq_result_present = false;
uint8_t rsrp_result = 0;
uint8_t rsrq_result = 0;
// ...
// group 0
copy_ptr<add_si_info_r9_s> add_si_info_r9;
// group 1
bool primary_plmn_suitable_r12_present = false;
bool meas_result_v1250_present = false;
int8_t meas_result_v1250 = -30;
// group 2
bool rs_sinr_result_r13_present = false;
uint8_t rs_sinr_result_r13 = 0;
copy_ptr<cgi_info_v1310_s_> cgi_info_v1310;
// group 3
bool meas_result_v1360_present = false;
int8_t meas_result_v1360 = -17;
// group 4
copy_ptr<cgi_info_minus5_gc_r15_l_> cgi_info_minus5_gc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// member variables
bool cgi_info_present = false;
uint16_t pci = 0;
cgi_info_s_ cgi_info;
meas_result_s_ meas_result;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultIdleEUTRA-r15 ::= SEQUENCE
struct meas_result_idle_eutra_r15_s {
struct meas_result_r15_s_ {
uint8_t rsrp_result_r15 = 0;
int8_t rsrq_result_r15 = -30;
};
// member variables
bool ext = false;
uint32_t carrier_freq_r15 = 0;
uint16_t pci_r15 = 0;
meas_result_r15_s_ meas_result_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultListCDMA2000 ::= SEQUENCE (SIZE (1..8)) OF MeasResultCDMA2000
using meas_result_list_cdma2000_l = dyn_array<meas_result_cdma2000_s>;
// MeasResultUTRA ::= SEQUENCE
struct meas_result_utra_s {
struct pci_c_ {
struct types_opts {
enum options { fdd, tdd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pci_c_() = default;
pci_c_(const pci_c_& other);
pci_c_& operator=(const pci_c_& other);
~pci_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& fdd()
{
assert_choice_type("fdd", type_.to_string(), "physCellId");
return c.get<uint16_t>();
}
uint8_t& tdd()
{
assert_choice_type("tdd", type_.to_string(), "physCellId");
return c.get<uint8_t>();
}
const uint16_t& fdd() const
{
assert_choice_type("fdd", type_.to_string(), "physCellId");
return c.get<uint16_t>();
}
const uint8_t& tdd() const
{
assert_choice_type("tdd", type_.to_string(), "physCellId");
return c.get<uint8_t>();
}
uint16_t& set_fdd()
{
set(types::fdd);
return c.get<uint16_t>();
}
uint8_t& set_tdd()
{
set(types::tdd);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct cgi_info_s_ {
bool location_area_code_present = false;
bool routing_area_code_present = false;
bool plmn_id_list_present = false;
cell_global_id_utra_s cell_global_id;
fixed_bitstring<16> location_area_code;
fixed_bitstring<8> routing_area_code;
plmn_id_list2_l plmn_id_list;
};
struct meas_result_s_ {
bool ext = false;
bool utra_rscp_present = false;
bool utra_ec_n0_present = false;
int8_t utra_rscp = -5;
uint8_t utra_ec_n0 = 0;
// ...
// group 0
copy_ptr<add_si_info_r9_s> add_si_info_r9;
// group 1
bool primary_plmn_suitable_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// member variables
bool cgi_info_present = false;
pci_c_ pci;
cgi_info_s_ cgi_info;
meas_result_s_ meas_result;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityListNR-r15 ::= SEQUENCE (SIZE (1..12)) OF PLMN-Identity
using plmn_id_list_nr_r15_l = dyn_array<plmn_id_s>;
// RegisteredAMF-r15 ::= SEQUENCE
struct registered_amf_r15_s {
bool plmn_id_r15_present = false;
plmn_id_s plmn_id_r15;
fixed_bitstring<24> amf_id_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// S-NSSAI-r15 ::= CHOICE
struct s_nssai_r15_c {
struct types_opts {
enum options { sst, sst_sd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
s_nssai_r15_c() = default;
s_nssai_r15_c(const s_nssai_r15_c& other);
s_nssai_r15_c& operator=(const s_nssai_r15_c& other);
~s_nssai_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<8>& sst()
{
assert_choice_type("sst", type_.to_string(), "S-NSSAI-r15");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<32>& sst_sd()
{
assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI-r15");
return c.get<fixed_bitstring<32> >();
}
const fixed_bitstring<8>& sst() const
{
assert_choice_type("sst", type_.to_string(), "S-NSSAI-r15");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<32>& sst_sd() const
{
assert_choice_type("sst-SD", type_.to_string(), "S-NSSAI-r15");
return c.get<fixed_bitstring<32> >();
}
fixed_bitstring<8>& set_sst()
{
set(types::sst);
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<32>& set_sst_sd()
{
set(types::sst_sd);
return c.get<fixed_bitstring<32> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<32> > c;
void destroy_();
};
// DataBLER-MCH-ResultList-r12 ::= SEQUENCE (SIZE (1..15)) OF DataBLER-MCH-Result-r12
using data_bler_mch_result_list_r12_l = dyn_array<data_bler_mch_result_r12_s>;
// LocationInfo-r10 ::= SEQUENCE
struct location_info_r10_s {
struct location_coordinates_r10_c_ {
struct types_opts {
enum options {
ellipsoid_point_r10,
ellipsoid_point_with_altitude_r10,
// ...
ellipsoid_point_with_uncertainty_circle_r11,
ellipsoid_point_with_uncertainty_ellipse_r11,
ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11,
ellipsoid_arc_r11,
polygon_r11,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts, true, 5> types;
// choice methods
location_coordinates_r10_c_() = default;
location_coordinates_r10_c_(const location_coordinates_r10_c_& other);
location_coordinates_r10_c_& operator=(const location_coordinates_r10_c_& other);
~location_coordinates_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dyn_octstring& ellipsoid_point_r10()
{
assert_choice_type("ellipsoid-Point-r10", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& ellipsoid_point_with_altitude_r10()
{
assert_choice_type("ellipsoidPointWithAltitude-r10", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& ellipsoid_point_with_uncertainty_circle_r11()
{
assert_choice_type("ellipsoidPointWithUncertaintyCircle-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& ellipsoid_point_with_uncertainty_ellipse_r11()
{
assert_choice_type("ellipsoidPointWithUncertaintyEllipse-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11()
{
assert_choice_type(
"ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& ellipsoid_arc_r11()
{
assert_choice_type("ellipsoidArc-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& polygon_r11()
{
assert_choice_type("polygon-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_point_r10() const
{
assert_choice_type("ellipsoid-Point-r10", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_point_with_altitude_r10() const
{
assert_choice_type("ellipsoidPointWithAltitude-r10", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_point_with_uncertainty_circle_r11() const
{
assert_choice_type("ellipsoidPointWithUncertaintyCircle-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_point_with_uncertainty_ellipse_r11() const
{
assert_choice_type("ellipsoidPointWithUncertaintyEllipse-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11() const
{
assert_choice_type(
"ellipsoidPointWithAltitudeAndUncertaintyEllipsoid-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& ellipsoid_arc_r11() const
{
assert_choice_type("ellipsoidArc-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
const dyn_octstring& polygon_r11() const
{
assert_choice_type("polygon-r11", type_.to_string(), "locationCoordinates-r10");
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_point_r10()
{
set(types::ellipsoid_point_r10);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_point_with_altitude_r10()
{
set(types::ellipsoid_point_with_altitude_r10);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_point_with_uncertainty_circle_r11()
{
set(types::ellipsoid_point_with_uncertainty_circle_r11);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_point_with_uncertainty_ellipse_r11()
{
set(types::ellipsoid_point_with_uncertainty_ellipse_r11);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11()
{
set(types::ellipsoid_point_with_altitude_and_uncertainty_ellipsoid_r11);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ellipsoid_arc_r11()
{
set(types::ellipsoid_arc_r11);
return c.get<dyn_octstring>();
}
dyn_octstring& set_polygon_r11()
{
set(types::polygon_r11);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring> c;
void destroy_();
};
struct vertical_velocity_info_r15_c_ {
struct types_opts {
enum options { vertical_velocity_r15, vertical_velocity_and_uncertainty_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
vertical_velocity_info_r15_c_() = default;
vertical_velocity_info_r15_c_(const vertical_velocity_info_r15_c_& other);
vertical_velocity_info_r15_c_& operator=(const vertical_velocity_info_r15_c_& other);
~vertical_velocity_info_r15_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dyn_octstring& vertical_velocity_r15()
{
assert_choice_type("verticalVelocity-r15", type_.to_string(), "verticalVelocityInfo-r15");
return c.get<dyn_octstring>();
}
dyn_octstring& vertical_velocity_and_uncertainty_r15()
{
assert_choice_type("verticalVelocityAndUncertainty-r15", type_.to_string(), "verticalVelocityInfo-r15");
return c.get<dyn_octstring>();
}
const dyn_octstring& vertical_velocity_r15() const
{
assert_choice_type("verticalVelocity-r15", type_.to_string(), "verticalVelocityInfo-r15");
return c.get<dyn_octstring>();
}
const dyn_octstring& vertical_velocity_and_uncertainty_r15() const
{
assert_choice_type("verticalVelocityAndUncertainty-r15", type_.to_string(), "verticalVelocityInfo-r15");
return c.get<dyn_octstring>();
}
dyn_octstring& set_vertical_velocity_r15()
{
set(types::vertical_velocity_r15);
return c.get<dyn_octstring>();
}
dyn_octstring& set_vertical_velocity_and_uncertainty_r15()
{
set(types::vertical_velocity_and_uncertainty_r15);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring> c;
void destroy_();
};
// member variables
bool ext = false;
bool horizontal_velocity_r10_present = false;
bool gnss_tod_msec_r10_present = false;
location_coordinates_r10_c_ location_coordinates_r10;
dyn_octstring horizontal_velocity_r10;
dyn_octstring gnss_tod_msec_r10;
// ...
// group 0
copy_ptr<vertical_velocity_info_r15_c_> vertical_velocity_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultGERAN ::= SEQUENCE
struct meas_result_geran_s {
struct cgi_info_s_ {
bool routing_area_code_present = false;
cell_global_id_geran_s cell_global_id;
fixed_bitstring<8> routing_area_code;
};
struct meas_result_s_ {
bool ext = false;
uint8_t rssi = 0;
// ...
};
// member variables
bool cgi_info_present = false;
carrier_freq_geran_s carrier_freq;
pci_geran_s pci;
cgi_info_s_ cgi_info;
meas_result_s_ meas_result;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultIdleListEUTRA-r15 ::= SEQUENCE (SIZE (1..8)) OF MeasResultIdleEUTRA-r15
using meas_result_idle_list_eutra_r15_l = dyn_array<meas_result_idle_eutra_r15_s>;
// MeasResultListEUTRA ::= SEQUENCE (SIZE (1..8)) OF MeasResultEUTRA
using meas_result_list_eutra_l = dyn_array<meas_result_eutra_s>;
// MeasResultListUTRA ::= SEQUENCE (SIZE (1..8)) OF MeasResultUTRA
using meas_result_list_utra_l = dyn_array<meas_result_utra_s>;
// MeasResultNR-r15 ::= SEQUENCE
struct meas_result_nr_r15_s {
bool ext = false;
bool rsrp_result_r15_present = false;
bool rsrq_result_r15_present = false;
bool rs_sinr_result_r15_present = false;
uint8_t rsrp_result_r15 = 0;
uint8_t rsrq_result_r15 = 0;
uint8_t rs_sinr_result_r15 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultsCDMA2000 ::= SEQUENCE
struct meas_results_cdma2000_s {
bool pre_regist_status_hrpd = false;
meas_result_list_cdma2000_l meas_result_list_cdma2000;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityInfoNR-r15 ::= SEQUENCE
struct plmn_id_info_nr_r15_s {
bool tac_r15_present = false;
bool ran_area_code_r15_present = false;
plmn_id_list_nr_r15_l plmn_id_list_r15;
fixed_bitstring<24> tac_r15;
uint16_t ran_area_code_r15 = 0;
fixed_bitstring<36> cell_id_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1530-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1530_ies_s {
using s_nssai_list_r15_l_ = dyn_array<s_nssai_r15_c>;
struct ng_minus5_g_s_tmsi_bits_r15_c_ {
struct types_opts {
enum options { ng_minus5_g_s_tmsi_r15, ng_minus5_g_s_tmsi_part2_r15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ng_minus5_g_s_tmsi_bits_r15_c_() = default;
ng_minus5_g_s_tmsi_bits_r15_c_(const ng_minus5_g_s_tmsi_bits_r15_c_& other);
ng_minus5_g_s_tmsi_bits_r15_c_& operator=(const ng_minus5_g_s_tmsi_bits_r15_c_& other);
~ng_minus5_g_s_tmsi_bits_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15()
{
assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15");
return c.get<fixed_bitstring<48> >();
}
fixed_bitstring<8>& ng_minus5_g_s_tmsi_part2_r15()
{
assert_choice_type("ng-5G-S-TMSI-Part2-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15");
return c.get<fixed_bitstring<8> >();
}
const fixed_bitstring<48>& ng_minus5_g_s_tmsi_r15() const
{
assert_choice_type("ng-5G-S-TMSI-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15");
return c.get<fixed_bitstring<48> >();
}
const fixed_bitstring<8>& ng_minus5_g_s_tmsi_part2_r15() const
{
assert_choice_type("ng-5G-S-TMSI-Part2-r15", type_.to_string(), "ng-5G-S-TMSI-Bits-r15");
return c.get<fixed_bitstring<8> >();
}
fixed_bitstring<48>& set_ng_minus5_g_s_tmsi_r15()
{
set(types::ng_minus5_g_s_tmsi_r15);
return c.get<fixed_bitstring<48> >();
}
fixed_bitstring<8>& set_ng_minus5_g_s_tmsi_part2_r15()
{
set(types::ng_minus5_g_s_tmsi_part2_r15);
return c.get<fixed_bitstring<8> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<48> > c;
void destroy_();
};
// member variables
bool log_meas_available_bt_r15_present = false;
bool log_meas_available_wlan_r15_present = false;
bool idle_meas_available_r15_present = false;
bool flight_path_info_available_r15_present = false;
bool connect_to5_gc_r15_present = false;
bool registered_amf_r15_present = false;
bool s_nssai_list_r15_present = false;
bool ng_minus5_g_s_tmsi_bits_r15_present = false;
bool non_crit_ext_present = false;
registered_amf_r15_s registered_amf_r15;
s_nssai_list_r15_l_ s_nssai_list_r15;
ng_minus5_g_s_tmsi_bits_r15_c_ ng_minus5_g_s_tmsi_bits_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RSRQ-Type-r12 ::= SEQUENCE
struct rsrq_type_r12_s {
bool all_symbols_r12 = false;
bool wide_band_r12 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-RTT-r15 ::= SEQUENCE
struct wlan_rtt_r15_s {
struct rtt_units_r15_opts {
enum options {
microseconds,
hundredsofnanoseconds,
tensofnanoseconds,
nanoseconds,
tenthsofnanoseconds,
/*...*/ nulltype
} value;
std::string to_string() const;
};
typedef enumerated<rtt_units_r15_opts, true> rtt_units_r15_e_;
// member variables
bool ext = false;
bool rtt_accuracy_r15_present = false;
uint32_t rtt_value_r15 = 0;
rtt_units_r15_e_ rtt_units_r15;
uint16_t rtt_accuracy_r15 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreqComb-r15 ::= SEQUENCE (SIZE (1..32)) OF INTEGER (1..64)
using affected_carrier_freq_comb_r15_l = bounded_array<uint8_t, 32>;
// AffectedCarrierFreqCombNR-r15 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..3279165)
using affected_carrier_freq_comb_nr_r15_l = bounded_array<uint32_t, 16>;
// LogMeasResultBT-r15 ::= SEQUENCE
struct log_meas_result_bt_r15_s {
bool ext = false;
bool rssi_bt_r15_present = false;
fixed_bitstring<48> bt_addr_r15;
int16_t rssi_bt_r15 = -128;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LogMeasResultWLAN-r15 ::= SEQUENCE
struct log_meas_result_wlan_r15_s {
bool ext = false;
bool rssi_wlan_r15_present = false;
bool rtt_wlan_r15_present = false;
wlan_ids_r12_s wlan_ids_r15;
uint8_t rssi_wlan_r15 = 0;
wlan_rtt_r15_s rtt_wlan_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult2CDMA2000-r9 ::= SEQUENCE
struct meas_result2_cdma2000_r9_s {
carrier_freq_cdma2000_s carrier_freq_r9;
meas_results_cdma2000_s meas_result_list_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult2EUTRA-r9 ::= SEQUENCE
struct meas_result2_eutra_r9_s {
uint32_t carrier_freq_r9 = 0;
meas_result_list_eutra_l meas_result_list_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult2EUTRA-v1250 ::= SEQUENCE
struct meas_result2_eutra_v1250_s {
bool rsrq_type_r12_present = false;
rsrq_type_r12_s rsrq_type_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult2EUTRA-v9e0 ::= SEQUENCE
struct meas_result2_eutra_v9e0_s {
bool carrier_freq_v9e0_present = false;
uint32_t carrier_freq_v9e0 = 65536;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResult2UTRA-r9 ::= SEQUENCE
struct meas_result2_utra_r9_s {
uint16_t carrier_freq_r9 = 0;
meas_result_list_utra_l meas_result_list_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultIdle-r15 ::= SEQUENCE
struct meas_result_idle_r15_s {
struct meas_result_serving_cell_r15_s_ {
uint8_t rsrp_result_r15 = 0;
int8_t rsrq_result_r15 = -30;
};
struct meas_result_neigh_cells_r15_c_ {
struct types_opts {
enum options { meas_result_idle_list_eutra_r15, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
types type() const { return types::meas_result_idle_list_eutra_r15; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_result_idle_list_eutra_r15_l& meas_result_idle_list_eutra_r15() { return c; }
const meas_result_idle_list_eutra_r15_l& meas_result_idle_list_eutra_r15() const { return c; }
private:
meas_result_idle_list_eutra_r15_l c;
};
// member variables
bool ext = false;
bool meas_result_neigh_cells_r15_present = false;
meas_result_serving_cell_r15_s_ meas_result_serving_cell_r15;
meas_result_neigh_cells_r15_c_ meas_result_neigh_cells_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultListGERAN ::= SEQUENCE (SIZE (1..8)) OF MeasResultGERAN
using meas_result_list_geran_l = dyn_array<meas_result_geran_s>;
// MeasResultMBSFN-r12 ::= SEQUENCE
struct meas_result_mbsfn_r12_s {
struct mbsfn_area_r12_s_ {
uint16_t mbsfn_area_id_r12 = 0;
uint32_t carrier_freq_r12 = 0;
};
// member variables
bool ext = false;
bool sig_bler_result_r12_present = false;
bool data_bler_mch_result_list_r12_present = false;
mbsfn_area_r12_s_ mbsfn_area_r12;
uint8_t rsrp_result_mbsfn_r12 = 0;
uint8_t rsrq_result_mbsfn_r12 = 0;
bler_result_r12_s sig_bler_result_r12;
data_bler_mch_result_list_r12_l data_bler_mch_result_list_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultSSB-Index-r15 ::= SEQUENCE
struct meas_result_ssb_idx_r15_s {
bool ext = false;
bool meas_result_ssb_idx_r15_present = false;
uint8_t ssb_idx_r15 = 0;
meas_result_nr_r15_s meas_result_ssb_idx_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PLMN-IdentityInfoListNR-r15 ::= SEQUENCE (SIZE (1..12)) OF PLMN-IdentityInfoNR-r15
using plmn_id_info_list_nr_r15_l = dyn_array<plmn_id_info_nr_r15_s>;
// PerCC-GapIndication-r14 ::= SEQUENCE
struct per_cc_gap_ind_r14_s {
struct gap_ind_r14_opts {
enum options { gap, ncsg, nogap_no_ncsg, nulltype } value;
std::string to_string() const;
};
typedef enumerated<gap_ind_r14_opts> gap_ind_r14_e_;
// member variables
uint8_t serv_cell_id_r14 = 0;
gap_ind_r14_e_ gap_ind_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfigurationComplete-v1530-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1530_ies_s {
bool log_meas_available_bt_r15_present = false;
bool log_meas_available_wlan_r15_present = false;
bool flight_path_info_available_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1430-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1430_ies_s {
bool dcn_id_r14_present = false;
bool non_crit_ext_present = false;
uint32_t dcn_id_r14 = 0;
rrc_conn_setup_complete_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VictimSystemType-r11 ::= SEQUENCE
struct victim_sys_type_r11_s {
bool gps_r11_present = false;
bool glonass_r11_present = false;
bool bds_r11_present = false;
bool galileo_r11_present = false;
bool wlan_r11_present = false;
bool bluetooth_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VisitedCellInfo-r12 ::= SEQUENCE
struct visited_cell_info_r12_s {
struct visited_cell_id_r12_c_ {
struct pci_arfcn_r12_s_ {
uint16_t pci_r12 = 0;
uint32_t carrier_freq_r12 = 0;
};
struct types_opts {
enum options { cell_global_id_r12, pci_arfcn_r12, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
visited_cell_id_r12_c_() = default;
visited_cell_id_r12_c_(const visited_cell_id_r12_c_& other);
visited_cell_id_r12_c_& operator=(const visited_cell_id_r12_c_& other);
~visited_cell_id_r12_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cell_global_id_eutra_s& cell_global_id_r12()
{
assert_choice_type("cellGlobalId-r12", type_.to_string(), "visitedCellId-r12");
return c.get<cell_global_id_eutra_s>();
}
pci_arfcn_r12_s_& pci_arfcn_r12()
{
assert_choice_type("pci-arfcn-r12", type_.to_string(), "visitedCellId-r12");
return c.get<pci_arfcn_r12_s_>();
}
const cell_global_id_eutra_s& cell_global_id_r12() const
{
assert_choice_type("cellGlobalId-r12", type_.to_string(), "visitedCellId-r12");
return c.get<cell_global_id_eutra_s>();
}
const pci_arfcn_r12_s_& pci_arfcn_r12() const
{
assert_choice_type("pci-arfcn-r12", type_.to_string(), "visitedCellId-r12");
return c.get<pci_arfcn_r12_s_>();
}
cell_global_id_eutra_s& set_cell_global_id_r12()
{
set(types::cell_global_id_r12);
return c.get<cell_global_id_eutra_s>();
}
pci_arfcn_r12_s_& set_pci_arfcn_r12()
{
set(types::pci_arfcn_r12);
return c.get<pci_arfcn_r12_s_>();
}
private:
types type_;
choice_buffer_t<cell_global_id_eutra_s, pci_arfcn_r12_s_> c;
void destroy_();
};
// member variables
bool ext = false;
bool visited_cell_id_r12_present = false;
visited_cell_id_r12_c_ visited_cell_id_r12;
uint16_t time_spent_r12 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WayPointLocation-r15 ::= SEQUENCE
struct way_point_location_r15_s {
bool time_stamp_r15_present = false;
location_info_r10_s way_point_location_r15;
fixed_bitstring<48> time_stamp_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreqCombInfoMRDC-r15 ::= SEQUENCE
struct affected_carrier_freq_comb_info_mrdc_r15_s {
struct interference_direction_mrdc_r15_opts {
enum options { eutra_nr, nr, other, eutra_nr_other, nr_other, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<interference_direction_mrdc_r15_opts> interference_direction_mrdc_r15_e_;
struct affected_carrier_freq_comb_mrdc_r15_s_ {
bool affected_carrier_freq_comb_eutra_r15_present = false;
affected_carrier_freq_comb_r15_l affected_carrier_freq_comb_eutra_r15;
affected_carrier_freq_comb_nr_r15_l affected_carrier_freq_comb_nr_r15;
};
// member variables
bool affected_carrier_freq_comb_mrdc_r15_present = false;
victim_sys_type_r11_s victim_sys_type_r15;
interference_direction_mrdc_r15_e_ interference_direction_mrdc_r15;
affected_carrier_freq_comb_mrdc_r15_s_ affected_carrier_freq_comb_mrdc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CGI-InfoNR-r15 ::= SEQUENCE
struct cgi_info_nr_r15_s {
struct no_sib1_r15_s_ {
uint8_t ssb_subcarrier_offset_r15 = 0;
uint16_t pdcch_cfg_sib1_r15 = 0;
};
// member variables
bool ext = false;
bool plmn_id_info_list_r15_present = false;
bool freq_band_list_minus15_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;
no_sib1_r15_s_ no_sib1_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FlightPathInfoReport-r15 ::= SEQUENCE
struct flight_path_info_report_r15_s {
using flight_path_r15_l_ = dyn_array<way_point_location_r15_s>;
// member variables
bool flight_path_r15_present = false;
bool non_crit_ext_present = false;
flight_path_r15_l_ flight_path_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LogMeasResultListBT-r15 ::= SEQUENCE (SIZE (1..32)) OF LogMeasResultBT-r15
using log_meas_result_list_bt_r15_l = dyn_array<log_meas_result_bt_r15_s>;
// LogMeasResultListWLAN-r15 ::= SEQUENCE (SIZE (1..32)) OF LogMeasResultWLAN-r15
using log_meas_result_list_wlan_r15_l = dyn_array<log_meas_result_wlan_r15_s>;
// MeasResultList2CDMA2000-r9 ::= SEQUENCE (SIZE (1..8)) OF MeasResult2CDMA2000-r9
using meas_result_list2_cdma2000_r9_l = dyn_array<meas_result2_cdma2000_r9_s>;
// MeasResultList2EUTRA-r9 ::= SEQUENCE (SIZE (1..8)) OF MeasResult2EUTRA-r9
using meas_result_list2_eutra_r9_l = dyn_array<meas_result2_eutra_r9_s>;
// MeasResultList2EUTRA-v1250 ::= SEQUENCE (SIZE (1..8)) OF MeasResult2EUTRA-v1250
using meas_result_list2_eutra_v1250_l = dyn_array<meas_result2_eutra_v1250_s>;
// MeasResultList2EUTRA-v9e0 ::= SEQUENCE (SIZE (1..8)) OF MeasResult2EUTRA-v9e0
using meas_result_list2_eutra_v9e0_l = dyn_array<meas_result2_eutra_v9e0_s>;
// MeasResultList2GERAN-r10 ::= SEQUENCE (SIZE (1..3)) OF MeasResultListGERAN
using meas_result_list2_geran_r10_l = dyn_array<meas_result_list_geran_l>;
// MeasResultList2UTRA-r9 ::= SEQUENCE (SIZE (1..8)) OF MeasResult2UTRA-r9
using meas_result_list2_utra_r9_l = dyn_array<meas_result2_utra_r9_s>;
// MeasResultListIdle-r15 ::= SEQUENCE (SIZE (1..3)) OF MeasResultIdle-r15
using meas_result_list_idle_r15_l = dyn_array<meas_result_idle_r15_s>;
// MeasResultListMBSFN-r12 ::= SEQUENCE (SIZE (1..8)) OF MeasResultMBSFN-r12
using meas_result_list_mbsfn_r12_l = dyn_array<meas_result_mbsfn_r12_s>;
// MeasResultSSB-IndexList-r15 ::= SEQUENCE (SIZE (1..32)) OF MeasResultSSB-Index-r15
using meas_result_ssb_idx_list_r15_l = dyn_array<meas_result_ssb_idx_r15_s>;
// PerCC-GapIndicationList-r14 ::= SEQUENCE (SIZE (1..32)) OF PerCC-GapIndication-r14
using per_cc_gap_ind_list_r14_l = dyn_array<per_cc_gap_ind_r14_s>;
// RRCConnectionReconfigurationComplete-v1510-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1510_ies_s {
bool scg_cfg_resp_nr_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring scg_cfg_resp_nr_r15;
rrc_conn_recfg_complete_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v1530-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v1530_ies_s {
bool log_meas_available_bt_r15_present = false;
bool log_meas_available_wlan_r15_present = false;
bool flight_path_info_available_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1330-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1330_ies_s {
bool ue_ce_need_ul_gaps_r13_present = false;
bool non_crit_ext_present = false;
rrc_conn_setup_complete_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VisitedCellInfoList-r12 ::= SEQUENCE (SIZE (1..16)) OF VisitedCellInfo-r12
using visited_cell_info_list_r12_l = dyn_array<visited_cell_info_r12_s>;
// LogMeasInfo-r10 ::= SEQUENCE
struct log_meas_info_r10_s {
struct meas_result_serv_cell_r10_s_ {
uint8_t rsrp_result_r10 = 0;
uint8_t rsrq_result_r10 = 0;
};
struct meas_result_neigh_cells_r10_s_ {
bool meas_result_list_eutra_r10_present = false;
bool meas_result_list_utra_r10_present = false;
bool meas_result_list_geran_r10_present = false;
bool meas_result_list_cdma2000_r10_present = false;
meas_result_list2_eutra_r9_l meas_result_list_eutra_r10;
meas_result_list2_utra_r9_l meas_result_list_utra_r10;
meas_result_list2_geran_r10_l meas_result_list_geran_r10;
meas_result_list2_cdma2000_r9_l meas_result_list_cdma2000_r10;
};
// member variables
bool ext = false;
bool location_info_r10_present = false;
bool meas_result_neigh_cells_r10_present = false;
location_info_r10_s location_info_r10;
uint16_t relative_time_stamp_r10 = 0;
cell_global_id_eutra_s serv_cell_id_r10;
meas_result_serv_cell_r10_s_ meas_result_serv_cell_r10;
meas_result_neigh_cells_r10_s_ meas_result_neigh_cells_r10;
// ...
// group 0
copy_ptr<meas_result_list2_eutra_v9e0_l> meas_result_list_eutra_v1090;
// group 1
bool meas_result_serv_cell_v1250_present = false;
copy_ptr<meas_result_list_mbsfn_r12_l> meas_result_list_mbsfn_r12;
int8_t meas_result_serv_cell_v1250 = -30;
copy_ptr<rsrq_type_r12_s> serv_cell_rsrq_type_r12;
copy_ptr<meas_result_list2_eutra_v1250_l> meas_result_list_eutra_v1250;
// group 2
bool in_dev_coex_detected_r13_present = false;
// group 3
bool meas_result_serv_cell_v1360_present = false;
int8_t meas_result_serv_cell_v1360 = -17;
// group 4
copy_ptr<log_meas_result_list_bt_r15_l> log_meas_result_list_bt_r15;
copy_ptr<log_meas_result_list_wlan_r15_l> log_meas_result_list_wlan_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MRDC-AssistanceInfo-r15 ::= SEQUENCE
struct mrdc_assist_info_r15_s {
using affected_carrier_freq_comb_info_list_mrdc_r15_l_ = dyn_array<affected_carrier_freq_comb_info_mrdc_r15_s>;
// member variables
bool ext = false;
affected_carrier_freq_comb_info_list_mrdc_r15_l_ affected_carrier_freq_comb_info_list_mrdc_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultCellNR-r15 ::= SEQUENCE
struct meas_result_cell_nr_r15_s {
bool ext = false;
bool meas_result_rs_idx_list_r15_present = false;
uint16_t pci_r15 = 0;
meas_result_nr_r15_s meas_result_cell_r15;
meas_result_ssb_idx_list_r15_l meas_result_rs_idx_list_r15;
// ...
// group 0
copy_ptr<cgi_info_nr_r15_s> cgi_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
typedef visited_cell_info_list_r12_l mob_history_report_r12_l;
// RRCConnectionReconfigurationComplete-v1430-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1430_ies_s {
bool per_cc_gap_ind_list_r14_present = false;
bool num_freq_effective_r14_present = false;
bool num_freq_effective_reduced_r14_present = false;
bool non_crit_ext_present = false;
per_cc_gap_ind_list_r14_l per_cc_gap_ind_list_r14;
uint8_t num_freq_effective_r14 = 1;
uint8_t num_freq_effective_reduced_r14 = 1;
rrc_conn_recfg_complete_v1510_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v1250-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v1250_ies_s {
bool log_meas_available_mbsfn_r12_present = false;
bool non_crit_ext_present = false;
rrc_conn_reest_complete_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1320-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1320_ies_s {
bool ce_mode_b_r13_present = false;
bool s_tmsi_r13_present = false;
bool attach_without_pdn_connect_r13_present = false;
bool up_cio_t_eps_optim_r13_present = false;
bool cp_cio_t_eps_optim_r13_present = false;
bool non_crit_ext_present = false;
s_tmsi_s s_tmsi_r13;
rrc_conn_setup_complete_v1330_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TrafficPatternInfo-v1530 ::= SEQUENCE
struct traffic_pattern_info_v1530_s {
bool traffic_dest_r15_present = false;
bool reliability_info_sl_r15_present = false;
fixed_bitstring<24> traffic_dest_r15;
uint8_t reliability_info_sl_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-v1530-IEs ::= SEQUENCE
struct ue_info_resp_v1530_ies_s {
bool meas_result_list_idle_r15_present = false;
bool flight_path_info_report_r15_present = false;
bool non_crit_ext_present = false;
meas_result_list_idle_r15_l meas_result_list_idle_r15;
flight_path_info_report_r15_s flight_path_info_report_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreq-v1310 ::= SEQUENCE
struct affected_carrier_freq_v1310_s {
bool carrier_freq_v1310_present = false;
uint8_t carrier_freq_v1310 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreqComb-r13 ::= SEQUENCE (SIZE (2..32)) OF INTEGER (1..64)
using affected_carrier_freq_comb_r13_l = bounded_array<uint8_t, 32>;
// ConnEstFailReport-r11 ::= SEQUENCE
struct conn_est_fail_report_r11_s {
struct meas_result_failed_cell_r11_s_ {
bool rsrq_result_r11_present = false;
uint8_t rsrp_result_r11 = 0;
uint8_t rsrq_result_r11 = 0;
};
struct meas_result_neigh_cells_r11_s_ {
bool meas_result_list_eutra_r11_present = false;
bool meas_result_list_utra_r11_present = false;
bool meas_result_list_geran_r11_present = false;
bool meas_results_cdma2000_r11_present = false;
meas_result_list2_eutra_r9_l meas_result_list_eutra_r11;
meas_result_list2_utra_r9_l meas_result_list_utra_r11;
meas_result_list_geran_l meas_result_list_geran_r11;
meas_result_list2_cdma2000_r9_l meas_results_cdma2000_r11;
};
// member variables
bool ext = false;
bool location_info_r11_present = false;
bool meas_result_neigh_cells_r11_present = false;
bool meas_result_list_eutra_v1130_present = false;
cell_global_id_eutra_s failed_cell_id_r11;
location_info_r10_s location_info_r11;
meas_result_failed_cell_r11_s_ meas_result_failed_cell_r11;
meas_result_neigh_cells_r11_s_ meas_result_neigh_cells_r11;
uint8_t nof_preambs_sent_r11 = 1;
bool contention_detected_r11 = false;
bool max_tx_pwr_reached_r11 = false;
uint32_t time_since_fail_r11 = 0;
meas_result_list2_eutra_v9e0_l meas_result_list_eutra_v1130;
// ...
// group 0
bool meas_result_failed_cell_v1250_present = false;
int8_t meas_result_failed_cell_v1250 = -30;
copy_ptr<rsrq_type_r12_s> failed_cell_rsrq_type_r12;
copy_ptr<meas_result_list2_eutra_v1250_l> meas_result_list_eutra_v1250;
// group 1
bool meas_result_failed_cell_v1360_present = false;
int8_t meas_result_failed_cell_v1360 = -17;
// group 2
copy_ptr<log_meas_result_list_bt_r15_l> log_meas_result_list_bt_r15;
copy_ptr<log_meas_result_list_wlan_r15_l> log_meas_result_list_wlan_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-CountInfo ::= SEQUENCE
struct drb_count_info_s {
uint8_t drb_id = 1;
uint64_t count_ul = 0;
uint64_t count_dl = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InDeviceCoexIndication-v1530-IEs ::= SEQUENCE
struct in_dev_coex_ind_v1530_ies_s {
bool mrdc_assist_info_r15_present = false;
bool non_crit_ext_present = false;
mrdc_assist_info_r15_s mrdc_assist_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LogMeasInfoList-r10 ::= SEQUENCE (SIZE (1..520)) OF LogMeasInfo-r10
using log_meas_info_list_r10_l = dyn_array<log_meas_info_r10_s>;
// MeasResultCellListNR-r15 ::= SEQUENCE (SIZE (1..8)) OF MeasResultCellNR-r15
using meas_result_cell_list_nr_r15_l = dyn_array<meas_result_cell_nr_r15_s>;
// RRCConnectionReconfigurationComplete-v1250-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1250_ies_s {
bool log_meas_available_mbsfn_r12_present = false;
bool non_crit_ext_present = false;
rrc_conn_recfg_complete_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v1130-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v1130_ies_s {
bool conn_est_fail_info_available_r11_present = false;
bool non_crit_ext_present = false;
rrc_conn_reest_complete_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1250-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1250_ies_s {
struct mob_state_r12_opts {
enum options { normal, medium, high, spare, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mob_state_r12_opts> mob_state_r12_e_;
// member variables
bool mob_state_r12_present = false;
bool mob_history_avail_r12_present = false;
bool log_meas_available_mbsfn_r12_present = false;
bool non_crit_ext_present = false;
mob_state_r12_e_ mob_state_r12;
rrc_conn_setup_complete_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-CommTxResourceReq-r14 ::= SEQUENCE
struct sl_v2x_comm_tx_res_req_r14_s {
bool carrier_freq_comm_tx_r14_present = false;
bool v2x_type_tx_sync_r14_present = false;
bool v2x_dest_info_list_r14_present = false;
uint8_t carrier_freq_comm_tx_r14 = 0;
sl_type_tx_sync_r14_e v2x_type_tx_sync_r14;
sl_dest_info_list_r12_l v2x_dest_info_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TrafficPatternInfoList-v1530 ::= SEQUENCE (SIZE (1..8)) OF TrafficPatternInfo-v1530
using traffic_pattern_info_list_v1530_l = dyn_array<traffic_pattern_info_v1530_s>;
// UEInformationResponse-v1250-IEs ::= SEQUENCE
struct ue_info_resp_v1250_ies_s {
bool mob_history_report_r12_present = false;
bool non_crit_ext_present = false;
mob_history_report_r12_l mob_history_report_r12;
ue_info_resp_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreqComb-r11 ::= SEQUENCE (SIZE (2..5)) OF INTEGER (1..32)
using affected_carrier_freq_comb_r11_l = bounded_array<uint8_t, 5>;
// AffectedCarrierFreqCombList-r13 ::= SEQUENCE (SIZE (1..128)) OF AffectedCarrierFreqComb-r13
using affected_carrier_freq_comb_list_r13_l = dyn_array<affected_carrier_freq_comb_r13_l>;
// AffectedCarrierFreqList-v1310 ::= SEQUENCE (SIZE (1..32)) OF AffectedCarrierFreq-v1310
using affected_carrier_freq_list_v1310_l = dyn_array<affected_carrier_freq_v1310_s>;
// 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(bit_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_ {
struct types_opts {
enum options { sf_cfg0_r11, sf_cfg1_minus5_r11, sf_cfg6_r11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
sf_pattern_tdd_r11_c_() = default;
sf_pattern_tdd_r11_c_(const sf_pattern_tdd_r11_c_& other);
sf_pattern_tdd_r11_c_& operator=(const sf_pattern_tdd_r11_c_& other);
~sf_pattern_tdd_r11_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<70>& sf_cfg0_r11()
{
assert_choice_type("subframeConfig0-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<70> >();
}
fixed_bitstring<10>& sf_cfg1_minus5_r11()
{
assert_choice_type("subframeConfig1-5-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<60>& sf_cfg6_r11()
{
assert_choice_type("subframeConfig6-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<60> >();
}
const fixed_bitstring<70>& sf_cfg0_r11() const
{
assert_choice_type("subframeConfig0-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<70> >();
}
const fixed_bitstring<10>& sf_cfg1_minus5_r11() const
{
assert_choice_type("subframeConfig1-5-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<10> >();
}
const fixed_bitstring<60>& sf_cfg6_r11() const
{
assert_choice_type("subframeConfig6-r11", type_.to_string(), "subframePatternTDD-r11");
return c.get<fixed_bitstring<60> >();
}
fixed_bitstring<70>& set_sf_cfg0_r11()
{
set(types::sf_cfg0_r11);
return c.get<fixed_bitstring<70> >();
}
fixed_bitstring<10>& set_sf_cfg1_minus5_r11()
{
set(types::sf_cfg1_minus5_r11);
return c.get<fixed_bitstring<10> >();
}
fixed_bitstring<60>& set_sf_cfg6_r11()
{
set(types::sf_cfg6_r11);
return c.get<fixed_bitstring<60> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<70> > c;
void destroy_();
};
struct types_opts {
enum options { sf_pattern_fdd_r11, sf_pattern_tdd_r11, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
idc_sf_pattern_r11_c() = default;
idc_sf_pattern_r11_c(const idc_sf_pattern_r11_c& other);
idc_sf_pattern_r11_c& operator=(const idc_sf_pattern_r11_c& other);
~idc_sf_pattern_r11_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<4>& sf_pattern_fdd_r11()
{
assert_choice_type("subframePatternFDD-r11", type_.to_string(), "IDC-SubframePattern-r11");
return c.get<fixed_bitstring<4> >();
}
sf_pattern_tdd_r11_c_& sf_pattern_tdd_r11()
{
assert_choice_type("subframePatternTDD-r11", type_.to_string(), "IDC-SubframePattern-r11");
return c.get<sf_pattern_tdd_r11_c_>();
}
const fixed_bitstring<4>& sf_pattern_fdd_r11() const
{
assert_choice_type("subframePatternFDD-r11", type_.to_string(), "IDC-SubframePattern-r11");
return c.get<fixed_bitstring<4> >();
}
const sf_pattern_tdd_r11_c_& sf_pattern_tdd_r11() const
{
assert_choice_type("subframePatternTDD-r11", type_.to_string(), "IDC-SubframePattern-r11");
return c.get<sf_pattern_tdd_r11_c_>();
}
fixed_bitstring<4>& set_sf_pattern_fdd_r11()
{
set(types::sf_pattern_fdd_r11);
return c.get<fixed_bitstring<4> >();
}
sf_pattern_tdd_r11_c_& set_sf_pattern_tdd_r11()
{
set(types::sf_pattern_tdd_r11);
return c.get<sf_pattern_tdd_r11_c_>();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<4>, sf_pattern_tdd_r11_c_> c;
void destroy_();
};
// InDeviceCoexIndication-v1360-IEs ::= SEQUENCE
struct in_dev_coex_ind_v1360_ies_s {
bool hardware_sharing_problem_r13_present = false;
bool non_crit_ext_present = false;
in_dev_coex_ind_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LogMeasReport-r10 ::= SEQUENCE
struct log_meas_report_r10_s {
bool ext = false;
bool log_meas_available_r10_present = false;
fixed_bitstring<48> absolute_time_stamp_r10;
trace_ref_r10_s trace_ref_r10;
fixed_octstring<2> trace_recording_session_ref_r10;
fixed_octstring<1> tce_id_r10;
log_meas_info_list_r10_l log_meas_info_list_r10;
// ...
// group 0
bool log_meas_available_bt_r15_present = false;
bool log_meas_available_wlan_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-ServiceInfo-r13 ::= SEQUENCE
struct mbms_service_info_r13_s {
tmgi_r9_s tmgi_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultCBR-r14 ::= SEQUENCE
struct meas_result_cbr_r14_s {
bool cbr_pscch_r14_present = false;
uint8_t pool_id_r14 = 1;
uint8_t cbr_pssch_r14 = 0;
uint8_t cbr_pscch_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultCSI-RS-r12 ::= SEQUENCE
struct meas_result_csi_rs_r12_s {
bool ext = false;
uint8_t meas_csi_rs_id_r12 = 1;
uint8_t csi_rsrp_result_r12 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultCellSFTD-r15 ::= SEQUENCE
struct meas_result_cell_sftd_r15_s {
bool rsrp_result_r15_present = false;
uint16_t pci_r15 = 0;
uint16_t sfn_offset_result_r15 = 0;
int16_t frame_boundary_offset_result_r15 = -30720;
uint8_t rsrp_result_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultFreqFailNR-r15 ::= SEQUENCE
struct meas_result_freq_fail_nr_r15_s {
bool ext = false;
bool meas_result_cell_list_r15_present = false;
uint32_t carrier_freq_r15 = 0;
meas_result_cell_list_nr_r15_l meas_result_cell_list_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultServFreq-r10 ::= SEQUENCE
struct meas_result_serv_freq_r10_s {
struct meas_result_scell_r10_s_ {
uint8_t rsrp_result_scell_r10 = 0;
uint8_t rsrq_result_scell_r10 = 0;
};
struct meas_result_best_neigh_cell_r10_s_ {
uint16_t pci_r10 = 0;
uint8_t rsrp_result_ncell_r10 = 0;
uint8_t rsrq_result_ncell_r10 = 0;
};
struct meas_result_scell_v1310_s_ {
uint8_t rs_sinr_result_r13 = 0;
};
struct meas_result_best_neigh_cell_v1310_s_ {
uint8_t rs_sinr_result_r13 = 0;
};
// member variables
bool ext = false;
bool meas_result_scell_r10_present = false;
bool meas_result_best_neigh_cell_r10_present = false;
uint8_t serv_freq_id_r10 = 0;
meas_result_scell_r10_s_ meas_result_scell_r10;
meas_result_best_neigh_cell_r10_s_ meas_result_best_neigh_cell_r10;
// ...
// group 0
bool meas_result_scell_v1250_present = false;
bool meas_result_best_neigh_cell_v1250_present = false;
int8_t meas_result_scell_v1250 = -30;
int8_t meas_result_best_neigh_cell_v1250 = -30;
// group 1
copy_ptr<meas_result_scell_v1310_s_> meas_result_scell_v1310;
copy_ptr<meas_result_best_neigh_cell_v1310_s_> meas_result_best_neigh_cell_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultServFreq-r13 ::= SEQUENCE
struct meas_result_serv_freq_r13_s {
struct meas_result_scell_r13_s_ {
bool rs_sinr_result_r13_present = false;
uint8_t rsrp_result_scell_r13 = 0;
int8_t rsrq_result_scell_r13 = -30;
uint8_t rs_sinr_result_r13 = 0;
};
struct meas_result_best_neigh_cell_r13_s_ {
bool rs_sinr_result_r13_present = false;
uint16_t pci_r13 = 0;
uint8_t rsrp_result_ncell_r13 = 0;
int8_t rsrq_result_ncell_r13 = -30;
uint8_t rs_sinr_result_r13 = 0;
};
struct meas_result_best_neigh_cell_v1360_s_ {
int8_t rsrp_result_ncell_v1360 = -17;
};
// member variables
bool ext = false;
bool meas_result_scell_r13_present = false;
bool meas_result_best_neigh_cell_r13_present = false;
uint8_t serv_freq_id_r13 = 0;
meas_result_scell_r13_s_ meas_result_scell_r13;
meas_result_best_neigh_cell_r13_s_ meas_result_best_neigh_cell_r13;
// ...
// group 0
copy_ptr<meas_result_best_neigh_cell_v1360_s_> meas_result_best_neigh_cell_v1360;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultServFreqNR-r15 ::= SEQUENCE
struct meas_result_serv_freq_nr_r15_s {
bool ext = false;
bool meas_result_scell_r15_present = false;
bool meas_result_best_neigh_cell_r15_present = false;
uint32_t carrier_freq_r15 = 0;
meas_result_cell_nr_r15_s meas_result_scell_r15;
meas_result_cell_nr_r15_s meas_result_best_neigh_cell_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultWLAN-r13 ::= SEQUENCE
struct meas_result_wlan_r13_s {
bool ext = false;
bool carrier_info_wlan_r13_present = false;
bool band_wlan_r13_present = false;
bool available_admission_capacity_wlan_r13_present = false;
bool backhaul_dl_bw_wlan_r13_present = false;
bool backhaul_ul_bw_wlan_r13_present = false;
bool ch_utilization_wlan_r13_present = false;
bool station_count_wlan_r13_present = false;
bool connected_wlan_r13_present = false;
wlan_ids_r12_s wlan_ids_r13;
wlan_carrier_info_r13_s carrier_info_wlan_r13;
wlan_band_ind_r13_e band_wlan_r13;
uint8_t rssi_wlan_r13 = 0;
uint16_t available_admission_capacity_wlan_r13 = 0;
wlan_backhaul_rate_r12_e backhaul_dl_bw_wlan_r13;
wlan_backhaul_rate_r12_e backhaul_ul_bw_wlan_r13;
uint16_t ch_utilization_wlan_r13 = 0;
uint32_t station_count_wlan_r13 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// OverheatingAssistance-r14 ::= SEQUENCE
struct overheat_assist_r14_s {
struct reduced_ue_category_s_ {
uint8_t reduced_ue_category_dl = 0;
uint8_t reduced_ue_category_ul = 0;
};
struct reduced_max_ccs_s_ {
uint8_t reduced_ccs_dl = 0;
uint8_t reduced_ccs_ul = 0;
};
// member variables
bool reduced_ue_category_present = false;
bool reduced_max_ccs_present = false;
reduced_ue_category_s_ reduced_ue_category;
reduced_max_ccs_s_ reduced_max_ccs;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLF-Report-v9e0 ::= SEQUENCE
struct rlf_report_v9e0_s {
meas_result_list2_eutra_v9e0_l meas_result_list_eutra_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfigurationComplete-v1130-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1130_ies_s {
bool conn_est_fail_info_available_r11_present = false;
bool non_crit_ext_present = false;
rrc_conn_recfg_complete_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v1020-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v1020_ies_s {
bool log_meas_available_r10_present = false;
bool non_crit_ext_present = false;
rrc_conn_reest_complete_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1130-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1130_ies_s {
bool conn_est_fail_info_available_r11_present = false;
bool non_crit_ext_present = false;
rrc_conn_setup_complete_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscSysInfoReport-r13 ::= SEQUENCE
struct sl_disc_sys_info_report_r13_s {
struct disc_cell_sel_info_r13_s_ {
bool q_rx_lev_min_offset_r13_present = false;
int8_t q_rx_lev_min_r13 = -70;
uint8_t q_rx_lev_min_offset_r13 = 1;
};
struct cell_resel_info_r13_s_ {
struct q_hyst_r13_opts {
enum options {
db0,
db1,
db2,
db3,
db4,
db5,
db6,
db8,
db10,
db12,
db14,
db16,
db18,
db20,
db22,
db24,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<q_hyst_r13_opts> q_hyst_r13_e_;
// member variables
q_hyst_r13_e_ q_hyst_r13;
int8_t q_rx_lev_min_r13 = -70;
uint8_t t_resel_eutra_r13 = 0;
};
struct freq_info_r13_s_ {
struct ul_bw_r13_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ul_bw_r13_opts> ul_bw_r13_e_;
// member variables
bool ul_carrier_freq_r13_present = false;
bool ul_bw_r13_present = false;
bool add_spec_emission_r13_present = false;
uint32_t ul_carrier_freq_r13 = 0;
ul_bw_r13_e_ ul_bw_r13;
uint8_t add_spec_emission_r13 = 1;
};
struct freq_info_v1370_s_ {
uint16_t add_spec_emission_v1370 = 33;
};
// member variables
bool ext = false;
bool plmn_id_list_r13_present = false;
bool cell_id_minus13_present = false;
bool carrier_freq_info_minus13_present = false;
bool disc_rx_res_r13_present = false;
bool disc_tx_pool_common_r13_present = false;
bool disc_tx_pwr_info_r13_present = false;
bool disc_sync_cfg_r13_present = false;
bool disc_cell_sel_info_r13_present = false;
bool cell_resel_info_r13_present = false;
bool tdd_cfg_r13_present = false;
bool freq_info_r13_present = false;
bool p_max_r13_present = false;
bool ref_sig_pwr_r13_present = false;
plmn_id_list_l plmn_id_list_r13;
fixed_bitstring<28> cell_id_minus13;
uint32_t carrier_freq_info_minus13 = 0;
sl_disc_rx_pool_list_r12_l disc_rx_res_r13;
sl_disc_tx_pool_list_r12_l disc_tx_pool_common_r13;
sl_disc_tx_pwr_info_list_r12_l disc_tx_pwr_info_r13;
sl_sync_cfg_nfreq_r13_s disc_sync_cfg_r13;
disc_cell_sel_info_r13_s_ disc_cell_sel_info_r13;
cell_resel_info_r13_s_ cell_resel_info_r13;
tdd_cfg_s tdd_cfg_r13;
freq_info_r13_s_ freq_info_r13;
int8_t p_max_r13 = -30;
int8_t ref_sig_pwr_r13 = -60;
// ...
// group 0
copy_ptr<freq_info_v1370_s_> freq_info_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscTxResourceReq-r13 ::= SEQUENCE
struct sl_disc_tx_res_req_r13_s {
bool carrier_freq_disc_tx_r13_present = false;
uint8_t carrier_freq_disc_tx_r13 = 1;
uint8_t disc_tx_res_req_r13 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-GapFreqInfo-r13 ::= SEQUENCE
struct sl_gap_freq_info_r13_s {
bool carrier_freq_r13_present = false;
uint32_t carrier_freq_r13 = 0;
sl_gap_pattern_list_r13_l gap_pattern_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-CommFreqList-r14 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..7)
using sl_v2x_comm_freq_list_r14_l = bounded_array<uint8_t, 8>;
// SL-V2X-CommTxFreqList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-V2X-CommTxResourceReq-r14
using sl_v2x_comm_tx_freq_list_r14_l = dyn_array<sl_v2x_comm_tx_res_req_r14_s>;
// SensingResult-r15 ::= SEQUENCE
struct sensing_result_r15_s {
uint16_t res_idx_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SidelinkUEInformation-v1530-IEs ::= SEQUENCE
struct sidelink_ue_info_v1530_ies_s {
bool reliability_info_list_sl_r15_present = false;
bool non_crit_ext_present = false;
sl_reliability_list_r15_l reliability_info_list_sl_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TrafficPatternInfo-r14 ::= SEQUENCE
struct traffic_pattern_info_r14_s {
struct traffic_periodicity_r14_opts {
enum options { sf20, sf50, sf100, sf200, sf300, sf400, sf500, sf600, sf700, sf800, sf900, sf1000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<traffic_periodicity_r14_opts> traffic_periodicity_r14_e_;
// member variables
bool prio_info_sl_r14_present = false;
bool lc_ch_id_ul_r14_present = false;
traffic_periodicity_r14_e_ traffic_periodicity_r14;
uint16_t timing_offset_r14 = 0;
uint8_t prio_info_sl_r14 = 1;
uint8_t lc_ch_id_ul_r14 = 3;
fixed_bitstring<6> msg_size_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-RadioPagingInfo-r12 ::= SEQUENCE
struct ue_radio_paging_info_r12_s {
struct wake_up_signal_min_gap_e_drx_r15_opts {
enum options { ms40, ms240, ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<wake_up_signal_min_gap_e_drx_r15_opts> wake_up_signal_min_gap_e_drx_r15_e_;
struct wake_up_signal_min_gap_e_drx_tdd_r15_opts {
enum options { ms40, ms240, ms1000, ms2000, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<wake_up_signal_min_gap_e_drx_tdd_r15_opts> wake_up_signal_min_gap_e_drx_tdd_r15_e_;
// member variables
bool ext = false;
bool ue_category_v1250_present = false;
uint8_t ue_category_v1250 = 0;
// ...
// group 0
bool ue_category_dl_v1310_present = false;
bool ce_mode_a_r13_present = false;
bool ce_mode_b_r13_present = false;
// group 1
bool wake_up_signal_r15_present = false;
bool wake_up_signal_tdd_r15_present = false;
bool wake_up_signal_min_gap_e_drx_r15_present = false;
bool wake_up_signal_min_gap_e_drx_tdd_r15_present = false;
wake_up_signal_min_gap_e_drx_r15_e_ wake_up_signal_min_gap_e_drx_r15;
wake_up_signal_min_gap_e_drx_tdd_r15_e_ wake_up_signal_min_gap_e_drx_tdd_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEAssistanceInformation-v1530-IEs ::= SEQUENCE
struct ueassist_info_v1530_ies_s {
struct sps_assist_info_v1530_s_ {
traffic_pattern_info_list_v1530_l traffic_pattern_info_list_sl_v1530;
};
// member variables
bool sps_assist_info_v1530_present = false;
bool non_crit_ext_present = false;
sps_assist_info_v1530_s_ sps_assist_info_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-v1130-IEs ::= SEQUENCE
struct ue_info_resp_v1130_ies_s {
bool conn_est_fail_report_r11_present = false;
bool non_crit_ext_present = false;
conn_est_fail_report_r11_s conn_est_fail_report_r11;
ue_info_resp_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-PDCP-DelayResult-r13 ::= SEQUENCE
struct ul_pdcp_delay_result_r13_s {
struct qci_id_r13_opts {
enum options { qci1, qci2, qci3, qci4, spare4, spare3, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<qci_id_r13_opts> qci_id_r13_e_;
// member variables
bool ext = false;
qci_id_r13_e_ qci_id_r13;
uint8_t excess_delay_r13 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreq-r11 ::= SEQUENCE
struct affected_carrier_freq_r11_s {
struct interference_direction_r11_opts {
enum options { eutra, other, both, spare, nulltype } value;
std::string to_string() const;
};
typedef enumerated<interference_direction_r11_opts> interference_direction_r11_e_;
// member variables
uint8_t carrier_freq_r11 = 1;
interference_direction_r11_e_ interference_direction_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AffectedCarrierFreqCombList-r11 ::= SEQUENCE (SIZE (1..128)) OF AffectedCarrierFreqComb-r11
using affected_carrier_freq_comb_list_r11_l = dyn_array<affected_carrier_freq_comb_r11_l>;
// BW-Preference-r14 ::= SEQUENCE
struct bw_pref_r14_s {
struct dl_pref_r14_opts {
enum options { mhz1dot4, mhz5, mhz20, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<dl_pref_r14_opts> dl_pref_r14_e_;
struct ul_pref_r14_opts {
enum options { mhz1dot4, mhz5, nulltype } value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<ul_pref_r14_opts> ul_pref_r14_e_;
// member variables
bool dl_pref_r14_present = false;
bool ul_pref_r14_present = false;
dl_pref_r14_e_ dl_pref_r14;
ul_pref_r14_e_ ul_pref_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheckResponse-v1530-IEs ::= SEQUENCE
struct counter_check_resp_v1530_ies_s {
bool drb_count_info_list_ext_r15_present = false;
bool non_crit_ext_present = false;
drb_count_info_list_ext_r15_l drb_count_info_list_ext_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CountingResponseInfo-r10 ::= SEQUENCE
struct count_resp_info_r10_s {
bool ext = false;
uint8_t count_resp_service_r10 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DelayBudgetReport-r14 ::= CHOICE
struct delay_budget_report_r14_c {
struct type1_opts {
enum options {
ms_minus1280,
ms_minus640,
ms_minus320,
ms_minus160,
ms_minus80,
ms_minus60,
ms_minus40,
ms_minus20,
ms0,
ms20,
ms40,
ms60,
ms80,
ms160,
ms320,
ms640,
ms1280,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<type1_opts> type1_e_;
struct type2_opts {
enum options {
ms_minus192,
ms_minus168,
ms_minus144,
ms_minus120,
ms_minus96,
ms_minus72,
ms_minus48,
ms_minus24,
ms0,
ms24,
ms48,
ms72,
ms96,
ms120,
ms144,
ms168,
ms192,
nulltype
} value;
typedef int16_t number_type;
std::string to_string() const;
int16_t to_number() const;
};
typedef enumerated<type2_opts> type2_e_;
struct types_opts {
enum options { type1, type2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
delay_budget_report_r14_c() = default;
delay_budget_report_r14_c(const delay_budget_report_r14_c& other);
delay_budget_report_r14_c& operator=(const delay_budget_report_r14_c& other);
~delay_budget_report_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
type1_e_& type1()
{
assert_choice_type("type1", type_.to_string(), "DelayBudgetReport-r14");
return c.get<type1_e_>();
}
type2_e_& type2()
{
assert_choice_type("type2", type_.to_string(), "DelayBudgetReport-r14");
return c.get<type2_e_>();
}
const type1_e_& type1() const
{
assert_choice_type("type1", type_.to_string(), "DelayBudgetReport-r14");
return c.get<type1_e_>();
}
const type2_e_& type2() const
{
assert_choice_type("type2", type_.to_string(), "DelayBudgetReport-r14");
return c.get<type2_e_>();
}
type1_e_& set_type1()
{
set(types::type1);
return c.get<type1_e_>();
}
type2_e_& set_type2()
{
set(types::type2);
return c.get<type2_e_>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// IDC-SubframePatternList-r11 ::= SEQUENCE (SIZE (1..8)) OF IDC-SubframePattern-r11
using idc_sf_pattern_list_r11_l = dyn_array<idc_sf_pattern_r11_c>;
// InDeviceCoexIndication-v1310-IEs ::= SEQUENCE
struct in_dev_coex_ind_v1310_ies_s {
bool affected_carrier_freq_list_v1310_present = false;
bool affected_carrier_freq_comb_list_r13_present = false;
bool non_crit_ext_present = false;
affected_carrier_freq_list_v1310_l affected_carrier_freq_list_v1310;
affected_carrier_freq_comb_list_r13_l affected_carrier_freq_comb_list_r13;
in_dev_coex_ind_v1360_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-ServiceList-r13 ::= SEQUENCE (SIZE (0..15)) OF MBMS-ServiceInfo-r13
using mbms_service_list_r13_l = dyn_array<mbms_service_info_r13_s>;
// MeasResultCSI-RS-List-r12 ::= SEQUENCE (SIZE (1..8)) OF MeasResultCSI-RS-r12
using meas_result_csi_rs_list_r12_l = dyn_array<meas_result_csi_rs_r12_s>;
// MeasResultCellListSFTD-r15 ::= SEQUENCE (SIZE (1..3)) OF MeasResultCellSFTD-r15
using meas_result_cell_list_sftd_r15_l = dyn_array<meas_result_cell_sftd_r15_s>;
// MeasResultForECID-r9 ::= SEQUENCE
struct meas_result_for_ecid_r9_s {
uint16_t ue_rx_tx_time_diff_result_r9 = 0;
fixed_bitstring<10> current_sfn_r9;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultForRSSI-r13 ::= SEQUENCE
struct meas_result_for_rssi_r13_s {
bool ext = false;
uint8_t rssi_result_r13 = 0;
uint8_t ch_occupancy_r13 = 0;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultFreqListFailNR-r15 ::= SEQUENCE (SIZE (1..5)) OF MeasResultFreqFailNR-r15
using meas_result_freq_list_fail_nr_r15_l = dyn_array<meas_result_freq_fail_nr_r15_s>;
// MeasResultListCBR-r14 ::= SEQUENCE (SIZE (1..72)) OF MeasResultCBR-r14
using meas_result_list_cbr_r14_l = dyn_array<meas_result_cbr_r14_s>;
// MeasResultListWLAN-r13 ::= SEQUENCE (SIZE (1..8)) OF MeasResultWLAN-r13
using meas_result_list_wlan_r13_l = dyn_array<meas_result_wlan_r13_s>;
// MeasResultListWLAN-r14 ::= SEQUENCE (SIZE (1..32)) OF MeasResultWLAN-r13
using meas_result_list_wlan_r14_l = dyn_array<meas_result_wlan_r13_s>;
// MeasResultSSTD-r13 ::= SEQUENCE
struct meas_result_sstd_r13_s {
uint16_t sfn_offset_result_r13 = 0;
int8_t frame_boundary_offset_result_r13 = -5;
uint8_t sf_boundary_offset_result_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultSensing-r15 ::= SEQUENCE
struct meas_result_sensing_r15_s {
using sensing_result_r15_l_ = dyn_array<sensing_result_r15_s>;
// member variables
uint16_t sl_sf_ref_r15 = 0;
sensing_result_r15_l_ sensing_result_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultServFreqList-r10 ::= SEQUENCE (SIZE (1..5)) OF MeasResultServFreq-r10
using meas_result_serv_freq_list_r10_l = dyn_array<meas_result_serv_freq_r10_s>;
// MeasResultServFreqListExt-r13 ::= SEQUENCE (SIZE (1..32)) OF MeasResultServFreq-r13
using meas_result_serv_freq_list_ext_r13_l = dyn_array<meas_result_serv_freq_r13_s>;
// MeasResultServFreqListNR-r15 ::= SEQUENCE (SIZE (1..32)) OF MeasResultServFreqNR-r15
using meas_result_serv_freq_list_nr_r15_l = dyn_array<meas_result_serv_freq_nr_r15_s>;
// RRCConnectionReconfigurationComplete-v1020-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v1020_ies_s {
bool rlf_info_available_r10_present = false;
bool log_meas_available_r10_present = false;
bool non_crit_ext_present = false;
rrc_conn_recfg_complete_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v8a0-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_reest_complete_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v1020-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v1020_ies_s {
struct gummei_type_r10_opts {
enum options { native, mapped, nulltype } value;
std::string to_string() const;
};
typedef enumerated<gummei_type_r10_opts> gummei_type_r10_e_;
struct rn_sf_cfg_req_r10_opts {
enum options { required, not_required, nulltype } value;
std::string to_string() const;
};
typedef enumerated<rn_sf_cfg_req_r10_opts> rn_sf_cfg_req_r10_e_;
// member variables
bool gummei_type_r10_present = false;
bool rlf_info_available_r10_present = false;
bool log_meas_available_r10_present = false;
bool rn_sf_cfg_req_r10_present = false;
bool non_crit_ext_present = false;
gummei_type_r10_e_ gummei_type_r10;
rn_sf_cfg_req_r10_e_ rn_sf_cfg_req_r10;
rrc_conn_setup_complete_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RSTD-InterFreqInfo-r10 ::= SEQUENCE
struct rstd_inter_freq_info_r10_s {
struct meas_prs_offset_r15_c_ {
struct types_opts {
enum options {
rstd0_r15,
rstd1_r15,
rstd2_r15,
rstd3_r15,
rstd4_r15,
rstd5_r15,
rstd6_r15,
rstd7_r15,
rstd8_r15,
rstd9_r15,
rstd10_r15,
rstd11_r15,
rstd12_r15,
rstd13_r15,
rstd14_r15,
rstd15_r15,
rstd16_r15,
rstd17_r15,
rstd18_r15,
rstd19_r15,
rstd20_r15,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
meas_prs_offset_r15_c_() = default;
meas_prs_offset_r15_c_(const meas_prs_offset_r15_c_& other);
meas_prs_offset_r15_c_& operator=(const meas_prs_offset_r15_c_& other);
~meas_prs_offset_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& rstd0_r15()
{
assert_choice_type("rstd0-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
uint8_t& rstd1_r15()
{
assert_choice_type("rstd1-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
uint16_t& rstd2_r15()
{
assert_choice_type("rstd2-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd3_r15()
{
assert_choice_type("rstd3-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd4_r15()
{
assert_choice_type("rstd4-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint8_t& rstd5_r15()
{
assert_choice_type("rstd5-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
uint16_t& rstd6_r15()
{
assert_choice_type("rstd6-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd7_r15()
{
assert_choice_type("rstd7-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd8_r15()
{
assert_choice_type("rstd8-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd9_r15()
{
assert_choice_type("rstd9-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd10_r15()
{
assert_choice_type("rstd10-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd11_r15()
{
assert_choice_type("rstd11-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd12_r15()
{
assert_choice_type("rstd12-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd13_r15()
{
assert_choice_type("rstd13-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd14_r15()
{
assert_choice_type("rstd14-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd15_r15()
{
assert_choice_type("rstd15-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd16_r15()
{
assert_choice_type("rstd16-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd17_r15()
{
assert_choice_type("rstd17-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd18_r15()
{
assert_choice_type("rstd18-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd19_r15()
{
assert_choice_type("rstd19-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint16_t& rstd20_r15()
{
assert_choice_type("rstd20-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint8_t& rstd0_r15() const
{
assert_choice_type("rstd0-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
const uint8_t& rstd1_r15() const
{
assert_choice_type("rstd1-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
const uint16_t& rstd2_r15() const
{
assert_choice_type("rstd2-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd3_r15() const
{
assert_choice_type("rstd3-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd4_r15() const
{
assert_choice_type("rstd4-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint8_t& rstd5_r15() const
{
assert_choice_type("rstd5-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint8_t>();
}
const uint16_t& rstd6_r15() const
{
assert_choice_type("rstd6-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd7_r15() const
{
assert_choice_type("rstd7-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd8_r15() const
{
assert_choice_type("rstd8-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd9_r15() const
{
assert_choice_type("rstd9-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd10_r15() const
{
assert_choice_type("rstd10-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd11_r15() const
{
assert_choice_type("rstd11-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd12_r15() const
{
assert_choice_type("rstd12-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd13_r15() const
{
assert_choice_type("rstd13-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd14_r15() const
{
assert_choice_type("rstd14-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd15_r15() const
{
assert_choice_type("rstd15-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd16_r15() const
{
assert_choice_type("rstd16-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd17_r15() const
{
assert_choice_type("rstd17-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd18_r15() const
{
assert_choice_type("rstd18-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd19_r15() const
{
assert_choice_type("rstd19-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
const uint16_t& rstd20_r15() const
{
assert_choice_type("rstd20-r15", type_.to_string(), "measPRS-Offset-r15");
return c.get<uint16_t>();
}
uint8_t& set_rstd0_r15()
{
set(types::rstd0_r15);
return c.get<uint8_t>();
}
uint8_t& set_rstd1_r15()
{
set(types::rstd1_r15);
return c.get<uint8_t>();
}
uint16_t& set_rstd2_r15()
{
set(types::rstd2_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd3_r15()
{
set(types::rstd3_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd4_r15()
{
set(types::rstd4_r15);
return c.get<uint16_t>();
}
uint8_t& set_rstd5_r15()
{
set(types::rstd5_r15);
return c.get<uint8_t>();
}
uint16_t& set_rstd6_r15()
{
set(types::rstd6_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd7_r15()
{
set(types::rstd7_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd8_r15()
{
set(types::rstd8_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd9_r15()
{
set(types::rstd9_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd10_r15()
{
set(types::rstd10_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd11_r15()
{
set(types::rstd11_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd12_r15()
{
set(types::rstd12_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd13_r15()
{
set(types::rstd13_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd14_r15()
{
set(types::rstd14_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd15_r15()
{
set(types::rstd15_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd16_r15()
{
set(types::rstd16_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd17_r15()
{
set(types::rstd17_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd18_r15()
{
set(types::rstd18_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd19_r15()
{
set(types::rstd19_r15);
return c.get<uint16_t>();
}
uint16_t& set_rstd20_r15()
{
set(types::rstd20_r15);
return c.get<uint16_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool ext = false;
uint32_t carrier_freq_r10 = 0;
uint8_t meas_prs_offset_r10 = 0;
// ...
// group 0
bool carrier_freq_v1090_present = false;
uint32_t carrier_freq_v1090 = 65536;
// group 1
copy_ptr<meas_prs_offset_r15_c_> meas_prs_offset_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
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(bit_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;
uint32_t carrier_freq_r12 = 0;
sl_dest_info_list_r12_l dest_info_list_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-DiscSysInfoReportFreqList-r13 ::= SEQUENCE (SIZE (1..8)) OF SL-DiscSysInfoReport-r13
using sl_disc_sys_info_report_freq_list_r13_l = dyn_array<sl_disc_sys_info_report_r13_s>;
// SL-DiscTxResourceReqPerFreqList-r13 ::= SEQUENCE (SIZE (1..8)) OF SL-DiscTxResourceReq-r13
using sl_disc_tx_res_req_per_freq_list_r13_l = dyn_array<sl_disc_tx_res_req_r13_s>;
// SL-GapRequest-r13 ::= SEQUENCE (SIZE (1..8)) OF SL-GapFreqInfo-r13
using sl_gap_request_r13_l = dyn_array<sl_gap_freq_info_r13_s>;
// SidelinkUEInformation-v1430-IEs ::= SEQUENCE
struct sidelink_ue_info_v1430_ies_s {
bool v2x_comm_rx_interested_freq_list_r14_present = false;
bool p2x_comm_tx_type_r14_present = false;
bool v2x_comm_tx_res_req_r14_present = false;
bool non_crit_ext_present = false;
sl_v2x_comm_freq_list_r14_l v2x_comm_rx_interested_freq_list_r14;
sl_v2x_comm_tx_freq_list_r14_l v2x_comm_tx_res_req_r14;
sidelink_ue_info_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TrafficPatternInfoList-r14 ::= SEQUENCE (SIZE (1..8)) OF TrafficPatternInfo-r14
using traffic_pattern_info_list_r14_l = dyn_array<traffic_pattern_info_r14_s>;
// UE-CapabilityRAT-Container ::= SEQUENCE
struct ue_cap_rat_container_s {
rat_type_e rat_type;
dyn_octstring ue_cap_rat_container;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEAssistanceInformation-v1450-IEs ::= SEQUENCE
struct ueassist_info_v1450_ies_s {
bool overheat_assist_r14_present = false;
bool non_crit_ext_present = false;
overheat_assist_r14_s overheat_assist_r14;
ueassist_info_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityInformation-v1250-IEs ::= SEQUENCE
struct ue_cap_info_v1250_ies_s {
bool ue_radio_paging_info_r12_present = false;
bool non_crit_ext_present = false;
ue_radio_paging_info_r12_s ue_radio_paging_info_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-v1020-IEs ::= SEQUENCE
struct ue_info_resp_v1020_ies_s {
bool log_meas_report_r10_present = false;
bool non_crit_ext_present = false;
log_meas_report_r10_s log_meas_report_r10;
ue_info_resp_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-v9e0-IEs ::= SEQUENCE
struct ue_info_resp_v9e0_ies_s {
bool rlf_report_v9e0_present = false;
bool non_crit_ext_present = false;
rlf_report_v9e0_s rlf_report_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-PDCP-DelayResultList-r13 ::= SEQUENCE (SIZE (1..6)) OF UL-PDCP-DelayResult-r13
using ul_pdcp_delay_result_list_r13_l = dyn_array<ul_pdcp_delay_result_r13_s>;
// WLAN-Status-v1430 ::= ENUMERATED
struct wlan_status_v1430_opts {
enum options { suspended, resumed, nulltype } value;
std::string to_string() const;
};
typedef enumerated<wlan_status_v1430_opts> wlan_status_v1430_e;
// AffectedCarrierFreqList-r11 ::= SEQUENCE (SIZE (1..32)) OF AffectedCarrierFreq-r11
using affected_carrier_freq_list_r11_l = dyn_array<affected_carrier_freq_r11_s>;
// CSFBParametersRequestCDMA2000-v8a0-IEs ::= SEQUENCE
struct csfb_params_request_cdma2000_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CarrierFreqListMBMS-r11 ::= SEQUENCE (SIZE (1..5)) OF INTEGER (0..262143)
using carrier_freq_list_mbms_r11_l = bounded_array<uint32_t, 5>;
// CounterCheckResponse-v8a0-IEs ::= SEQUENCE
struct counter_check_resp_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
counter_check_resp_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CountingResponseList-r10 ::= SEQUENCE (SIZE (1..16)) OF CountingResponseInfo-r10
using count_resp_list_r10_l = dyn_array<count_resp_info_r10_s>;
// DRB-CountInfoList ::= SEQUENCE (SIZE (0..11)) OF DRB-CountInfo
using drb_count_info_list_l = dyn_array<drb_count_info_s>;
// FailureReportSCG-NR-r15 ::= SEQUENCE
struct fail_report_scg_nr_r15_s {
struct fail_type_r15_opts {
enum options {
t310_expiry,
random_access_problem,
rlc_max_num_retx,
scg_change_fail,
scg_recfg_fail,
srb3_integrity_fail,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<fail_type_r15_opts> fail_type_r15_e_;
// member variables
bool ext = false;
bool meas_result_freq_list_nr_r15_present = false;
bool meas_result_scg_r15_present = false;
fail_type_r15_e_ fail_type_r15;
meas_result_freq_list_fail_nr_r15_l meas_result_freq_list_nr_r15;
dyn_octstring meas_result_scg_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FailureReportSCG-r12 ::= SEQUENCE
struct fail_report_scg_r12_s {
struct fail_type_r12_opts {
enum options { t313_expiry, random_access_problem, rlc_max_num_retx, scg_change_fail, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<fail_type_r12_opts> fail_type_r12_e_;
// member variables
bool ext = false;
bool meas_result_serv_freq_list_r12_present = false;
bool meas_result_neigh_cells_r12_present = false;
fail_type_r12_e_ fail_type_r12;
meas_result_serv_freq_list_r10_l meas_result_serv_freq_list_r12;
meas_result_list2_eutra_r9_l meas_result_neigh_cells_r12;
// ...
// group 0
bool fail_type_v1290_present = false;
// group 1
copy_ptr<meas_result_serv_freq_list_ext_r13_l> meas_result_serv_freq_list_ext_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InDeviceCoexIndication-v11d0-IEs ::= SEQUENCE
struct in_dev_coex_ind_v11d0_ies_s {
struct ul_ca_assist_info_r11_s_ {
bool affected_carrier_freq_comb_list_r11_present = false;
affected_carrier_freq_comb_list_r11_l affected_carrier_freq_comb_list_r11;
victim_sys_type_r11_s victim_sys_type_r11;
};
// member variables
bool ul_ca_assist_info_r11_present = false;
bool non_crit_ext_present = false;
ul_ca_assist_info_r11_s_ ul_ca_assist_info_r11;
in_dev_coex_ind_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSInterestIndication-v1310-IEs ::= SEQUENCE
struct mbms_interest_ind_v1310_ies_s {
bool mbms_services_r13_present = false;
bool non_crit_ext_present = false;
mbms_service_list_r13_l mbms_services_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResults ::= SEQUENCE
struct meas_results_s {
struct meas_result_pcell_s_ {
uint8_t rsrp_result = 0;
uint8_t rsrq_result = 0;
};
struct meas_result_neigh_cells_c_ {
struct types_opts {
enum options {
meas_result_list_eutra,
meas_result_list_utra,
meas_result_list_geran,
meas_results_cdma2000,
// ...
meas_result_neigh_cell_list_nr_r15,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts, true, 1> types;
// choice methods
meas_result_neigh_cells_c_() = default;
meas_result_neigh_cells_c_(const meas_result_neigh_cells_c_& other);
meas_result_neigh_cells_c_& operator=(const meas_result_neigh_cells_c_& other);
~meas_result_neigh_cells_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_result_list_eutra_l& meas_result_list_eutra()
{
assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_eutra_l>();
}
meas_result_list_utra_l& meas_result_list_utra()
{
assert_choice_type("measResultListUTRA", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_utra_l>();
}
meas_result_list_geran_l& meas_result_list_geran()
{
assert_choice_type("measResultListGERAN", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_geran_l>();
}
meas_results_cdma2000_s& meas_results_cdma2000()
{
assert_choice_type("measResultsCDMA2000", type_.to_string(), "measResultNeighCells");
return c.get<meas_results_cdma2000_s>();
}
meas_result_cell_list_nr_r15_l& meas_result_neigh_cell_list_nr_r15()
{
assert_choice_type("measResultNeighCellListNR-r15", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_cell_list_nr_r15_l>();
}
const meas_result_list_eutra_l& meas_result_list_eutra() const
{
assert_choice_type("measResultListEUTRA", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_eutra_l>();
}
const meas_result_list_utra_l& meas_result_list_utra() const
{
assert_choice_type("measResultListUTRA", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_utra_l>();
}
const meas_result_list_geran_l& meas_result_list_geran() const
{
assert_choice_type("measResultListGERAN", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_list_geran_l>();
}
const meas_results_cdma2000_s& meas_results_cdma2000() const
{
assert_choice_type("measResultsCDMA2000", type_.to_string(), "measResultNeighCells");
return c.get<meas_results_cdma2000_s>();
}
const meas_result_cell_list_nr_r15_l& meas_result_neigh_cell_list_nr_r15() const
{
assert_choice_type("measResultNeighCellListNR-r15", type_.to_string(), "measResultNeighCells");
return c.get<meas_result_cell_list_nr_r15_l>();
}
meas_result_list_eutra_l& set_meas_result_list_eutra()
{
set(types::meas_result_list_eutra);
return c.get<meas_result_list_eutra_l>();
}
meas_result_list_utra_l& set_meas_result_list_utra()
{
set(types::meas_result_list_utra);
return c.get<meas_result_list_utra_l>();
}
meas_result_list_geran_l& set_meas_result_list_geran()
{
set(types::meas_result_list_geran);
return c.get<meas_result_list_geran_l>();
}
meas_results_cdma2000_s& set_meas_results_cdma2000()
{
set(types::meas_results_cdma2000);
return c.get<meas_results_cdma2000_s>();
}
meas_result_cell_list_nr_r15_l& set_meas_result_neigh_cell_list_nr_r15()
{
set(types::meas_result_neigh_cell_list_nr_r15);
return c.get<meas_result_cell_list_nr_r15_l>();
}
private:
types type_;
choice_buffer_t<meas_result_cell_list_nr_r15_l,
meas_result_list_eutra_l,
meas_result_list_geran_l,
meas_result_list_utra_l,
meas_results_cdma2000_s>
c;
void destroy_();
};
struct meas_result_pcell_v1310_s_ {
uint8_t rs_sinr_result_r13 = 0;
};
// member variables
bool ext = false;
bool meas_result_neigh_cells_present = false;
uint8_t meas_id = 1;
meas_result_pcell_s_ meas_result_pcell;
meas_result_neigh_cells_c_ meas_result_neigh_cells;
// ...
// group 0
copy_ptr<meas_result_for_ecid_r9_s> meas_result_for_ecid_r9;
// group 1
copy_ptr<location_info_r10_s> location_info_r10;
copy_ptr<meas_result_serv_freq_list_r10_l> meas_result_serv_freq_list_r10;
// group 2
bool meas_id_v1250_present = false;
bool meas_result_pcell_v1250_present = false;
uint8_t meas_id_v1250 = 33;
int8_t meas_result_pcell_v1250 = -30;
copy_ptr<meas_result_csi_rs_list_r12_l> meas_result_csi_rs_list_r12;
// group 3
copy_ptr<meas_result_for_rssi_r13_s> meas_result_for_rssi_r13;
copy_ptr<meas_result_serv_freq_list_ext_r13_l> meas_result_serv_freq_list_ext_r13;
copy_ptr<meas_result_sstd_r13_s> meas_result_sstd_r13;
copy_ptr<meas_result_pcell_v1310_s_> meas_result_pcell_v1310;
copy_ptr<ul_pdcp_delay_result_list_r13_l> ul_pdcp_delay_result_list_r13;
copy_ptr<meas_result_list_wlan_r13_l> meas_result_list_wlan_r13;
// group 4
bool meas_result_pcell_v1360_present = false;
int8_t meas_result_pcell_v1360 = -17;
// group 5
copy_ptr<meas_result_list_cbr_r14_l> meas_result_list_cbr_r14;
copy_ptr<meas_result_list_wlan_r14_l> meas_result_list_wlan_r14;
// group 6
copy_ptr<meas_result_serv_freq_list_nr_r15_l> meas_result_serv_freq_list_nr_r15;
copy_ptr<meas_result_cell_list_sftd_r15_l> meas_result_cell_list_sftd_r15;
// group 7
bool height_ue_r15_present = false;
copy_ptr<log_meas_result_list_bt_r15_l> log_meas_result_list_bt_r15;
copy_ptr<log_meas_result_list_wlan_r15_l> log_meas_result_list_wlan_r15;
copy_ptr<meas_result_sensing_r15_s> meas_result_sensing_r15;
int16_t height_ue_r15 = -400;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasurementReport-v8a0-IEs ::= SEQUENCE
struct meas_report_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLF-Report-r9 ::= SEQUENCE
struct rlf_report_r9_s {
struct meas_result_last_serv_cell_r9_s_ {
bool rsrq_result_r9_present = false;
uint8_t rsrp_result_r9 = 0;
uint8_t rsrq_result_r9 = 0;
};
struct meas_result_neigh_cells_r9_s_ {
bool meas_result_list_eutra_r9_present = false;
bool meas_result_list_utra_r9_present = false;
bool meas_result_list_geran_r9_present = false;
bool meas_results_cdma2000_r9_present = false;
meas_result_list2_eutra_r9_l meas_result_list_eutra_r9;
meas_result_list2_utra_r9_l meas_result_list_utra_r9;
meas_result_list_geran_l meas_result_list_geran_r9;
meas_result_list2_cdma2000_r9_l meas_results_cdma2000_r9;
};
struct failed_pcell_id_r10_c_ {
struct pci_arfcn_r10_s_ {
uint16_t pci_r10 = 0;
uint32_t carrier_freq_r10 = 0;
};
struct types_opts {
enum options { cell_global_id_r10, pci_arfcn_r10, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
failed_pcell_id_r10_c_() = default;
failed_pcell_id_r10_c_(const failed_pcell_id_r10_c_& other);
failed_pcell_id_r10_c_& operator=(const failed_pcell_id_r10_c_& other);
~failed_pcell_id_r10_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
cell_global_id_eutra_s& cell_global_id_r10()
{
assert_choice_type("cellGlobalId-r10", type_.to_string(), "failedPCellId-r10");
return c.get<cell_global_id_eutra_s>();
}
pci_arfcn_r10_s_& pci_arfcn_r10()
{
assert_choice_type("pci-arfcn-r10", type_.to_string(), "failedPCellId-r10");
return c.get<pci_arfcn_r10_s_>();
}
const cell_global_id_eutra_s& cell_global_id_r10() const
{
assert_choice_type("cellGlobalId-r10", type_.to_string(), "failedPCellId-r10");
return c.get<cell_global_id_eutra_s>();
}
const pci_arfcn_r10_s_& pci_arfcn_r10() const
{
assert_choice_type("pci-arfcn-r10", type_.to_string(), "failedPCellId-r10");
return c.get<pci_arfcn_r10_s_>();
}
cell_global_id_eutra_s& set_cell_global_id_r10()
{
set(types::cell_global_id_r10);
return c.get<cell_global_id_eutra_s>();
}
pci_arfcn_r10_s_& set_pci_arfcn_r10()
{
set(types::pci_arfcn_r10);
return c.get<pci_arfcn_r10_s_>();
}
private:
types type_;
choice_buffer_t<cell_global_id_eutra_s, pci_arfcn_r10_s_> c;
void destroy_();
};
struct conn_fail_type_r10_opts {
enum options { rlf, hof, nulltype } value;
std::string to_string() const;
};
typedef enumerated<conn_fail_type_r10_opts> conn_fail_type_r10_e_;
struct failed_pcell_id_v1090_s_ {
uint32_t carrier_freq_v1090 = 65536;
};
struct basic_fields_r11_s_ {
struct rlf_cause_r11_opts {
enum options { t310_expiry, random_access_problem, rlc_max_num_retx, t312_expiry_r12, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<rlf_cause_r11_opts> rlf_cause_r11_e_;
// member variables
fixed_bitstring<16> c_rnti_r11;
rlf_cause_r11_e_ rlf_cause_r11;
uint32_t time_since_fail_r11 = 0;
};
struct prev_utra_cell_id_r11_s_ {
struct pci_r11_c_ {
struct types_opts {
enum options { fdd_r11, tdd_r11, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pci_r11_c_() = default;
pci_r11_c_(const pci_r11_c_& other);
pci_r11_c_& operator=(const pci_r11_c_& other);
~pci_r11_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& fdd_r11()
{
assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint16_t>();
}
uint8_t& tdd_r11()
{
assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint8_t>();
}
const uint16_t& fdd_r11() const
{
assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint16_t>();
}
const uint8_t& tdd_r11() const
{
assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint8_t>();
}
uint16_t& set_fdd_r11()
{
set(types::fdd_r11);
return c.get<uint16_t>();
}
uint8_t& set_tdd_r11()
{
set(types::tdd_r11);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool cell_global_id_r11_present = false;
uint16_t carrier_freq_r11 = 0;
pci_r11_c_ pci_r11;
cell_global_id_utra_s cell_global_id_r11;
};
struct sel_utra_cell_id_r11_s_ {
struct pci_r11_c_ {
struct types_opts {
enum options { fdd_r11, tdd_r11, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pci_r11_c_() = default;
pci_r11_c_(const pci_r11_c_& other);
pci_r11_c_& operator=(const pci_r11_c_& other);
~pci_r11_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& fdd_r11()
{
assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint16_t>();
}
uint8_t& tdd_r11()
{
assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint8_t>();
}
const uint16_t& fdd_r11() const
{
assert_choice_type("fdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint16_t>();
}
const uint8_t& tdd_r11() const
{
assert_choice_type("tdd-r11", type_.to_string(), "physCellId-r11");
return c.get<uint8_t>();
}
uint16_t& set_fdd_r11()
{
set(types::fdd_r11);
return c.get<uint16_t>();
}
uint8_t& set_tdd_r11()
{
set(types::tdd_r11);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
uint16_t carrier_freq_r11 = 0;
pci_r11_c_ pci_r11;
};
struct failed_pcell_id_v1250_s_ {
fixed_bitstring<16> tac_failed_pcell_r12;
};
// member variables
bool ext = false;
bool meas_result_neigh_cells_r9_present = false;
meas_result_last_serv_cell_r9_s_ meas_result_last_serv_cell_r9;
meas_result_neigh_cells_r9_s_ meas_result_neigh_cells_r9;
// ...
// group 0
bool time_conn_fail_r10_present = false;
bool conn_fail_type_r10_present = false;
copy_ptr<location_info_r10_s> location_info_r10;
copy_ptr<failed_pcell_id_r10_c_> failed_pcell_id_r10;
copy_ptr<cell_global_id_eutra_s> reest_cell_id_r10;
uint16_t time_conn_fail_r10 = 0;
conn_fail_type_r10_e_ conn_fail_type_r10;
copy_ptr<cell_global_id_eutra_s> prev_pcell_id_r10;
// group 1
copy_ptr<failed_pcell_id_v1090_s_> failed_pcell_id_v1090;
// group 2
copy_ptr<basic_fields_r11_s_> basic_fields_r11;
copy_ptr<prev_utra_cell_id_r11_s_> prev_utra_cell_id_r11;
copy_ptr<sel_utra_cell_id_r11_s_> sel_utra_cell_id_r11;
// group 3
bool meas_result_last_serv_cell_v1250_present = false;
copy_ptr<failed_pcell_id_v1250_s_> failed_pcell_id_v1250;
int8_t meas_result_last_serv_cell_v1250 = -30;
copy_ptr<rsrq_type_r12_s> last_serv_cell_rsrq_type_r12;
copy_ptr<meas_result_list2_eutra_v1250_l> meas_result_list_eutra_v1250;
// group 4
bool drb_established_with_qci_minus1_r13_present = false;
// group 5
bool meas_result_last_serv_cell_v1360_present = false;
int8_t meas_result_last_serv_cell_v1360 = -17;
// group 6
copy_ptr<log_meas_result_list_bt_r15_l> log_meas_result_list_bt_r15;
copy_ptr<log_meas_result_list_wlan_r15_l> log_meas_result_list_wlan_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfigurationComplete-v8a0-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_recfg_complete_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-v920-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_v920_ies_s {
bool rlf_info_available_r9_present = false;
bool non_crit_ext_present = false;
rrc_conn_reest_complete_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeComplete-v1530-IEs ::= SEQUENCE
struct rrc_conn_resume_complete_v1530_ies_s {
bool log_meas_available_bt_r15_present = false;
bool log_meas_available_wlan_r15_present = false;
bool idle_meas_available_r15_present = false;
bool flight_path_info_available_r15_present = false;
bool non_crit_ext_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-v8a0-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
rrc_conn_setup_complete_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RSTD-InterFreqInfoList-r10 ::= SEQUENCE (SIZE (1..3)) OF RSTD-InterFreqInfo-r10
using rstd_inter_freq_info_list_r10_l = dyn_array<rstd_inter_freq_info_r10_s>;
// RegisteredMME ::= SEQUENCE
struct registered_mme_s {
bool plmn_id_present = false;
plmn_id_s plmn_id;
fixed_bitstring<16> mmegi;
fixed_bitstring<8> mmec;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformation-v1310-IEs ::= SEQUENCE
struct scg_fail_info_v1310_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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeComplete-v8a0-IEs ::= SEQUENCE
struct security_mode_complete_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeFailure-v8a0-IEs ::= SEQUENCE
struct security_mode_fail_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SidelinkUEInformation-v1310-IEs ::= SEQUENCE
struct sidelink_ue_info_v1310_ies_s {
struct comm_tx_res_info_req_relay_r13_s_ {
struct ue_type_r13_opts {
enum options { relay_ue, remote_ue, nulltype } value;
std::string to_string() const;
};
typedef enumerated<ue_type_r13_opts> ue_type_r13_e_;
// member variables
bool comm_tx_res_req_relay_r13_present = false;
bool comm_tx_res_req_relay_uc_r13_present = false;
sl_comm_tx_res_req_r12_s comm_tx_res_req_relay_r13;
sl_comm_tx_res_req_r12_s comm_tx_res_req_relay_uc_r13;
ue_type_r13_e_ ue_type_r13;
};
struct disc_tx_res_req_v1310_s_ {
bool carrier_freq_disc_tx_r13_present = false;
bool disc_tx_res_req_add_freq_r13_present = false;
uint8_t carrier_freq_disc_tx_r13 = 1;
sl_disc_tx_res_req_per_freq_list_r13_l disc_tx_res_req_add_freq_r13;
};
// member variables
bool comm_tx_res_req_uc_r13_present = false;
bool comm_tx_res_info_req_relay_r13_present = false;
bool disc_tx_res_req_v1310_present = false;
bool disc_tx_res_req_ps_r13_present = false;
bool disc_rx_gap_req_r13_present = false;
bool disc_tx_gap_req_r13_present = false;
bool disc_sys_info_report_freq_list_r13_present = false;
bool non_crit_ext_present = false;
sl_comm_tx_res_req_r12_s comm_tx_res_req_uc_r13;
comm_tx_res_info_req_relay_r13_s_ comm_tx_res_info_req_relay_r13;
disc_tx_res_req_v1310_s_ disc_tx_res_req_v1310;
sl_disc_tx_res_req_r13_s disc_tx_res_req_ps_r13;
sl_gap_request_r13_l disc_rx_gap_req_r13;
sl_gap_request_r13_l disc_tx_gap_req_r13;
sl_disc_sys_info_report_freq_list_r13_l disc_sys_info_report_freq_list_r13;
sidelink_ue_info_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// TDM-AssistanceInfo-r11 ::= CHOICE
struct tdm_assist_info_r11_c {
struct drx_assist_info_r11_s_ {
struct drx_cycle_len_r11_opts {
enum options { sf40, sf64, sf80, sf128, sf160, sf256, spare2, spare1, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<drx_cycle_len_r11_opts> drx_cycle_len_r11_e_;
struct drx_active_time_r11_opts {
enum options { sf20, sf30, sf40, sf60, sf80, sf100, spare2, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<drx_active_time_r11_opts> drx_active_time_r11_e_;
// member variables
bool drx_offset_r11_present = false;
drx_cycle_len_r11_e_ drx_cycle_len_r11;
uint16_t drx_offset_r11 = 0;
drx_active_time_r11_e_ drx_active_time_r11;
};
struct types_opts {
enum options { drx_assist_info_r11, idc_sf_pattern_list_r11, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts, true> types;
// choice methods
tdm_assist_info_r11_c() = default;
tdm_assist_info_r11_c(const tdm_assist_info_r11_c& other);
tdm_assist_info_r11_c& operator=(const tdm_assist_info_r11_c& other);
~tdm_assist_info_r11_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
drx_assist_info_r11_s_& drx_assist_info_r11()
{
assert_choice_type("drx-AssistanceInfo-r11", type_.to_string(), "TDM-AssistanceInfo-r11");
return c.get<drx_assist_info_r11_s_>();
}
idc_sf_pattern_list_r11_l& idc_sf_pattern_list_r11()
{
assert_choice_type("idc-SubframePatternList-r11", type_.to_string(), "TDM-AssistanceInfo-r11");
return c.get<idc_sf_pattern_list_r11_l>();
}
const drx_assist_info_r11_s_& drx_assist_info_r11() const
{
assert_choice_type("drx-AssistanceInfo-r11", type_.to_string(), "TDM-AssistanceInfo-r11");
return c.get<drx_assist_info_r11_s_>();
}
const idc_sf_pattern_list_r11_l& idc_sf_pattern_list_r11() const
{
assert_choice_type("idc-SubframePatternList-r11", type_.to_string(), "TDM-AssistanceInfo-r11");
return c.get<idc_sf_pattern_list_r11_l>();
}
drx_assist_info_r11_s_& set_drx_assist_info_r11()
{
set(types::drx_assist_info_r11);
return c.get<drx_assist_info_r11_s_>();
}
idc_sf_pattern_list_r11_l& set_idc_sf_pattern_list_r11()
{
set(types::idc_sf_pattern_list_r11);
return c.get<idc_sf_pattern_list_r11_l>();
}
private:
types type_;
choice_buffer_t<drx_assist_info_r11_s_, idc_sf_pattern_list_r11_l> c;
void destroy_();
};
// UE-CapabilityRAT-ContainerList ::= SEQUENCE (SIZE (0..8)) OF UE-CapabilityRAT-Container
using ue_cap_rat_container_list_l = dyn_array<ue_cap_rat_container_s>;
// UEAssistanceInformation-v1430-IEs ::= SEQUENCE
struct ueassist_info_v1430_ies_s {
struct sps_assist_info_r14_s_ {
bool traffic_pattern_info_list_sl_r14_present = false;
bool traffic_pattern_info_list_ul_r14_present = false;
traffic_pattern_info_list_r14_l traffic_pattern_info_list_sl_r14;
traffic_pattern_info_list_r14_l traffic_pattern_info_list_ul_r14;
};
struct rlm_report_r14_s_ {
struct rlm_event_r14_opts {
enum options { early_out_of_sync, early_in_sync, nulltype } value;
std::string to_string() const;
};
typedef enumerated<rlm_event_r14_opts> rlm_event_r14_e_;
struct excess_rep_mpdcch_r14_opts {
enum options { excess_rep1, excess_rep2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<excess_rep_mpdcch_r14_opts> excess_rep_mpdcch_r14_e_;
// member variables
bool excess_rep_mpdcch_r14_present = false;
rlm_event_r14_e_ rlm_event_r14;
excess_rep_mpdcch_r14_e_ excess_rep_mpdcch_r14;
};
// member variables
bool bw_pref_r14_present = false;
bool sps_assist_info_r14_present = false;
bool rlm_report_r14_present = false;
bool delay_budget_report_r14_present = false;
bool non_crit_ext_present = false;
bw_pref_r14_s bw_pref_r14;
sps_assist_info_r14_s_ sps_assist_info_r14;
rlm_report_r14_s_ rlm_report_r14;
delay_budget_report_r14_c delay_budget_report_r14;
ueassist_info_v1450_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityInformation-v8a0-IEs ::= SEQUENCE
struct ue_cap_info_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_cap_info_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-v930-IEs ::= SEQUENCE
struct ue_info_resp_v930_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_info_resp_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULHandoverPreparationTransfer-v8a0-IEs ::= SEQUENCE
struct ul_ho_prep_transfer_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULInformationTransfer-v8a0-IEs ::= SEQUENCE
struct ul_info_transfer_v8a0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-Status-r13 ::= ENUMERATED
struct wlan_status_r13_opts {
enum options { successful_assoc, fail_wlan_radio_link, fail_wlan_unavailable, fail_timeout, nulltype } value;
std::string to_string() const;
};
typedef enumerated<wlan_status_r13_opts> wlan_status_r13_e;
// WLANConnectionStatusReport-v1430-IEs ::= SEQUENCE
struct wlan_conn_status_report_v1430_ies_s {
bool non_crit_ext_present = false;
wlan_status_v1430_e wlan_status_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFBParametersRequestCDMA2000-r8-IEs ::= SEQUENCE
struct csfb_params_request_cdma2000_r8_ies_s {
bool non_crit_ext_present = false;
csfb_params_request_cdma2000_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheckResponse-r8-IEs ::= SEQUENCE
struct counter_check_resp_r8_ies_s {
bool non_crit_ext_present = false;
drb_count_info_list_l drb_count_info_list;
counter_check_resp_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FailedLogicalChannelInfo-r15 ::= SEQUENCE
struct failed_lc_ch_info_r15_s {
struct failed_lc_ch_id_r15_s_ {
struct cell_group_ind_r15_opts {
enum options { mn, sn, nulltype } value;
std::string to_string() const;
};
typedef enumerated<cell_group_ind_r15_opts> cell_group_ind_r15_e_;
// member variables
bool lc_ch_id_r15_present = false;
bool lc_ch_id_ext_r15_present = false;
cell_group_ind_r15_e_ cell_group_ind_r15;
uint8_t lc_ch_id_r15 = 1;
uint8_t lc_ch_id_ext_r15 = 32;
};
struct fail_type_opts {
enum options { dupl, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<fail_type_opts> fail_type_e_;
// member variables
failed_lc_ch_id_r15_s_ failed_lc_ch_id_r15;
fail_type_e_ fail_type;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InDeviceCoexIndication-r11-IEs ::= SEQUENCE
struct in_dev_coex_ind_r11_ies_s {
bool affected_carrier_freq_list_r11_present = false;
bool tdm_assist_info_r11_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
affected_carrier_freq_list_r11_l affected_carrier_freq_list_r11;
tdm_assist_info_r11_c tdm_assist_info_r11;
dyn_octstring late_non_crit_ext;
in_dev_coex_ind_v11d0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqRSTDMeasurementIndication-r10-IEs ::= SEQUENCE
struct inter_freq_rstd_meas_ind_r10_ies_s {
struct rstd_inter_freq_ind_r10_c_ {
struct start_s_ {
rstd_inter_freq_info_list_r10_l rstd_inter_freq_info_list_r10;
};
struct types_opts {
enum options { start, stop, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
rstd_inter_freq_ind_r10_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
start_s_& start()
{
assert_choice_type("start", type_.to_string(), "rstd-InterFreqIndication-r10");
return c;
}
const start_s_& start() const
{
assert_choice_type("start", type_.to_string(), "rstd-InterFreqIndication-r10");
return c;
}
start_s_& set_start()
{
set(types::start);
return c;
}
private:
types type_;
start_s_ c;
};
// member variables
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
rstd_inter_freq_ind_r10_c_ rstd_inter_freq_ind_r10;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSCountingResponse-r10-IEs ::= SEQUENCE
struct mbms_count_resp_r10_ies_s {
bool mbsfn_area_idx_r10_present = false;
bool count_resp_list_r10_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
uint8_t mbsfn_area_idx_r10 = 0;
count_resp_list_r10_l count_resp_list_r10;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSInterestIndication-r11-IEs ::= SEQUENCE
struct mbms_interest_ind_r11_ies_s {
bool mbms_freq_list_r11_present = false;
bool mbms_prio_r11_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
carrier_freq_list_mbms_r11_l mbms_freq_list_r11;
dyn_octstring late_non_crit_ext;
mbms_interest_ind_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasReportAppLayer-r15-IEs ::= SEQUENCE
struct meas_report_app_layer_r15_ies_s {
struct service_type_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_;
// member variables
bool meas_report_app_layer_container_r15_present = false;
bool service_type_present = false;
bool non_crit_ext_present = false;
dyn_octstring meas_report_app_layer_container_r15;
service_type_e_ service_type;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasurementReport-r8-IEs ::= SEQUENCE
struct meas_report_r8_ies_s {
bool non_crit_ext_present = false;
meas_results_s meas_results;
meas_report_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ProximityIndication-r9-IEs ::= SEQUENCE
struct proximity_ind_r9_ies_s {
struct type_r9_opts {
enum options { entering, leaving, nulltype } value;
std::string to_string() const;
};
typedef enumerated<type_r9_opts> type_r9_e_;
struct carrier_freq_r9_c_ {
struct types_opts {
enum options { eutra_r9, utra_r9, /*...*/ eutra2_v9e0, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts, true, 1> types;
// choice methods
carrier_freq_r9_c_() = default;
carrier_freq_r9_c_(const carrier_freq_r9_c_& other);
carrier_freq_r9_c_& operator=(const carrier_freq_r9_c_& other);
~carrier_freq_r9_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint32_t& eutra_r9()
{
assert_choice_type("eutra-r9", type_.to_string(), "carrierFreq-r9");
return c.get<uint32_t>();
}
uint16_t& utra_r9()
{
assert_choice_type("utra-r9", type_.to_string(), "carrierFreq-r9");
return c.get<uint16_t>();
}
uint32_t& eutra2_v9e0()
{
assert_choice_type("eutra2-v9e0", type_.to_string(), "carrierFreq-r9");
return c.get<uint32_t>();
}
const uint32_t& eutra_r9() const
{
assert_choice_type("eutra-r9", type_.to_string(), "carrierFreq-r9");
return c.get<uint32_t>();
}
const uint16_t& utra_r9() const
{
assert_choice_type("utra-r9", type_.to_string(), "carrierFreq-r9");
return c.get<uint16_t>();
}
const uint32_t& eutra2_v9e0() const
{
assert_choice_type("eutra2-v9e0", type_.to_string(), "carrierFreq-r9");
return c.get<uint32_t>();
}
uint32_t& set_eutra_r9()
{
set(types::eutra_r9);
return c.get<uint32_t>();
}
uint16_t& set_utra_r9()
{
set(types::utra_r9);
return c.get<uint16_t>();
}
uint32_t& set_eutra2_v9e0()
{
set(types::eutra2_v9e0);
return c.get<uint32_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
// member variables
bool non_crit_ext_present = false;
type_r9_e_ type_r9;
carrier_freq_r9_c_ carrier_freq_r9;
proximity_ind_v930_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RNReconfigurationComplete-r10-IEs ::= SEQUENCE
struct rn_recfg_complete_r10_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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfigurationComplete-r8-IEs ::= SEQUENCE
struct rrc_conn_recfg_complete_r8_ies_s {
bool non_crit_ext_present = false;
rrc_conn_recfg_complete_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete-r8-IEs ::= SEQUENCE
struct rrc_conn_reest_complete_r8_ies_s {
bool non_crit_ext_present = false;
rrc_conn_reest_complete_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeComplete-r13-IEs ::= SEQUENCE
struct rrc_conn_resume_complete_r13_ies_s {
struct mob_state_r13_opts {
enum options { normal, medium, high, spare, nulltype } value;
std::string to_string() const;
};
typedef enumerated<mob_state_r13_opts> mob_state_r13_e_;
// member variables
bool sel_plmn_id_r13_present = false;
bool ded_info_nas_r13_present = false;
bool rlf_info_available_r13_present = false;
bool log_meas_available_r13_present = false;
bool conn_est_fail_info_available_r13_present = false;
bool mob_state_r13_present = false;
bool mob_history_avail_r13_present = false;
bool log_meas_available_mbsfn_r13_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
uint8_t sel_plmn_id_r13 = 1;
dyn_octstring ded_info_nas_r13;
mob_state_r13_e_ mob_state_r13;
dyn_octstring late_non_crit_ext;
rrc_conn_resume_complete_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete-r8-IEs ::= SEQUENCE
struct rrc_conn_setup_complete_r8_ies_s {
bool registered_mme_present = false;
bool non_crit_ext_present = false;
uint8_t sel_plmn_id = 1;
registered_mme_s registered_mme;
dyn_octstring ded_info_nas;
rrc_conn_setup_complete_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformation-r12-IEs ::= SEQUENCE
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformationNR-r15-IEs ::= SEQUENCE
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeComplete-r8-IEs ::= SEQUENCE
struct security_mode_complete_r8_ies_s {
bool non_crit_ext_present = false;
security_mode_complete_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeFailure-r8-IEs ::= SEQUENCE
struct security_mode_fail_r8_ies_s {
bool non_crit_ext_present = false;
security_mode_fail_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SidelinkUEInformation-r12-IEs ::= SEQUENCE
struct sidelink_ue_info_r12_ies_s {
bool comm_rx_interested_freq_r12_present = false;
bool comm_tx_res_req_r12_present = false;
bool disc_rx_interest_r12_present = false;
bool disc_tx_res_req_r12_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
uint32_t comm_rx_interested_freq_r12 = 0;
sl_comm_tx_res_req_r12_s comm_tx_res_req_r12;
uint8_t disc_tx_res_req_r12 = 1;
dyn_octstring late_non_crit_ext;
sidelink_ue_info_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEAssistanceInformation-r11-IEs ::= SEQUENCE
struct ueassist_info_r11_ies_s {
struct pwr_pref_ind_r11_opts {
enum options { normal, low_pwr_consumption, nulltype } value;
std::string to_string() const;
};
typedef enumerated<pwr_pref_ind_r11_opts> pwr_pref_ind_r11_e_;
// member variables
bool pwr_pref_ind_r11_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
pwr_pref_ind_r11_e_ pwr_pref_ind_r11;
dyn_octstring late_non_crit_ext;
ueassist_info_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityInformation-r8-IEs ::= SEQUENCE
struct ue_cap_info_r8_ies_s {
bool non_crit_ext_present = false;
ue_cap_rat_container_list_l ue_cap_rat_container_list;
ue_cap_info_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-r9-IEs ::= SEQUENCE
struct ue_info_resp_r9_ies_s {
struct rach_report_r9_s_ {
uint8_t nof_preambs_sent_r9 = 1;
bool contention_detected_r9 = false;
};
// member variables
bool rach_report_r9_present = false;
bool rlf_report_r9_present = false;
bool non_crit_ext_present = false;
rach_report_r9_s_ rach_report_r9;
rlf_report_r9_s rlf_report_r9;
ue_info_resp_v930_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULHandoverPreparationTransfer-r8-IEs ::= SEQUENCE
struct ul_ho_prep_transfer_r8_ies_s {
bool meid_present = false;
bool non_crit_ext_present = false;
cdma2000_type_e cdma2000_type;
fixed_bitstring<56> meid;
dyn_octstring ded_info;
ul_ho_prep_transfer_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULInformationTransfer-r8-IEs ::= SEQUENCE
struct ul_info_transfer_r8_ies_s {
struct ded_info_type_c_ {
struct types_opts {
enum options { ded_info_nas, ded_info_cdma2000_minus1_xrtt, ded_info_cdma2000_hrpd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
ded_info_type_c_() = default;
ded_info_type_c_(const ded_info_type_c_& other);
ded_info_type_c_& operator=(const ded_info_type_c_& other);
~ded_info_type_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
dyn_octstring& ded_info_nas()
{
assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_minus1_xrtt()
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& ded_info_cdma2000_hrpd()
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_nas() const
{
assert_choice_type("dedicatedInfoNAS", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_minus1_xrtt() const
{
assert_choice_type("dedicatedInfoCDMA2000-1XRTT", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
const dyn_octstring& ded_info_cdma2000_hrpd() const
{
assert_choice_type("dedicatedInfoCDMA2000-HRPD", type_.to_string(), "dedicatedInfoType");
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_nas()
{
set(types::ded_info_nas);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_minus1_xrtt()
{
set(types::ded_info_cdma2000_minus1_xrtt);
return c.get<dyn_octstring>();
}
dyn_octstring& set_ded_info_cdma2000_hrpd()
{
set(types::ded_info_cdma2000_hrpd);
return c.get<dyn_octstring>();
}
private:
types type_;
choice_buffer_t<dyn_octstring> c;
void destroy_();
};
// member variables
bool non_crit_ext_present = false;
ded_info_type_c_ ded_info_type;
ul_info_transfer_v8a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULInformationTransferMRDC-r15-IEs ::= SEQUENCE
struct ul_info_transfer_mrdc_r15_ies_s {
bool ul_dcch_msg_nr_r15_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring ul_dcch_msg_nr_r15;
dyn_octstring late_non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLANConnectionStatusReport-r13-IEs ::= SEQUENCE
struct wlan_conn_status_report_r13_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
wlan_status_r13_e wlan_status_r13;
dyn_octstring late_non_crit_ext;
wlan_conn_status_report_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSFBParametersRequestCDMA2000 ::= SEQUENCE
struct csfb_params_request_cdma2000_s {
struct crit_exts_c_ {
struct types_opts {
enum options { csfb_params_request_cdma2000_r8, crit_exts_future, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8()
{
assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions");
return c.get<csfb_params_request_cdma2000_r8_ies_s>();
}
const csfb_params_request_cdma2000_r8_ies_s& csfb_params_request_cdma2000_r8() const
{
assert_choice_type("csfbParametersRequestCDMA2000-r8", type_.to_string(), "criticalExtensions");
return c.get<csfb_params_request_cdma2000_r8_ies_s>();
}
csfb_params_request_cdma2000_r8_ies_s& set_csfb_params_request_cdma2000_r8()
{
set(types::csfb_params_request_cdma2000_r8);
return c.get<csfb_params_request_cdma2000_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<csfb_params_request_cdma2000_r8_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CounterCheckResponse ::= SEQUENCE
struct counter_check_resp_s {
struct crit_exts_c_ {
struct types_opts {
enum options { counter_check_resp_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
counter_check_resp_r8_ies_s& counter_check_resp_r8()
{
assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions");
return c.get<counter_check_resp_r8_ies_s>();
}
const counter_check_resp_r8_ies_s& counter_check_resp_r8() const
{
assert_choice_type("counterCheckResponse-r8", type_.to_string(), "criticalExtensions");
return c.get<counter_check_resp_r8_ies_s>();
}
counter_check_resp_r8_ies_s& set_counter_check_resp_r8()
{
set(types::counter_check_resp_r8);
return c.get<counter_check_resp_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<counter_check_resp_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FailureInformation-r15 ::= SEQUENCE
struct fail_info_r15_s {
bool failed_lc_ch_info_r15_present = false;
failed_lc_ch_info_r15_s failed_lc_ch_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InDeviceCoexIndication-r11 ::= SEQUENCE
struct in_dev_coex_ind_r11_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { in_dev_coex_ind_r11, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
in_dev_coex_ind_r11_ies_s& in_dev_coex_ind_r11()
{
assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c1");
return c;
}
const in_dev_coex_ind_r11_ies_s& in_dev_coex_ind_r11() const
{
assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c1");
return c;
}
in_dev_coex_ind_r11_ies_s& set_in_dev_coex_ind_r11()
{
set(types::in_dev_coex_ind_r11);
return c;
}
private:
types type_;
in_dev_coex_ind_r11_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqRSTDMeasurementIndication-r10 ::= SEQUENCE
struct inter_freq_rstd_meas_ind_r10_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { inter_freq_rstd_meas_ind_r10, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
inter_freq_rstd_meas_ind_r10_ies_s& inter_freq_rstd_meas_ind_r10()
{
assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1");
return c;
}
const inter_freq_rstd_meas_ind_r10_ies_s& inter_freq_rstd_meas_ind_r10() const
{
assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1");
return c;
}
inter_freq_rstd_meas_ind_r10_ies_s& set_inter_freq_rstd_meas_ind_r10()
{
set(types::inter_freq_rstd_meas_ind_r10);
return c;
}
private:
types type_;
inter_freq_rstd_meas_ind_r10_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSCountingResponse-r10 ::= SEQUENCE
struct mbms_count_resp_r10_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { count_resp_r10, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mbms_count_resp_r10_ies_s& count_resp_r10()
{
assert_choice_type("countingResponse-r10", type_.to_string(), "c1");
return c;
}
const mbms_count_resp_r10_ies_s& count_resp_r10() const
{
assert_choice_type("countingResponse-r10", type_.to_string(), "c1");
return c;
}
mbms_count_resp_r10_ies_s& set_count_resp_r10()
{
set(types::count_resp_r10);
return c;
}
private:
types type_;
mbms_count_resp_r10_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMSInterestIndication-r11 ::= SEQUENCE
struct mbms_interest_ind_r11_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { interest_ind_r11, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
mbms_interest_ind_r11_ies_s& interest_ind_r11()
{
assert_choice_type("interestIndication-r11", type_.to_string(), "c1");
return c;
}
const mbms_interest_ind_r11_ies_s& interest_ind_r11() const
{
assert_choice_type("interestIndication-r11", type_.to_string(), "c1");
return c;
}
mbms_interest_ind_r11_ies_s& set_interest_ind_r11()
{
set(types::interest_ind_r11);
return c;
}
private:
types type_;
mbms_interest_ind_r11_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasReportAppLayer-r15 ::= SEQUENCE
struct meas_report_app_layer_r15_s {
struct crit_exts_c_ {
struct types_opts {
enum options { meas_report_app_layer_r15, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15()
{
assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions");
return c.get<meas_report_app_layer_r15_ies_s>();
}
const meas_report_app_layer_r15_ies_s& meas_report_app_layer_r15() const
{
assert_choice_type("measReportAppLayer-r15", type_.to_string(), "criticalExtensions");
return c.get<meas_report_app_layer_r15_ies_s>();
}
meas_report_app_layer_r15_ies_s& set_meas_report_app_layer_r15()
{
set(types::meas_report_app_layer_r15);
return c.get<meas_report_app_layer_r15_ies_s>();
}
private:
types type_;
choice_buffer_t<meas_report_app_layer_r15_ies_s> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasurementReport ::= SEQUENCE
struct meas_report_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { meas_report_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
meas_report_r8_ies_s& meas_report_r8()
{
assert_choice_type("measurementReport-r8", type_.to_string(), "c1");
return c;
}
const meas_report_r8_ies_s& meas_report_r8() const
{
assert_choice_type("measurementReport-r8", type_.to_string(), "c1");
return c;
}
meas_report_r8_ies_s& set_meas_report_r8()
{
set(types::meas_report_r8);
return c;
}
private:
types type_;
meas_report_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ProximityIndication-r9 ::= SEQUENCE
struct proximity_ind_r9_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { proximity_ind_r9, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
proximity_ind_r9_ies_s& proximity_ind_r9()
{
assert_choice_type("proximityIndication-r9", type_.to_string(), "c1");
return c;
}
const proximity_ind_r9_ies_s& proximity_ind_r9() const
{
assert_choice_type("proximityIndication-r9", type_.to_string(), "c1");
return c;
}
proximity_ind_r9_ies_s& set_proximity_ind_r9()
{
set(types::proximity_ind_r9);
return c;
}
private:
types type_;
proximity_ind_r9_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RNReconfigurationComplete-r10 ::= SEQUENCE
struct rn_recfg_complete_r10_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rn_recfg_complete_r10, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rn_recfg_complete_r10_ies_s& rn_recfg_complete_r10()
{
assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1");
return c;
}
const rn_recfg_complete_r10_ies_s& rn_recfg_complete_r10() const
{
assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1");
return c;
}
rn_recfg_complete_r10_ies_s& set_rn_recfg_complete_r10()
{
set(types::rn_recfg_complete_r10);
return c;
}
private:
types type_;
rn_recfg_complete_r10_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReconfigurationComplete ::= SEQUENCE
struct rrc_conn_recfg_complete_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_recfg_complete_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8()
{
assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_recfg_complete_r8_ies_s>();
}
const rrc_conn_recfg_complete_r8_ies_s& rrc_conn_recfg_complete_r8() const
{
assert_choice_type("rrcConnectionReconfigurationComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_recfg_complete_r8_ies_s>();
}
rrc_conn_recfg_complete_r8_ies_s& set_rrc_conn_recfg_complete_r8()
{
set(types::rrc_conn_recfg_complete_r8);
return c.get<rrc_conn_recfg_complete_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_recfg_complete_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionReestablishmentComplete ::= SEQUENCE
struct rrc_conn_reest_complete_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_reest_complete_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8()
{
assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_complete_r8_ies_s>();
}
const rrc_conn_reest_complete_r8_ies_s& rrc_conn_reest_complete_r8() const
{
assert_choice_type("rrcConnectionReestablishmentComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_reest_complete_r8_ies_s>();
}
rrc_conn_reest_complete_r8_ies_s& set_rrc_conn_reest_complete_r8()
{
set(types::rrc_conn_reest_complete_r8);
return c.get<rrc_conn_reest_complete_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_reest_complete_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionResumeComplete-r13 ::= SEQUENCE
struct rrc_conn_resume_complete_r13_s {
struct crit_exts_c_ {
struct types_opts {
enum options { rrc_conn_resume_complete_r13, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13()
{
assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_complete_r13_ies_s>();
}
const rrc_conn_resume_complete_r13_ies_s& rrc_conn_resume_complete_r13() const
{
assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "criticalExtensions");
return c.get<rrc_conn_resume_complete_r13_ies_s>();
}
rrc_conn_resume_complete_r13_ies_s& set_rrc_conn_resume_complete_r13()
{
set(types::rrc_conn_resume_complete_r13);
return c.get<rrc_conn_resume_complete_r13_ies_s>();
}
private:
types type_;
choice_buffer_t<rrc_conn_resume_complete_r13_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRCConnectionSetupComplete ::= SEQUENCE
struct rrc_conn_setup_complete_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { rrc_conn_setup_complete_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
rrc_conn_setup_complete_r8_ies_s& rrc_conn_setup_complete_r8()
{
assert_choice_type("rrcConnectionSetupComplete-r8", type_.to_string(), "c1");
return c;
}
const rrc_conn_setup_complete_r8_ies_s& rrc_conn_setup_complete_r8() const
{
assert_choice_type("rrcConnectionSetupComplete-r8", type_.to_string(), "c1");
return c;
}
rrc_conn_setup_complete_r8_ies_s& set_rrc_conn_setup_complete_r8()
{
set(types::rrc_conn_setup_complete_r8);
return c;
}
private:
types type_;
rrc_conn_setup_complete_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformation-r12 ::= SEQUENCE
struct scg_fail_info_r12_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { scg_fail_info_r12, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_fail_info_r12_ies_s& scg_fail_info_r12()
{
assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c1");
return c;
}
const scg_fail_info_r12_ies_s& scg_fail_info_r12() const
{
assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c1");
return c;
}
scg_fail_info_r12_ies_s& set_scg_fail_info_r12()
{
set(types::scg_fail_info_r12);
return c;
}
private:
types type_;
scg_fail_info_r12_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCGFailureInformationNR-r15 ::= SEQUENCE
struct scg_fail_info_nr_r15_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { scg_fail_info_nr_r15, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_fail_info_nr_r15_ies_s& scg_fail_info_nr_r15()
{
assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c1");
return c;
}
const scg_fail_info_nr_r15_ies_s& scg_fail_info_nr_r15() const
{
assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c1");
return c;
}
scg_fail_info_nr_r15_ies_s& set_scg_fail_info_nr_r15()
{
set(types::scg_fail_info_nr_r15);
return c;
}
private:
types type_;
scg_fail_info_nr_r15_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeComplete ::= SEQUENCE
struct security_mode_complete_s {
struct crit_exts_c_ {
struct types_opts {
enum options { security_mode_complete_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
security_mode_complete_r8_ies_s& security_mode_complete_r8()
{
assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<security_mode_complete_r8_ies_s>();
}
const security_mode_complete_r8_ies_s& security_mode_complete_r8() const
{
assert_choice_type("securityModeComplete-r8", type_.to_string(), "criticalExtensions");
return c.get<security_mode_complete_r8_ies_s>();
}
security_mode_complete_r8_ies_s& set_security_mode_complete_r8()
{
set(types::security_mode_complete_r8);
return c.get<security_mode_complete_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<security_mode_complete_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SecurityModeFailure ::= SEQUENCE
struct security_mode_fail_s {
struct crit_exts_c_ {
struct types_opts {
enum options { security_mode_fail_r8, crit_exts_future, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
security_mode_fail_r8_ies_s& security_mode_fail_r8()
{
assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions");
return c.get<security_mode_fail_r8_ies_s>();
}
const security_mode_fail_r8_ies_s& security_mode_fail_r8() const
{
assert_choice_type("securityModeFailure-r8", type_.to_string(), "criticalExtensions");
return c.get<security_mode_fail_r8_ies_s>();
}
security_mode_fail_r8_ies_s& set_security_mode_fail_r8()
{
set(types::security_mode_fail_r8);
return c.get<security_mode_fail_r8_ies_s>();
}
private:
types type_;
choice_buffer_t<security_mode_fail_r8_ies_s> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SidelinkUEInformation-r12 ::= SEQUENCE
struct sidelink_ue_info_r12_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { sidelink_ue_info_r12, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
sidelink_ue_info_r12_ies_s& sidelink_ue_info_r12()
{
assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c1");
return c;
}
const sidelink_ue_info_r12_ies_s& sidelink_ue_info_r12() const
{
assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c1");
return c;
}
sidelink_ue_info_r12_ies_s& set_sidelink_ue_info_r12()
{
set(types::sidelink_ue_info_r12);
return c;
}
private:
types type_;
sidelink_ue_info_r12_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEAssistanceInformation-r11 ::= SEQUENCE
struct ueassist_info_r11_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ue_assist_info_r11, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ueassist_info_r11_ies_s& ue_assist_info_r11()
{
assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c1");
return c;
}
const ueassist_info_r11_ies_s& ue_assist_info_r11() const
{
assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c1");
return c;
}
ueassist_info_r11_ies_s& set_ue_assist_info_r11()
{
set(types::ue_assist_info_r11);
return c;
}
private:
types type_;
ueassist_info_r11_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UECapabilityInformation ::= SEQUENCE
struct ue_cap_info_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ue_cap_info_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_cap_info_r8_ies_s& ue_cap_info_r8()
{
assert_choice_type("ueCapabilityInformation-r8", type_.to_string(), "c1");
return c;
}
const ue_cap_info_r8_ies_s& ue_cap_info_r8() const
{
assert_choice_type("ueCapabilityInformation-r8", type_.to_string(), "c1");
return c;
}
ue_cap_info_r8_ies_s& set_ue_cap_info_r8()
{
set(types::ue_cap_info_r8);
return c;
}
private:
types type_;
ue_cap_info_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEInformationResponse-r9 ::= SEQUENCE
struct ue_info_resp_r9_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ue_info_resp_r9, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_info_resp_r9_ies_s& ue_info_resp_r9()
{
assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1");
return c;
}
const ue_info_resp_r9_ies_s& ue_info_resp_r9() const
{
assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1");
return c;
}
ue_info_resp_r9_ies_s& set_ue_info_resp_r9()
{
set(types::ue_info_resp_r9);
return c;
}
private:
types type_;
ue_info_resp_r9_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
uint8_t rrc_transaction_id = 0;
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULHandoverPreparationTransfer ::= SEQUENCE
struct ul_ho_prep_transfer_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ul_ho_prep_transfer_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ul_ho_prep_transfer_r8_ies_s& ul_ho_prep_transfer_r8()
{
assert_choice_type("ulHandoverPreparationTransfer-r8", type_.to_string(), "c1");
return c;
}
const ul_ho_prep_transfer_r8_ies_s& ul_ho_prep_transfer_r8() const
{
assert_choice_type("ulHandoverPreparationTransfer-r8", type_.to_string(), "c1");
return c;
}
ul_ho_prep_transfer_r8_ies_s& set_ul_ho_prep_transfer_r8()
{
set(types::ul_ho_prep_transfer_r8);
return c;
}
private:
types type_;
ul_ho_prep_transfer_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULInformationTransfer ::= SEQUENCE
struct ul_info_transfer_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ul_info_transfer_r8, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ul_info_transfer_r8_ies_s& ul_info_transfer_r8()
{
assert_choice_type("ulInformationTransfer-r8", type_.to_string(), "c1");
return c;
}
const ul_info_transfer_r8_ies_s& ul_info_transfer_r8() const
{
assert_choice_type("ulInformationTransfer-r8", type_.to_string(), "c1");
return c;
}
ul_info_transfer_r8_ies_s& set_ul_info_transfer_r8()
{
set(types::ul_info_transfer_r8);
return c;
}
private:
types type_;
ul_info_transfer_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ULInformationTransferMRDC-r15 ::= SEQUENCE
struct ul_info_transfer_mrdc_r15_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ul_info_transfer_mrdc_r15, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ul_info_transfer_mrdc_r15_ies_s& ul_info_transfer_mrdc_r15()
{
assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c1");
return c;
}
const ul_info_transfer_mrdc_r15_ies_s& ul_info_transfer_mrdc_r15() const
{
assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c1");
return c;
}
ul_info_transfer_mrdc_r15_ies_s& set_ul_info_transfer_mrdc_r15()
{
set(types::ul_info_transfer_mrdc_r15);
return c;
}
private:
types type_;
ul_info_transfer_mrdc_r15_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLANConnectionStatusReport-r13 ::= SEQUENCE
struct wlan_conn_status_report_r13_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { wlan_conn_status_report_r13, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
wlan_conn_status_report_r13_ies_s& wlan_conn_status_report_r13()
{
assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c1");
return c;
}
const wlan_conn_status_report_r13_ies_s& wlan_conn_status_report_r13() const
{
assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c1");
return c;
}
wlan_conn_status_report_r13_ies_s& set_wlan_conn_status_report_r13()
{
set(types::wlan_conn_status_report_r13);
return c;
}
private:
types type_;
wlan_conn_status_report_r13_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-DCCH-MessageType ::= CHOICE
struct ul_dcch_msg_type_c {
struct c1_c_ {
struct types_opts {
enum options {
csfb_params_request_cdma2000,
meas_report,
rrc_conn_recfg_complete,
rrc_conn_reest_complete,
rrc_conn_setup_complete,
security_mode_complete,
security_mode_fail,
ue_cap_info,
ul_ho_prep_transfer,
ul_info_transfer,
counter_check_resp,
ue_info_resp_r9,
proximity_ind_r9,
rn_recfg_complete_r10,
mbms_count_resp_r10,
inter_freq_rstd_meas_ind_r10,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
c1_c_(const c1_c_& other);
c1_c_& operator=(const c1_c_& other);
~c1_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
csfb_params_request_cdma2000_s& csfb_params_request_cdma2000()
{
assert_choice_type("csfbParametersRequestCDMA2000", type_.to_string(), "c1");
return c.get<csfb_params_request_cdma2000_s>();
}
meas_report_s& meas_report()
{
assert_choice_type("measurementReport", type_.to_string(), "c1");
return c.get<meas_report_s>();
}
rrc_conn_recfg_complete_s& rrc_conn_recfg_complete()
{
assert_choice_type("rrcConnectionReconfigurationComplete", type_.to_string(), "c1");
return c.get<rrc_conn_recfg_complete_s>();
}
rrc_conn_reest_complete_s& rrc_conn_reest_complete()
{
assert_choice_type("rrcConnectionReestablishmentComplete", type_.to_string(), "c1");
return c.get<rrc_conn_reest_complete_s>();
}
rrc_conn_setup_complete_s& rrc_conn_setup_complete()
{
assert_choice_type("rrcConnectionSetupComplete", type_.to_string(), "c1");
return c.get<rrc_conn_setup_complete_s>();
}
security_mode_complete_s& security_mode_complete()
{
assert_choice_type("securityModeComplete", type_.to_string(), "c1");
return c.get<security_mode_complete_s>();
}
security_mode_fail_s& security_mode_fail()
{
assert_choice_type("securityModeFailure", type_.to_string(), "c1");
return c.get<security_mode_fail_s>();
}
ue_cap_info_s& ue_cap_info()
{
assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1");
return c.get<ue_cap_info_s>();
}
ul_ho_prep_transfer_s& ul_ho_prep_transfer()
{
assert_choice_type("ulHandoverPreparationTransfer", type_.to_string(), "c1");
return c.get<ul_ho_prep_transfer_s>();
}
ul_info_transfer_s& ul_info_transfer()
{
assert_choice_type("ulInformationTransfer", type_.to_string(), "c1");
return c.get<ul_info_transfer_s>();
}
counter_check_resp_s& counter_check_resp()
{
assert_choice_type("counterCheckResponse", type_.to_string(), "c1");
return c.get<counter_check_resp_s>();
}
ue_info_resp_r9_s& ue_info_resp_r9()
{
assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1");
return c.get<ue_info_resp_r9_s>();
}
proximity_ind_r9_s& proximity_ind_r9()
{
assert_choice_type("proximityIndication-r9", type_.to_string(), "c1");
return c.get<proximity_ind_r9_s>();
}
rn_recfg_complete_r10_s& rn_recfg_complete_r10()
{
assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1");
return c.get<rn_recfg_complete_r10_s>();
}
mbms_count_resp_r10_s& mbms_count_resp_r10()
{
assert_choice_type("mbmsCountingResponse-r10", type_.to_string(), "c1");
return c.get<mbms_count_resp_r10_s>();
}
inter_freq_rstd_meas_ind_r10_s& inter_freq_rstd_meas_ind_r10()
{
assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1");
return c.get<inter_freq_rstd_meas_ind_r10_s>();
}
const csfb_params_request_cdma2000_s& csfb_params_request_cdma2000() const
{
assert_choice_type("csfbParametersRequestCDMA2000", type_.to_string(), "c1");
return c.get<csfb_params_request_cdma2000_s>();
}
const meas_report_s& meas_report() const
{
assert_choice_type("measurementReport", type_.to_string(), "c1");
return c.get<meas_report_s>();
}
const rrc_conn_recfg_complete_s& rrc_conn_recfg_complete() const
{
assert_choice_type("rrcConnectionReconfigurationComplete", type_.to_string(), "c1");
return c.get<rrc_conn_recfg_complete_s>();
}
const rrc_conn_reest_complete_s& rrc_conn_reest_complete() const
{
assert_choice_type("rrcConnectionReestablishmentComplete", type_.to_string(), "c1");
return c.get<rrc_conn_reest_complete_s>();
}
const rrc_conn_setup_complete_s& rrc_conn_setup_complete() const
{
assert_choice_type("rrcConnectionSetupComplete", type_.to_string(), "c1");
return c.get<rrc_conn_setup_complete_s>();
}
const security_mode_complete_s& security_mode_complete() const
{
assert_choice_type("securityModeComplete", type_.to_string(), "c1");
return c.get<security_mode_complete_s>();
}
const security_mode_fail_s& security_mode_fail() const
{
assert_choice_type("securityModeFailure", type_.to_string(), "c1");
return c.get<security_mode_fail_s>();
}
const ue_cap_info_s& ue_cap_info() const
{
assert_choice_type("ueCapabilityInformation", type_.to_string(), "c1");
return c.get<ue_cap_info_s>();
}
const ul_ho_prep_transfer_s& ul_ho_prep_transfer() const
{
assert_choice_type("ulHandoverPreparationTransfer", type_.to_string(), "c1");
return c.get<ul_ho_prep_transfer_s>();
}
const ul_info_transfer_s& ul_info_transfer() const
{
assert_choice_type("ulInformationTransfer", type_.to_string(), "c1");
return c.get<ul_info_transfer_s>();
}
const counter_check_resp_s& counter_check_resp() const
{
assert_choice_type("counterCheckResponse", type_.to_string(), "c1");
return c.get<counter_check_resp_s>();
}
const ue_info_resp_r9_s& ue_info_resp_r9() const
{
assert_choice_type("ueInformationResponse-r9", type_.to_string(), "c1");
return c.get<ue_info_resp_r9_s>();
}
const proximity_ind_r9_s& proximity_ind_r9() const
{
assert_choice_type("proximityIndication-r9", type_.to_string(), "c1");
return c.get<proximity_ind_r9_s>();
}
const rn_recfg_complete_r10_s& rn_recfg_complete_r10() const
{
assert_choice_type("rnReconfigurationComplete-r10", type_.to_string(), "c1");
return c.get<rn_recfg_complete_r10_s>();
}
const mbms_count_resp_r10_s& mbms_count_resp_r10() const
{
assert_choice_type("mbmsCountingResponse-r10", type_.to_string(), "c1");
return c.get<mbms_count_resp_r10_s>();
}
const inter_freq_rstd_meas_ind_r10_s& inter_freq_rstd_meas_ind_r10() const
{
assert_choice_type("interFreqRSTDMeasurementIndication-r10", type_.to_string(), "c1");
return c.get<inter_freq_rstd_meas_ind_r10_s>();
}
csfb_params_request_cdma2000_s& set_csfb_params_request_cdma2000()
{
set(types::csfb_params_request_cdma2000);
return c.get<csfb_params_request_cdma2000_s>();
}
meas_report_s& set_meas_report()
{
set(types::meas_report);
return c.get<meas_report_s>();
}
rrc_conn_recfg_complete_s& set_rrc_conn_recfg_complete()
{
set(types::rrc_conn_recfg_complete);
return c.get<rrc_conn_recfg_complete_s>();
}
rrc_conn_reest_complete_s& set_rrc_conn_reest_complete()
{
set(types::rrc_conn_reest_complete);
return c.get<rrc_conn_reest_complete_s>();
}
rrc_conn_setup_complete_s& set_rrc_conn_setup_complete()
{
set(types::rrc_conn_setup_complete);
return c.get<rrc_conn_setup_complete_s>();
}
security_mode_complete_s& set_security_mode_complete()
{
set(types::security_mode_complete);
return c.get<security_mode_complete_s>();
}
security_mode_fail_s& set_security_mode_fail()
{
set(types::security_mode_fail);
return c.get<security_mode_fail_s>();
}
ue_cap_info_s& set_ue_cap_info()
{
set(types::ue_cap_info);
return c.get<ue_cap_info_s>();
}
ul_ho_prep_transfer_s& set_ul_ho_prep_transfer()
{
set(types::ul_ho_prep_transfer);
return c.get<ul_ho_prep_transfer_s>();
}
ul_info_transfer_s& set_ul_info_transfer()
{
set(types::ul_info_transfer);
return c.get<ul_info_transfer_s>();
}
counter_check_resp_s& set_counter_check_resp()
{
set(types::counter_check_resp);
return c.get<counter_check_resp_s>();
}
ue_info_resp_r9_s& set_ue_info_resp_r9()
{
set(types::ue_info_resp_r9);
return c.get<ue_info_resp_r9_s>();
}
proximity_ind_r9_s& set_proximity_ind_r9()
{
set(types::proximity_ind_r9);
return c.get<proximity_ind_r9_s>();
}
rn_recfg_complete_r10_s& set_rn_recfg_complete_r10()
{
set(types::rn_recfg_complete_r10);
return c.get<rn_recfg_complete_r10_s>();
}
mbms_count_resp_r10_s& set_mbms_count_resp_r10()
{
set(types::mbms_count_resp_r10);
return c.get<mbms_count_resp_r10_s>();
}
inter_freq_rstd_meas_ind_r10_s& set_inter_freq_rstd_meas_ind_r10()
{
set(types::inter_freq_rstd_meas_ind_r10);
return c.get<inter_freq_rstd_meas_ind_r10_s>();
}
private:
types type_;
choice_buffer_t<counter_check_resp_s,
csfb_params_request_cdma2000_s,
inter_freq_rstd_meas_ind_r10_s,
mbms_count_resp_r10_s,
meas_report_s,
proximity_ind_r9_s,
rn_recfg_complete_r10_s,
rrc_conn_recfg_complete_s,
rrc_conn_reest_complete_s,
rrc_conn_setup_complete_s,
security_mode_complete_s,
security_mode_fail_s,
ue_cap_info_s,
ue_info_resp_r9_s,
ul_ho_prep_transfer_s,
ul_info_transfer_s>
c;
void destroy_();
};
struct msg_class_ext_c_ {
struct c2_c_ {
struct types_opts {
enum options {
ue_assist_info_r11,
in_dev_coex_ind_r11,
mbms_interest_ind_r11,
scg_fail_info_r12,
sidelink_ue_info_r12,
wlan_conn_status_report_r13,
rrc_conn_resume_complete_r13,
ul_info_transfer_mrdc_r15,
scg_fail_info_nr_r15,
meas_report_app_layer_r15,
fail_info_r15,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c2_c_() = default;
c2_c_(const c2_c_& other);
c2_c_& operator=(const c2_c_& other);
~c2_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ueassist_info_r11_s& ue_assist_info_r11()
{
assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c2");
return c.get<ueassist_info_r11_s>();
}
in_dev_coex_ind_r11_s& in_dev_coex_ind_r11()
{
assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c2");
return c.get<in_dev_coex_ind_r11_s>();
}
mbms_interest_ind_r11_s& mbms_interest_ind_r11()
{
assert_choice_type("mbmsInterestIndication-r11", type_.to_string(), "c2");
return c.get<mbms_interest_ind_r11_s>();
}
scg_fail_info_r12_s& scg_fail_info_r12()
{
assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c2");
return c.get<scg_fail_info_r12_s>();
}
sidelink_ue_info_r12_s& sidelink_ue_info_r12()
{
assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c2");
return c.get<sidelink_ue_info_r12_s>();
}
wlan_conn_status_report_r13_s& wlan_conn_status_report_r13()
{
assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c2");
return c.get<wlan_conn_status_report_r13_s>();
}
rrc_conn_resume_complete_r13_s& rrc_conn_resume_complete_r13()
{
assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c2");
return c.get<rrc_conn_resume_complete_r13_s>();
}
ul_info_transfer_mrdc_r15_s& ul_info_transfer_mrdc_r15()
{
assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c2");
return c.get<ul_info_transfer_mrdc_r15_s>();
}
scg_fail_info_nr_r15_s& scg_fail_info_nr_r15()
{
assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c2");
return c.get<scg_fail_info_nr_r15_s>();
}
meas_report_app_layer_r15_s& meas_report_app_layer_r15()
{
assert_choice_type("measReportAppLayer-r15", type_.to_string(), "c2");
return c.get<meas_report_app_layer_r15_s>();
}
fail_info_r15_s& fail_info_r15()
{
assert_choice_type("failureInformation-r15", type_.to_string(), "c2");
return c.get<fail_info_r15_s>();
}
const ueassist_info_r11_s& ue_assist_info_r11() const
{
assert_choice_type("ueAssistanceInformation-r11", type_.to_string(), "c2");
return c.get<ueassist_info_r11_s>();
}
const in_dev_coex_ind_r11_s& in_dev_coex_ind_r11() const
{
assert_choice_type("inDeviceCoexIndication-r11", type_.to_string(), "c2");
return c.get<in_dev_coex_ind_r11_s>();
}
const mbms_interest_ind_r11_s& mbms_interest_ind_r11() const
{
assert_choice_type("mbmsInterestIndication-r11", type_.to_string(), "c2");
return c.get<mbms_interest_ind_r11_s>();
}
const scg_fail_info_r12_s& scg_fail_info_r12() const
{
assert_choice_type("scgFailureInformation-r12", type_.to_string(), "c2");
return c.get<scg_fail_info_r12_s>();
}
const sidelink_ue_info_r12_s& sidelink_ue_info_r12() const
{
assert_choice_type("sidelinkUEInformation-r12", type_.to_string(), "c2");
return c.get<sidelink_ue_info_r12_s>();
}
const wlan_conn_status_report_r13_s& wlan_conn_status_report_r13() const
{
assert_choice_type("wlanConnectionStatusReport-r13", type_.to_string(), "c2");
return c.get<wlan_conn_status_report_r13_s>();
}
const rrc_conn_resume_complete_r13_s& rrc_conn_resume_complete_r13() const
{
assert_choice_type("rrcConnectionResumeComplete-r13", type_.to_string(), "c2");
return c.get<rrc_conn_resume_complete_r13_s>();
}
const ul_info_transfer_mrdc_r15_s& ul_info_transfer_mrdc_r15() const
{
assert_choice_type("ulInformationTransferMRDC-r15", type_.to_string(), "c2");
return c.get<ul_info_transfer_mrdc_r15_s>();
}
const scg_fail_info_nr_r15_s& scg_fail_info_nr_r15() const
{
assert_choice_type("scgFailureInformationNR-r15", type_.to_string(), "c2");
return c.get<scg_fail_info_nr_r15_s>();
}
const meas_report_app_layer_r15_s& meas_report_app_layer_r15() const
{
assert_choice_type("measReportAppLayer-r15", type_.to_string(), "c2");
return c.get<meas_report_app_layer_r15_s>();
}
const fail_info_r15_s& fail_info_r15() const
{
assert_choice_type("failureInformation-r15", type_.to_string(), "c2");
return c.get<fail_info_r15_s>();
}
ueassist_info_r11_s& set_ue_assist_info_r11()
{
set(types::ue_assist_info_r11);
return c.get<ueassist_info_r11_s>();
}
in_dev_coex_ind_r11_s& set_in_dev_coex_ind_r11()
{
set(types::in_dev_coex_ind_r11);
return c.get<in_dev_coex_ind_r11_s>();
}
mbms_interest_ind_r11_s& set_mbms_interest_ind_r11()
{
set(types::mbms_interest_ind_r11);
return c.get<mbms_interest_ind_r11_s>();
}
scg_fail_info_r12_s& set_scg_fail_info_r12()
{
set(types::scg_fail_info_r12);
return c.get<scg_fail_info_r12_s>();
}
sidelink_ue_info_r12_s& set_sidelink_ue_info_r12()
{
set(types::sidelink_ue_info_r12);
return c.get<sidelink_ue_info_r12_s>();
}
wlan_conn_status_report_r13_s& set_wlan_conn_status_report_r13()
{
set(types::wlan_conn_status_report_r13);
return c.get<wlan_conn_status_report_r13_s>();
}
rrc_conn_resume_complete_r13_s& set_rrc_conn_resume_complete_r13()
{
set(types::rrc_conn_resume_complete_r13);
return c.get<rrc_conn_resume_complete_r13_s>();
}
ul_info_transfer_mrdc_r15_s& set_ul_info_transfer_mrdc_r15()
{
set(types::ul_info_transfer_mrdc_r15);
return c.get<ul_info_transfer_mrdc_r15_s>();
}
scg_fail_info_nr_r15_s& set_scg_fail_info_nr_r15()
{
set(types::scg_fail_info_nr_r15);
return c.get<scg_fail_info_nr_r15_s>();
}
meas_report_app_layer_r15_s& set_meas_report_app_layer_r15()
{
set(types::meas_report_app_layer_r15);
return c.get<meas_report_app_layer_r15_s>();
}
fail_info_r15_s& set_fail_info_r15()
{
set(types::fail_info_r15);
return c.get<fail_info_r15_s>();
}
private:
types type_;
choice_buffer_t<fail_info_r15_s,
in_dev_coex_ind_r11_s,
mbms_interest_ind_r11_s,
meas_report_app_layer_r15_s,
rrc_conn_resume_complete_r13_s,
scg_fail_info_nr_r15_s,
scg_fail_info_r12_s,
sidelink_ue_info_r12_s,
ueassist_info_r11_s,
ul_info_transfer_mrdc_r15_s,
wlan_conn_status_report_r13_s>
c;
void destroy_();
};
struct types_opts {
enum options { c2, msg_class_ext_future_r11, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
msg_class_ext_c_() = default;
msg_class_ext_c_(const msg_class_ext_c_& other);
msg_class_ext_c_& operator=(const msg_class_ext_c_& other);
~msg_class_ext_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c2_c_& c2()
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
const c2_c_& c2() const
{
assert_choice_type("c2", type_.to_string(), "messageClassExtension");
return c.get<c2_c_>();
}
c2_c_& set_c2()
{
set(types::c2);
return c.get<c2_c_>();
}
private:
types type_;
choice_buffer_t<c2_c_> c;
void destroy_();
};
struct types_opts {
enum options { c1, msg_class_ext, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
ul_dcch_msg_type_c() = default;
ul_dcch_msg_type_c(const ul_dcch_msg_type_c& other);
ul_dcch_msg_type_c& operator=(const ul_dcch_msg_type_c& other);
~ul_dcch_msg_type_c() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType");
return c.get<c1_c_>();
}
msg_class_ext_c_& msg_class_ext()
{
assert_choice_type("messageClassExtension", type_.to_string(), "UL-DCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "UL-DCCH-MessageType");
return c.get<c1_c_>();
}
const msg_class_ext_c_& msg_class_ext() const
{
assert_choice_type("messageClassExtension", type_.to_string(), "UL-DCCH-MessageType");
return c.get<msg_class_ext_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
msg_class_ext_c_& set_msg_class_ext()
{
set(types::msg_class_ext);
return c.get<msg_class_ext_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_, msg_class_ext_c_> c;
void destroy_();
};
// UL-DCCH-Message ::= SEQUENCE
struct ul_dcch_msg_s {
ul_dcch_msg_type_c msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqBandInfo ::= SEQUENCE
struct inter_freq_band_info_s {
bool inter_freq_need_for_gaps = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterRAT-BandInfo ::= SEQUENCE
struct inter_rat_band_info_s {
bool inter_rat_need_for_gaps = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// InterFreqBandList ::= SEQUENCE (SIZE (1..64)) OF InterFreqBandInfo
using inter_freq_band_list_l = dyn_array<inter_freq_band_info_s>;
// InterRAT-BandList ::= SEQUENCE (SIZE (1..64)) OF InterRAT-BandInfo
using inter_rat_band_list_l = dyn_array<inter_rat_band_info_s>;
// BandInfoEUTRA ::= SEQUENCE
struct band_info_eutra_s {
bool inter_rat_band_list_present = false;
inter_freq_band_list_l inter_freq_band_list;
inter_rat_band_list_l inter_rat_band_list;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationListEUTRA-r10 ::= SEQUENCE (SIZE (1..128)) OF BandInfoEUTRA
using band_combination_list_eutra_r10_l = dyn_array<band_info_eutra_s>;
// MIMO-CapabilityDL-r10 ::= ENUMERATED
struct mimo_cap_dl_r10_opts {
enum options { two_layers, four_layers, eight_layers, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mimo_cap_dl_r10_opts> mimo_cap_dl_r10_e;
// MIMO-CapabilityUL-r10 ::= ENUMERATED
struct mimo_cap_ul_r10_opts {
enum options { two_layers, four_layers, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mimo_cap_ul_r10_opts> mimo_cap_ul_r10_e;
// CA-MIMO-ParametersDL-r10 ::= SEQUENCE
struct ca_mimo_params_dl_r10_s {
bool supported_mimo_cap_dl_r10_present = false;
ca_bw_class_r10_e ca_bw_class_dl_r10;
mimo_cap_dl_r10_e supported_mimo_cap_dl_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-MIMO-ParametersUL-r10 ::= SEQUENCE
struct ca_mimo_params_ul_r10_s {
bool supported_mimo_cap_ul_r10_present = false;
ca_bw_class_r10_e ca_bw_class_ul_r10;
mimo_cap_ul_r10_e supported_mimo_cap_ul_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParametersDL-r10 ::= SEQUENCE (SIZE (1..16)) OF CA-MIMO-ParametersDL-r10
using band_params_dl_r10_l = dyn_array<ca_mimo_params_dl_r10_s>;
// BandParametersUL-r10 ::= SEQUENCE (SIZE (1..16)) OF CA-MIMO-ParametersUL-r10
using band_params_ul_r10_l = dyn_array<ca_mimo_params_ul_r10_s>;
// BandParameters-r10 ::= SEQUENCE
struct band_params_r10_s {
bool band_params_ul_r10_present = false;
bool band_params_dl_r10_present = false;
uint8_t band_eutra_r10 = 1;
band_params_ul_r10_l band_params_ul_r10;
band_params_dl_r10_l band_params_dl_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-r10 ::= SEQUENCE (SIZE (1..64)) OF BandParameters-r10
using band_combination_params_r10_l = dyn_array<band_params_r10_s>;
// BandParameters-r11 ::= SEQUENCE
struct band_params_r11_s {
struct supported_csi_proc_r11_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<supported_csi_proc_r11_opts> supported_csi_proc_r11_e_;
// member variables
bool band_params_ul_r11_present = false;
bool band_params_dl_r11_present = false;
bool supported_csi_proc_r11_present = false;
uint16_t band_eutra_r11 = 1;
band_params_ul_r10_l band_params_ul_r11;
band_params_dl_r10_l band_params_dl_r11;
supported_csi_proc_r11_e_ supported_csi_proc_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-r11 ::= SEQUENCE
struct band_combination_params_r11_s {
using band_param_list_r11_l_ = dyn_array<band_params_r11_s>;
// member variables
bool ext = false;
bool supported_bw_combination_set_r11_present = false;
bool multiple_timing_advance_r11_present = false;
bool simul_rx_tx_r11_present = false;
band_param_list_r11_l_ band_param_list_r11;
bounded_bitstring<1, 32> supported_bw_combination_set_r11;
band_info_eutra_s band_info_eutra_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IntraBandContiguousCC-Info-r12 ::= SEQUENCE
struct intra_band_contiguous_cc_info_r12_s {
struct supported_csi_proc_r12_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<supported_csi_proc_r12_opts> supported_csi_proc_r12_e_;
// member variables
bool four_layer_tm3_tm4_per_cc_r12_present = false;
bool supported_mimo_cap_dl_r12_present = false;
bool supported_csi_proc_r12_present = false;
mimo_cap_dl_r10_e supported_mimo_cap_dl_r12;
supported_csi_proc_r12_e_ supported_csi_proc_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-MIMO-ParametersDL-r13 ::= SEQUENCE
struct ca_mimo_params_dl_r13_s {
using intra_band_contiguous_cc_info_list_r13_l_ = dyn_array<intra_band_contiguous_cc_info_r12_s>;
// member variables
bool supported_mimo_cap_dl_r13_present = false;
bool four_layer_tm3_tm4_r13_present = false;
ca_bw_class_r10_e ca_bw_class_dl_r13;
mimo_cap_dl_r10_e supported_mimo_cap_dl_r13;
intra_band_contiguous_cc_info_list_r13_l_ intra_band_contiguous_cc_info_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParametersDL-r13 ::= CA-MIMO-ParametersDL-r13
typedef ca_mimo_params_dl_r13_s band_params_dl_r13_s;
// BandParametersUL-r13 ::= CA-MIMO-ParametersUL-r10
typedef ca_mimo_params_ul_r10_s band_params_ul_r13_s;
// BandParameters-r13 ::= SEQUENCE
struct band_params_r13_s {
struct supported_csi_proc_r13_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<supported_csi_proc_r13_opts> supported_csi_proc_r13_e_;
// member variables
bool band_params_ul_r13_present = false;
bool band_params_dl_r13_present = false;
bool supported_csi_proc_r13_present = false;
uint16_t band_eutra_r13 = 1;
band_params_ul_r13_s band_params_ul_r13;
band_params_dl_r13_s band_params_dl_r13;
supported_csi_proc_r13_e_ supported_csi_proc_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-r13 ::= SEQUENCE
struct band_combination_params_r13_s {
using band_param_list_r13_l_ = dyn_array<band_params_r13_s>;
struct dc_support_r13_s_ {
struct supported_cell_grouping_r13_c_ {
struct types_opts {
enum options { three_entries_r13, four_entries_r13, five_entries_r13, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
supported_cell_grouping_r13_c_() = default;
supported_cell_grouping_r13_c_(const supported_cell_grouping_r13_c_& other);
supported_cell_grouping_r13_c_& operator=(const supported_cell_grouping_r13_c_& other);
~supported_cell_grouping_r13_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<3>& three_entries_r13()
{
assert_choice_type("threeEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<3> >();
}
fixed_bitstring<7>& four_entries_r13()
{
assert_choice_type("fourEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<15>& five_entries_r13()
{
assert_choice_type("fiveEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<15> >();
}
const fixed_bitstring<3>& three_entries_r13() const
{
assert_choice_type("threeEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<3> >();
}
const fixed_bitstring<7>& four_entries_r13() const
{
assert_choice_type("fourEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<7> >();
}
const fixed_bitstring<15>& five_entries_r13() const
{
assert_choice_type("fiveEntries-r13", type_.to_string(), "supportedCellGrouping-r13");
return c.get<fixed_bitstring<15> >();
}
fixed_bitstring<3>& set_three_entries_r13()
{
set(types::three_entries_r13);
return c.get<fixed_bitstring<3> >();
}
fixed_bitstring<7>& set_four_entries_r13()
{
set(types::four_entries_r13);
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<15>& set_five_entries_r13()
{
set(types::five_entries_r13);
return c.get<fixed_bitstring<15> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<15> > c;
void destroy_();
};
// member variables
bool async_r13_present = false;
bool supported_cell_grouping_r13_present = false;
supported_cell_grouping_r13_c_ supported_cell_grouping_r13;
};
// member variables
bool different_fallback_supported_r13_present = false;
bool supported_bw_combination_set_r13_present = false;
bool multiple_timing_advance_r13_present = false;
bool simul_rx_tx_r13_present = false;
bool dc_support_r13_present = false;
bool supported_naics_minus2_crs_ap_r13_present = false;
bool comm_supported_bands_per_bc_r13_present = false;
band_param_list_r13_l_ band_param_list_r13;
bounded_bitstring<1, 32> supported_bw_combination_set_r13;
band_info_eutra_s band_info_eutra_r13;
dc_support_r13_s_ dc_support_r13;
bounded_bitstring<1, 8> supported_naics_minus2_crs_ap_r13;
bounded_bitstring<1, 64> comm_supported_bands_per_bc_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1090 ::= SEQUENCE
struct band_params_v1090_s {
bool ext = false;
bool band_eutra_v1090_present = false;
uint16_t band_eutra_v1090 = 65;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1090 ::= SEQUENCE (SIZE (1..64)) OF BandParameters-v1090
using band_combination_params_v1090_l = dyn_array<band_params_v1090_s>;
// CA-MIMO-ParametersDL-v10i0 ::= SEQUENCE
struct ca_mimo_params_dl_v10i0_s {
bool four_layer_tm3_tm4_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v10i0 ::= SEQUENCE
struct band_params_v10i0_s {
using band_params_dl_v10i0_l_ = dyn_array<ca_mimo_params_dl_v10i0_s>;
// member variables
band_params_dl_v10i0_l_ band_params_dl_v10i0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v10i0 ::= SEQUENCE
struct band_combination_params_v10i0_s {
using band_param_list_v10i0_l_ = dyn_array<band_params_v10i0_s>;
// member variables
bool band_param_list_v10i0_present = false;
band_param_list_v10i0_l_ band_param_list_v10i0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1130 ::= SEQUENCE
struct band_params_v1130_s {
struct supported_csi_proc_r11_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<supported_csi_proc_r11_opts> supported_csi_proc_r11_e_;
// member variables
supported_csi_proc_r11_e_ supported_csi_proc_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1130 ::= SEQUENCE
struct band_combination_params_v1130_s {
using band_param_list_r11_l_ = dyn_array<band_params_v1130_s>;
// member variables
bool ext = false;
bool multiple_timing_advance_r11_present = false;
bool simul_rx_tx_r11_present = false;
bool band_param_list_r11_present = false;
band_param_list_r11_l_ band_param_list_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1250 ::= SEQUENCE
struct band_combination_params_v1250_s {
struct dc_support_r12_s_ {
struct supported_cell_grouping_r12_c_ {
struct types_opts {
enum options { three_entries_r12, four_entries_r12, five_entries_r12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
supported_cell_grouping_r12_c_() = default;
supported_cell_grouping_r12_c_(const supported_cell_grouping_r12_c_& other);
supported_cell_grouping_r12_c_& operator=(const supported_cell_grouping_r12_c_& other);
~supported_cell_grouping_r12_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
fixed_bitstring<3>& three_entries_r12()
{
assert_choice_type("threeEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<3> >();
}
fixed_bitstring<7>& four_entries_r12()
{
assert_choice_type("fourEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<15>& five_entries_r12()
{
assert_choice_type("fiveEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<15> >();
}
const fixed_bitstring<3>& three_entries_r12() const
{
assert_choice_type("threeEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<3> >();
}
const fixed_bitstring<7>& four_entries_r12() const
{
assert_choice_type("fourEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<7> >();
}
const fixed_bitstring<15>& five_entries_r12() const
{
assert_choice_type("fiveEntries-r12", type_.to_string(), "supportedCellGrouping-r12");
return c.get<fixed_bitstring<15> >();
}
fixed_bitstring<3>& set_three_entries_r12()
{
set(types::three_entries_r12);
return c.get<fixed_bitstring<3> >();
}
fixed_bitstring<7>& set_four_entries_r12()
{
set(types::four_entries_r12);
return c.get<fixed_bitstring<7> >();
}
fixed_bitstring<15>& set_five_entries_r12()
{
set(types::five_entries_r12);
return c.get<fixed_bitstring<15> >();
}
private:
types type_;
choice_buffer_t<fixed_bitstring<15> > c;
void destroy_();
};
// member variables
bool async_r12_present = false;
bool supported_cell_grouping_r12_present = false;
supported_cell_grouping_r12_c_ supported_cell_grouping_r12;
};
// member variables
bool ext = false;
bool dc_support_r12_present = false;
bool supported_naics_minus2_crs_ap_r12_present = false;
bool comm_supported_bands_per_bc_r12_present = false;
dc_support_r12_s_ dc_support_r12;
bounded_bitstring<1, 8> supported_naics_minus2_crs_ap_r12;
bounded_bitstring<1, 64> comm_supported_bands_per_bc_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-MIMO-ParametersDL-v1270 ::= SEQUENCE
struct ca_mimo_params_dl_v1270_s {
using intra_band_contiguous_cc_info_list_r12_l_ = dyn_array<intra_band_contiguous_cc_info_r12_s>;
// member variables
intra_band_contiguous_cc_info_list_r12_l_ intra_band_contiguous_cc_info_list_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1270 ::= SEQUENCE
struct band_params_v1270_s {
using band_params_dl_v1270_l_ = dyn_array<ca_mimo_params_dl_v1270_s>;
// member variables
band_params_dl_v1270_l_ band_params_dl_v1270;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1270 ::= SEQUENCE
struct band_combination_params_v1270_s {
using band_param_list_v1270_l_ = dyn_array<band_params_v1270_s>;
// member variables
bool band_param_list_v1270_present = false;
band_param_list_v1270_l_ band_param_list_v1270;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-BeamformedCapabilities-r13 ::= SEQUENCE
struct mimo_bf_cap_r13_s {
bool n_max_list_r13_present = false;
uint8_t k_max_r13 = 1;
bounded_bitstring<1, 7> n_max_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-BeamformedCapabilityList-r13 ::= SEQUENCE (SIZE (1..4)) OF MIMO-BeamformedCapabilities-r13
using mimo_bf_cap_list_r13_l = dyn_array<mimo_bf_cap_r13_s>;
// MIMO-NonPrecodedCapabilities-r13 ::= SEQUENCE
struct mimo_non_precoded_cap_r13_s {
bool cfg1_r13_present = false;
bool cfg2_r13_present = false;
bool cfg3_r13_present = false;
bool cfg4_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBCPerTM-r13 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_per_tm_r13_s {
bool non_precoded_r13_present = false;
bool bf_r13_present = false;
bool dmrs_enhance_r13_present = false;
mimo_non_precoded_cap_r13_s non_precoded_r13;
mimo_bf_cap_list_r13_l bf_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBC-r13 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_r13_s {
bool params_tm9_r13_present = false;
bool params_tm10_r13_present = false;
mimo_ca_params_per_bo_bc_per_tm_r13_s params_tm9_r13;
mimo_ca_params_per_bo_bc_per_tm_r13_s params_tm10_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1320 ::= SEQUENCE
struct band_params_v1320_s {
mimo_ca_params_per_bo_bc_r13_s band_params_dl_v1320;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1320 ::= SEQUENCE
struct band_combination_params_v1320_s {
using band_param_list_v1320_l_ = dyn_array<band_params_v1320_s>;
// member variables
bool band_param_list_v1320_present = false;
bool add_rx_tx_performance_req_r13_present = false;
band_param_list_v1320_l_ band_param_list_v1320;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1380 ::= SEQUENCE
struct band_params_v1380_s {
bool tx_ant_switch_dl_r13_present = false;
bool tx_ant_switch_ul_r13_present = false;
uint8_t tx_ant_switch_dl_r13 = 1;
uint8_t tx_ant_switch_ul_r13 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1380 ::= SEQUENCE
struct band_combination_params_v1380_s {
using band_param_list_v1380_l_ = dyn_array<band_params_v1380_s>;
// member variables
bool band_param_list_v1380_present = false;
band_param_list_v1380_l_ band_param_list_v1380;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBCPerTM-v1430 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_per_tm_v1430_s {
bool csi_report_np_r14_present = false;
bool csi_report_advanced_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBC-v1430 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_v1430_s {
bool params_tm9_v1430_present = false;
bool params_tm10_v1430_present = false;
mimo_ca_params_per_bo_bc_per_tm_v1430_s params_tm9_v1430;
mimo_ca_params_per_bo_bc_per_tm_v1430_s params_tm10_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RetuningTimeInfo-r14 ::= SEQUENCE
struct retuning_time_info_r14_s {
struct retuning_info_s_ {
struct rf_retuning_time_dl_r14_opts {
enum options {
n0,
n0dot5,
n1,
n1dot5,
n2,
n2dot5,
n3,
n3dot5,
n4,
n4dot5,
n5,
n5dot5,
n6,
n6dot5,
n7,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rf_retuning_time_dl_r14_opts> rf_retuning_time_dl_r14_e_;
struct rf_retuning_time_ul_r14_opts {
enum options {
n0,
n0dot5,
n1,
n1dot5,
n2,
n2dot5,
n3,
n3dot5,
n4,
n4dot5,
n5,
n5dot5,
n6,
n6dot5,
n7,
spare1,
nulltype
} value;
typedef float number_type;
std::string to_string() const;
float to_number() const;
std::string to_number_string() const;
};
typedef enumerated<rf_retuning_time_ul_r14_opts> rf_retuning_time_ul_r14_e_;
// member variables
bool rf_retuning_time_dl_r14_present = false;
bool rf_retuning_time_ul_r14_present = false;
rf_retuning_time_dl_r14_e_ rf_retuning_time_dl_r14;
rf_retuning_time_ul_r14_e_ rf_retuning_time_ul_r14;
};
// member variables
retuning_info_s_ retuning_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UL-256QAM-perCC-Info-r14 ::= SEQUENCE
struct ul_minus256_qam_per_cc_info_r14_s {
bool ul_minus256_qam_per_cc_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// 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>;
// 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;
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1430 ::= SEQUENCE
struct band_combination_params_v1430_s {
using band_param_list_v1430_l_ = dyn_array<band_params_v1430_s>;
// member variables
bool band_param_list_v1430_present = false;
bool v2x_supported_tx_band_comb_list_per_bc_r14_present = false;
bool v2x_supported_rx_band_comb_list_per_bc_r14_present = false;
band_param_list_v1430_l_ band_param_list_v1430;
bounded_bitstring<1, 384> v2x_supported_tx_band_comb_list_per_bc_r14;
bounded_bitstring<1, 384> v2x_supported_rx_band_comb_list_per_bc_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MUST-Parameters-r14 ::= SEQUENCE
struct must_params_r14_s {
bool must_tm234_up_to2_tx_r14_present = false;
bool must_tm89_up_to_one_interfering_layer_r14_present = false;
bool must_tm10_up_to_one_interfering_layer_r14_present = false;
bool must_tm89_up_to_three_interfering_layers_r14_present = false;
bool must_tm10_up_to_three_interfering_layers_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1450 ::= SEQUENCE
struct band_params_v1450_s {
bool must_cap_per_band_r14_present = false;
must_params_r14_s must_cap_per_band_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1450 ::= SEQUENCE
struct band_combination_params_v1450_s {
using band_param_list_v1450_l_ = dyn_array<band_params_v1450_s>;
// member variables
bool band_param_list_v1450_present = false;
band_param_list_v1450_l_ band_param_list_v1450;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBCPerTM-v1470 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_per_tm_v1470_s {
struct csi_report_advanced_max_ports_r14_opts {
enum options { n8, n12, n16, n20, n24, n28, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_advanced_max_ports_r14_opts> csi_report_advanced_max_ports_r14_e_;
// member variables
bool csi_report_advanced_max_ports_r14_present = false;
csi_report_advanced_max_ports_r14_e_ csi_report_advanced_max_ports_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBC-v1470 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_v1470_s {
mimo_ca_params_per_bo_bc_per_tm_v1470_s params_tm9_v1470;
mimo_ca_params_per_bo_bc_per_tm_v1470_s params_tm10_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1470 ::= SEQUENCE
struct band_params_v1470_s {
bool band_params_dl_v1470_present = false;
mimo_ca_params_per_bo_bc_v1470_s band_params_dl_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1470 ::= SEQUENCE
struct band_combination_params_v1470_s {
using band_param_list_v1470_l_ = dyn_array<band_params_v1470_s>;
// member variables
bool band_param_list_v1470_present = false;
bool srs_max_simul_ccs_r14_present = false;
band_param_list_v1470_l_ band_param_list_v1470;
uint8_t srs_max_simul_ccs_r14 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
bool max_num_ul_ccs_r15_present = false;
uint8_t max_num_dl_ccs_r15 = 1;
uint8_t max_num_ul_ccs_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-MIMO-ParametersDL-r15 ::= SEQUENCE
struct ca_mimo_params_dl_r15_s {
using intra_band_contiguous_cc_info_list_r15_l_ = dyn_array<intra_band_contiguous_cc_info_r12_s>;
// member variables
bool supported_mimo_cap_dl_r15_present = false;
bool four_layer_tm3_tm4_r15_present = false;
bool intra_band_contiguous_cc_info_list_r15_present = false;
mimo_cap_dl_r10_e supported_mimo_cap_dl_r15;
intra_band_contiguous_cc_info_list_r15_l_ intra_band_contiguous_cc_info_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CA-MIMO-ParametersUL-r15 ::= SEQUENCE
struct ca_mimo_params_ul_r15_s {
bool supported_mimo_cap_ul_r15_present = false;
mimo_cap_ul_r10_e supported_mimo_cap_ul_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// STTI-SupportedCombinations-r15 ::= SEQUENCE
struct stti_supported_combinations_r15_s {
using combination_minus22_minus27_r15_l_ = dyn_array<dl_ul_ccs_r15_s>;
using combination_minus77_minus22_r15_l_ = dyn_array<dl_ul_ccs_r15_s>;
using combination_minus77_minus27_r15_l_ = dyn_array<dl_ul_ccs_r15_s>;
// member variables
bool combination_minus22_r15_present = false;
bool combination_minus77_r15_present = false;
bool combination_minus27_r15_present = false;
bool combination_minus22_minus27_r15_present = false;
bool combination_minus77_minus22_r15_present = false;
bool combination_minus77_minus27_r15_present = false;
dl_ul_ccs_r15_s combination_minus22_r15;
dl_ul_ccs_r15_s combination_minus77_r15;
dl_ul_ccs_r15_s combination_minus27_r15;
combination_minus22_minus27_r15_l_ combination_minus22_minus27_r15;
combination_minus77_minus22_r15_l_ combination_minus77_minus22_r15;
combination_minus77_minus27_r15_l_ combination_minus77_minus27_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// STTI-SPT-BandParameters-r15 ::= SEQUENCE
struct stti_spt_band_params_r15_s {
struct stti_supported_csi_proc_r15_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<stti_supported_csi_proc_r15_opts> stti_supported_csi_proc_r15_e_;
// member variables
bool ext = false;
bool dl_minus1024_qam_slot_r15_present = false;
bool dl_minus1024_qam_subslot_ta_minus1_r15_present = false;
bool dl_minus1024_qam_subslot_ta_minus2_r15_present = false;
bool simul_tx_different_tx_dur_r15_present = false;
bool stti_ca_mimo_params_dl_r15_present = false;
bool stti_fd_mimo_coexistence_present = false;
bool stti_mimo_ca_params_per_bo_bcs_r15_present = false;
bool stti_mimo_ca_params_per_bo_bcs_v1530_present = false;
bool stti_supported_combinations_r15_present = false;
bool stti_supported_csi_proc_r15_present = false;
bool ul_minus256_qam_slot_r15_present = false;
bool ul_minus256_qam_subslot_r15_present = false;
ca_mimo_params_dl_r15_s stti_ca_mimo_params_dl_r15;
ca_mimo_params_ul_r15_s stti_ca_mimo_params_ul_r15;
mimo_ca_params_per_bo_bc_r13_s stti_mimo_ca_params_per_bo_bcs_r15;
mimo_ca_params_per_bo_bc_v1430_s stti_mimo_ca_params_per_bo_bcs_v1530;
stti_supported_combinations_r15_s stti_supported_combinations_r15;
stti_supported_csi_proc_r15_e_ stti_supported_csi_proc_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParameters-v1530 ::= SEQUENCE
struct band_params_v1530_s {
bool ue_tx_ant_sel_srs_minus1_t4_r_r15_present = false;
bool ue_tx_ant_sel_srs_minus2_t4_r_minus2_pairs_r15_present = false;
bool ue_tx_ant_sel_srs_minus2_t4_r_minus3_pairs_r15_present = false;
bool dl_minus1024_qam_r15_present = false;
bool qcl_type_c_operation_r15_present = false;
bool qcl_cri_based_csi_report_r15_present = false;
bool stti_spt_band_params_r15_present = false;
stti_spt_band_params_r15_s stti_spt_band_params_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SPT-Parameters-r15 ::= SEQUENCE
struct spt_params_r15_s {
bool frame_structure_type_spt_r15_present = false;
bool max_num_ccs_spt_r15_present = false;
fixed_bitstring<3> frame_structure_type_spt_r15;
uint8_t max_num_ccs_spt_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1530 ::= SEQUENCE
struct band_combination_params_v1530_s {
using band_param_list_v1530_l_ = dyn_array<band_params_v1530_s>;
// member variables
bool band_param_list_v1530_present = false;
bool spt_params_r15_present = false;
band_param_list_v1530_l_ band_param_list_v1530;
spt_params_r15_s spt_params_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParametersExt-r10 ::= SEQUENCE
struct band_combination_params_ext_r10_s {
bool supported_bw_combination_set_r10_present = false;
bounded_bitstring<1, 32> supported_bw_combination_set_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandListEUTRA ::= SEQUENCE (SIZE (1..64)) OF BandInfoEUTRA
using band_list_eutra_l = dyn_array<band_info_eutra_s>;
// V2X-BandwidthClass-r14 ::= ENUMERATED
struct v2x_bw_class_r14_opts {
enum options { a, b, c, d, e, f, /*...*/ c1_v1530, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<v2x_bw_class_r14_opts, true, 1> v2x_bw_class_r14_e;
// V2X-BandwidthClassSL-r14 ::= SEQUENCE (SIZE (1..16)) OF V2X-BandwidthClass-r14
using v2x_bw_class_sl_r14_l = bounded_array<v2x_bw_class_r14_e, 16>;
// BandParametersRxSL-r14 ::= SEQUENCE
struct band_params_rx_sl_r14_s {
bool v2x_high_reception_r14_present = false;
v2x_bw_class_sl_r14_l v2x_bw_class_rx_sl_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandParametersTxSL-r14 ::= SEQUENCE
struct band_params_tx_sl_r14_s {
bool v2x_e_nb_sched_r14_present = false;
bool v2x_high_pwr_r14_present = false;
v2x_bw_class_sl_r14_l v2x_bw_class_tx_sl_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FeatureSetDL-PerCC-r15 ::= SEQUENCE
struct feature_set_dl_per_cc_r15_s {
struct supported_csi_proc_r15_opts {
enum options { n1, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<supported_csi_proc_r15_opts> supported_csi_proc_r15_e_;
// member variables
bool four_layer_tm3_tm4_r15_present = false;
bool supported_mimo_cap_dl_r15_present = false;
bool supported_csi_proc_r15_present = false;
mimo_cap_dl_r10_e supported_mimo_cap_dl_r15;
supported_csi_proc_r15_e_ supported_csi_proc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBCPerTM-r15 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_per_tm_r15_s {
bool non_precoded_r13_present = false;
bool bf_r13_present = false;
bool dmrs_enhance_r13_present = false;
bool csi_report_np_r14_present = false;
bool csi_report_advanced_r14_present = false;
mimo_non_precoded_cap_r13_s non_precoded_r13;
mimo_bf_cap_list_r13_l bf_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-CA-ParametersPerBoBC-r15 ::= SEQUENCE
struct mimo_ca_params_per_bo_bc_r15_s {
bool params_tm9_r15_present = false;
bool params_tm10_r15_present = false;
mimo_ca_params_per_bo_bc_per_tm_r15_s params_tm9_r15;
mimo_ca_params_per_bo_bc_per_tm_r15_s params_tm10_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FeatureSetDL-r15 ::= SEQUENCE
struct feature_set_dl_r15_s {
using feature_set_per_cc_list_dl_r15_l_ = bounded_array<uint8_t, 32>;
// member variables
bool mimo_ca_params_per_bo_bc_r15_present = false;
mimo_ca_params_per_bo_bc_r15_s mimo_ca_params_per_bo_bc_r15;
feature_set_per_cc_list_dl_r15_l_ feature_set_per_cc_list_dl_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FeatureSetUL-PerCC-r15 ::= SEQUENCE
struct feature_set_ul_per_cc_r15_s {
bool supported_mimo_cap_ul_r15_present = false;
bool ul_minus256_qam_r15_present = false;
mimo_cap_ul_r10_e supported_mimo_cap_ul_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FeatureSetUL-r15 ::= SEQUENCE
struct feature_set_ul_r15_s {
using feature_set_per_cc_list_ul_r15_l_ = bounded_array<uint8_t, 32>;
// member variables
feature_set_per_cc_list_ul_r15_l_ feature_set_per_cc_list_ul_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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>;
// member variables
bool ext = false;
bool feature_sets_dl_r15_present = false;
bool feature_sets_dl_per_cc_r15_present = false;
bool feature_sets_ul_r15_present = false;
bool feature_sets_ul_per_cc_r15_present = false;
feature_sets_dl_r15_l_ feature_sets_dl_r15;
feature_sets_dl_per_cc_r15_l_ feature_sets_dl_per_cc_r15;
feature_sets_ul_r15_l_ feature_sets_ul_r15;
feature_sets_ul_per_cc_r15_l_ feature_sets_ul_per_cc_r15;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FreqBandIndicatorListEUTRA-r12 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (1..256)
using freq_band_ind_list_eutra_r12_l = dyn_array<uint16_t>;
// SupportedBandList1XRTT ::= SEQUENCE (SIZE (1..32)) OF BandclassCDMA2000
using supported_band_list1_xrtt_l = bounded_array<bandclass_cdma2000_e, 32>;
// IRAT-ParametersCDMA2000-1XRTT ::= SEQUENCE
struct irat_params_cdma2000_minus1_xrtt_s {
struct tx_cfg1_xrtt_opts {
enum options { single, dual, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tx_cfg1_xrtt_opts> tx_cfg1_xrtt_e_;
struct rx_cfg1_xrtt_opts {
enum options { single, dual, nulltype } value;
std::string to_string() const;
};
typedef enumerated<rx_cfg1_xrtt_opts> rx_cfg1_xrtt_e_;
// member variables
supported_band_list1_xrtt_l supported_band_list1_xrtt;
tx_cfg1_xrtt_e_ tx_cfg1_xrtt;
rx_cfg1_xrtt_e_ rx_cfg1_xrtt;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandListHRPD ::= SEQUENCE (SIZE (1..32)) OF BandclassCDMA2000
using supported_band_list_hrpd_l = bounded_array<bandclass_cdma2000_e, 32>;
// IRAT-ParametersCDMA2000-HRPD ::= SEQUENCE
struct irat_params_cdma2000_hrpd_s {
struct tx_cfg_hrpd_opts {
enum options { single, dual, nulltype } value;
std::string to_string() const;
};
typedef enumerated<tx_cfg_hrpd_opts> tx_cfg_hrpd_e_;
struct rx_cfg_hrpd_opts {
enum options { single, dual, nulltype } value;
std::string to_string() const;
};
typedef enumerated<rx_cfg_hrpd_opts> rx_cfg_hrpd_e_;
// member variables
supported_band_list_hrpd_l supported_band_list_hrpd;
tx_cfg_hrpd_e_ tx_cfg_hrpd;
rx_cfg_hrpd_e_ rx_cfg_hrpd;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandGERAN ::= ENUMERATED
struct supported_band_geran_opts {
enum options {
gsm450,
gsm480,
gsm710,
gsm750,
gsm810,
gsm850,
gsm900_p,
gsm900_e,
gsm900_r,
gsm1800,
gsm1900,
spare5,
spare4,
spare3,
spare2,
spare1,
// ...
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<supported_band_geran_opts, true> supported_band_geran_e;
// SupportedBandListGERAN ::= SEQUENCE (SIZE (1..64)) OF SupportedBandGERAN
using supported_band_list_geran_l = dyn_array<supported_band_geran_e>;
// IRAT-ParametersGERAN ::= SEQUENCE
struct irat_params_geran_s {
supported_band_list_geran_l supported_band_list_geran;
bool inter_rat_ps_ho_to_geran = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandNR-r15 ::= SEQUENCE
struct supported_band_nr_r15_s {
uint16_t band_nr_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandListNR-r15 ::= SEQUENCE (SIZE (1..1024)) OF SupportedBandNR-r15
using supported_band_list_nr_r15_l = dyn_array<supported_band_nr_r15_s>;
// IRAT-ParametersNR-r15 ::= SEQUENCE
struct irat_params_nr_r15_s {
bool en_dc_r15_present = false;
bool event_b2_r15_present = false;
bool supported_band_list_nr_r15_present = false;
supported_band_list_nr_r15_l supported_band_list_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandUTRA-FDD ::= ENUMERATED
struct supported_band_utra_fdd_opts {
enum options {
band_i,
band_ii,
band_iii,
band_iv,
band_v,
band_vi,
band_vii,
band_viii,
band_ix,
band_x,
band_xi,
band_xii,
band_xiii,
band_xiv,
band_xv,
band_xvi,
// ...
band_xvii_minus8a0,
band_xviii_minus8a0,
band_xix_minus8a0,
band_xx_minus8a0,
band_xxi_minus8a0,
band_xxii_minus8a0,
band_xxiii_minus8a0,
band_xxiv_minus8a0,
band_xxv_minus8a0,
band_xxvi_minus8a0,
band_xxvii_minus8a0,
band_xxviii_minus8a0,
band_xxix_minus8a0,
band_xxx_minus8a0,
band_xxxi_minus8a0,
band_xxxii_minus8a0,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<supported_band_utra_fdd_opts, true, 16> supported_band_utra_fdd_e;
// SupportedBandListUTRA-FDD ::= SEQUENCE (SIZE (1..64)) OF SupportedBandUTRA-FDD
using supported_band_list_utra_fdd_l = dyn_array<supported_band_utra_fdd_e>;
// IRAT-ParametersUTRA-FDD ::= SEQUENCE
struct irat_params_utra_fdd_s {
supported_band_list_utra_fdd_l supported_band_list_utra_fdd;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandUTRA-TDD128 ::= ENUMERATED
struct supported_band_utra_tdd128_opts {
enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<supported_band_utra_tdd128_opts, true> supported_band_utra_tdd128_e;
// SupportedBandListUTRA-TDD128 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandUTRA-TDD128
using supported_band_list_utra_tdd128_l = dyn_array<supported_band_utra_tdd128_e>;
// IRAT-ParametersUTRA-TDD128 ::= SEQUENCE
struct irat_params_utra_tdd128_s {
supported_band_list_utra_tdd128_l supported_band_list_utra_tdd128;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandUTRA-TDD384 ::= ENUMERATED
struct supported_band_utra_tdd384_opts {
enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<supported_band_utra_tdd384_opts, true> supported_band_utra_tdd384_e;
// SupportedBandListUTRA-TDD384 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandUTRA-TDD384
using supported_band_list_utra_tdd384_l = dyn_array<supported_band_utra_tdd384_e>;
// IRAT-ParametersUTRA-TDD384 ::= SEQUENCE
struct irat_params_utra_tdd384_s {
supported_band_list_utra_tdd384_l supported_band_list_utra_tdd384;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandUTRA-TDD768 ::= ENUMERATED
struct supported_band_utra_tdd768_opts {
enum options { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, /*...*/ nulltype } value;
std::string to_string() const;
};
typedef enumerated<supported_band_utra_tdd768_opts, true> supported_band_utra_tdd768_e;
// SupportedBandListUTRA-TDD768 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandUTRA-TDD768
using supported_band_list_utra_tdd768_l = dyn_array<supported_band_utra_tdd768_e>;
// IRAT-ParametersUTRA-TDD768 ::= SEQUENCE
struct irat_params_utra_tdd768_s {
supported_band_list_utra_tdd768_l supported_band_list_utra_tdd768;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersWLAN-r13 ::= SEQUENCE
struct irat_params_wlan_r13_s {
using supported_band_list_wlan_r13_l_ = bounded_array<wlan_band_ind_r13_e, 8>;
// member variables
bool supported_band_list_wlan_r13_present = false;
supported_band_list_wlan_r13_l_ supported_band_list_wlan_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// ProcessingTimelineSet-r15 ::= ENUMERATED
struct processing_timeline_set_r15_opts {
enum options { set1, set2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<processing_timeline_set_r15_opts> processing_timeline_set_r15_e;
// SkipSubframeProcessing-r15 ::= SEQUENCE
struct skip_sf_processing_r15_s {
bool skip_processing_dl_slot_r15_present = false;
bool skip_processing_dl_sub_slot_r15_present = false;
bool skip_processing_ul_slot_r15_present = false;
bool skip_processing_ul_sub_slot_r15_present = false;
uint8_t skip_processing_dl_slot_r15 = 0;
uint8_t skip_processing_dl_sub_slot_r15 = 0;
uint8_t skip_processing_ul_slot_r15 = 0;
uint8_t skip_processing_ul_sub_slot_r15 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-v1530 ::= SEQUENCE
struct mac_params_v1530_s {
using min_proc_timeline_subslot_r15_l_ = bounded_array<processing_timeline_set_r15_e, 3>;
// member variables
bool min_proc_timeline_subslot_r15_present = false;
bool skip_sf_processing_r15_present = false;
bool early_data_up_r15_present = false;
bool dormant_scell_state_r15_present = false;
bool direct_scell_activation_r15_present = false;
bool direct_scell_hibernation_r15_present = false;
bool extended_lcid_dupl_r15_present = false;
bool sps_serving_cell_r15_present = false;
min_proc_timeline_subslot_r15_l_ min_proc_timeline_subslot_r15;
skip_sf_processing_r15_s skip_sf_processing_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-BeamformedCapabilities-r13 ::= SEQUENCE
struct mimo_ue_bf_cap_r13_s {
bool alt_codebook_r13_present = false;
mimo_bf_cap_list_r13_l mimo_bf_cap_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-ParametersPerTM-r13 ::= SEQUENCE
struct mimo_ue_params_per_tm_r13_s {
bool non_precoded_r13_present = false;
bool bf_r13_present = false;
bool ch_meas_restrict_r13_present = false;
bool dmrs_enhance_r13_present = false;
bool csi_rs_enhance_tdd_r13_present = false;
mimo_non_precoded_cap_r13_s non_precoded_r13;
mimo_ue_bf_cap_r13_s bf_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-Parameters-r13 ::= SEQUENCE
struct mimo_ue_params_r13_s {
bool params_tm9_r13_present = false;
bool params_tm10_r13_present = false;
bool srs_enhance_tdd_r13_present = false;
bool srs_enhance_r13_present = false;
bool interference_meas_restrict_r13_present = false;
mimo_ue_params_per_tm_r13_s params_tm9_r13;
mimo_ue_params_per_tm_r13_s params_tm10_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-ParametersPerTM-v1430 ::= SEQUENCE
struct mimo_ue_params_per_tm_v1430_s {
struct nzp_csi_rs_aperiodic_info_r14_s_ {
struct nmax_res_r14_opts {
enum options { ffs1, ffs2, ffs3, ffs4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<nmax_res_r14_opts> nmax_res_r14_e_;
// member variables
uint8_t nmax_proc_r14 = 5;
nmax_res_r14_e_ nmax_res_r14;
};
struct nzp_csi_rs_periodic_info_r14_s_ {
struct nmax_res_r14_opts {
enum options { ffs1, ffs2, ffs3, ffs4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<nmax_res_r14_opts> nmax_res_r14_e_;
// member variables
nmax_res_r14_e_ nmax_res_r14;
};
// member variables
bool nzp_csi_rs_aperiodic_info_r14_present = false;
bool nzp_csi_rs_periodic_info_r14_present = false;
bool zp_csi_rs_aperiodic_info_r14_present = false;
bool ul_dmrs_enhance_r14_present = false;
bool density_reduction_np_r14_present = false;
bool density_reduction_bf_r14_present = false;
bool hybrid_csi_r14_present = false;
bool semi_ol_r14_present = false;
bool csi_report_np_r14_present = false;
bool csi_report_advanced_r14_present = false;
nzp_csi_rs_aperiodic_info_r14_s_ nzp_csi_rs_aperiodic_info_r14;
nzp_csi_rs_periodic_info_r14_s_ nzp_csi_rs_periodic_info_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-Parameters-v1430 ::= SEQUENCE
struct mimo_ue_params_v1430_s {
bool params_tm9_v1430_present = false;
bool params_tm10_v1430_present = false;
mimo_ue_params_per_tm_v1430_s params_tm9_v1430;
mimo_ue_params_per_tm_v1430_s params_tm10_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-ParametersPerTM-v1470 ::= SEQUENCE
struct mimo_ue_params_per_tm_v1470_s {
struct csi_report_advanced_max_ports_r14_opts {
enum options { n8, n12, n16, n20, n24, n28, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<csi_report_advanced_max_ports_r14_opts> csi_report_advanced_max_ports_r14_e_;
// member variables
bool csi_report_advanced_max_ports_r14_present = false;
csi_report_advanced_max_ports_r14_e_ csi_report_advanced_max_ports_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MIMO-UE-Parameters-v1470 ::= SEQUENCE
struct mimo_ue_params_v1470_s {
mimo_ue_params_per_tm_v1470_s params_tm9_v1470;
mimo_ue_params_per_tm_v1470_s params_tm10_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters ::= SEQUENCE
struct meas_params_s {
band_list_eutra_l band_list_eutra;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1020 ::= SEQUENCE
struct meas_params_v1020_s {
band_combination_list_eutra_r10_l band_combination_list_eutra_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NAICS-Capability-Entry-r12 ::= SEQUENCE
struct naics_cap_entry_r12_s {
struct nof_aggregated_prb_r12_opts {
enum options {
n50,
n75,
n100,
n125,
n150,
n175,
n200,
n225,
n250,
n275,
n300,
n350,
n400,
n450,
n500,
spare,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<nof_aggregated_prb_r12_opts> nof_aggregated_prb_r12_e_;
// member variables
bool ext = false;
uint8_t nof_naics_capable_cc_r12 = 1;
nof_aggregated_prb_r12_e_ nof_aggregated_prb_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NAICS-Capability-List-r12 ::= SEQUENCE (SIZE (1..8)) OF NAICS-Capability-Entry-r12
using naics_cap_list_r12_l = dyn_array<naics_cap_entry_r12_s>;
// NonContiguousUL-RA-WithinCC-r10 ::= SEQUENCE
struct non_contiguous_ul_ra_within_cc_r10_s {
bool non_contiguous_ul_ra_within_cc_info_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NonContiguousUL-RA-WithinCC-List-r10 ::= SEQUENCE (SIZE (1..64)) OF NonContiguousUL-RA-WithinCC-r10
using non_contiguous_ul_ra_within_cc_list_r10_l = dyn_array<non_contiguous_ul_ra_within_cc_r10_s>;
// ROHC-ProfileSupportList-r15 ::= SEQUENCE
struct rohc_profile_support_list_r15_s {
bool profile0x0001_r15 = false;
bool profile0x0002_r15 = false;
bool profile0x0003_r15 = false;
bool profile0x0004_r15 = false;
bool profile0x0006_r15 = false;
bool profile0x0101_r15 = false;
bool profile0x0102_r15 = false;
bool profile0x0103_r15 = false;
bool profile0x0104_r15 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-Parameters ::= SEQUENCE
struct pdcp_params_s {
struct max_num_rohc_context_sessions_opts {
enum options {
cs2,
cs4,
cs8,
cs12,
cs16,
cs24,
cs32,
cs48,
cs64,
cs128,
cs256,
cs512,
cs1024,
cs16384,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<max_num_rohc_context_sessions_opts> max_num_rohc_context_sessions_e_;
// member variables
bool ext = false;
bool max_num_rohc_context_sessions_present = false;
rohc_profile_support_list_r15_s supported_rohc_profiles;
max_num_rohc_context_sessions_e_ max_num_rohc_context_sessions;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedOperatorDic-r15 ::= SEQUENCE
struct supported_operator_dic_r15_s {
uint8_t version_of_dictionary_r15 = 0;
plmn_id_s associated_plmn_id_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedUDC-r15 ::= SEQUENCE
struct supported_udc_r15_s {
bool supported_standard_dic_r15_present = false;
bool supported_operator_dic_r15_present = false;
supported_operator_dic_r15_s supported_operator_dic_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-Parameters-v1530 ::= SEQUENCE
struct pdcp_params_v1530_s {
bool supported_udc_r15_present = false;
bool pdcp_dupl_r15_present = false;
supported_udc_r15_s supported_udc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-ParametersNR-r15 ::= SEQUENCE
struct pdcp_params_nr_r15_s {
struct rohc_context_max_sessions_r15_opts {
enum options {
cs2,
cs4,
cs8,
cs12,
cs16,
cs24,
cs32,
cs48,
cs64,
cs128,
cs256,
cs512,
cs1024,
cs16384,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<rohc_context_max_sessions_r15_opts> rohc_context_max_sessions_r15_e_;
struct rohc_profiles_ul_only_r15_s_ {
bool profile0x0006_r15 = false;
};
// member variables
bool rohc_context_max_sessions_r15_present = false;
bool rohc_context_continue_r15_present = false;
bool out_of_order_delivery_r15_present = false;
bool sn_size_lo_r15_present = false;
bool ims_voice_over_nr_pdcp_mcg_bearer_r15_present = false;
bool ims_voice_over_nr_pdcp_scg_bearer_r15_present = false;
rohc_profile_support_list_r15_s rohc_profiles_r15;
rohc_context_max_sessions_r15_e_ rohc_context_max_sessions_r15;
rohc_profiles_ul_only_r15_s_ rohc_profiles_ul_only_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1020 ::= SEQUENCE
struct phy_layer_params_v1020_s {
bool two_ant_ports_for_pucch_r10_present = false;
bool tm9_with_minus8_tx_fdd_r10_present = false;
bool pmi_disabling_r10_present = false;
bool cross_carrier_sched_r10_present = false;
bool simul_pucch_pusch_r10_present = false;
bool multi_cluster_pusch_within_cc_r10_present = false;
bool non_contiguous_ul_ra_within_cc_list_r10_present = false;
non_contiguous_ul_ra_within_cc_list_r10_l non_contiguous_ul_ra_within_cc_list_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1250 ::= SEQUENCE
struct phy_layer_params_v1250_s {
bool e_harq_pattern_fdd_r12_present = false;
bool enhanced_minus4_tx_codebook_r12_present = false;
bool tdd_fdd_ca_pcell_duplex_r12_present = false;
bool phy_tdd_re_cfg_tdd_pcell_r12_present = false;
bool phy_tdd_re_cfg_fdd_pcell_r12_present = false;
bool pusch_feedback_mode_r12_present = false;
bool pusch_srs_pwr_ctrl_sf_set_r12_present = false;
bool csi_sf_set_r12_present = false;
bool no_res_restrict_for_tti_bundling_r12_present = false;
bool discovery_signals_in_deact_scell_r12_present = false;
bool naics_cap_list_r12_present = false;
fixed_bitstring<2> tdd_fdd_ca_pcell_duplex_r12;
naics_cap_list_r12_l naics_cap_list_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1320 ::= SEQUENCE
struct phy_layer_params_v1320_s {
bool mimo_ue_params_r13_present = false;
mimo_ue_params_r13_s mimo_ue_params_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1330 ::= SEQUENCE
struct phy_layer_params_v1330_s {
bool cch_interf_mitigation_ref_rec_type_a_r13_present = false;
bool cch_interf_mitigation_ref_rec_type_b_r13_present = false;
bool cch_interf_mitigation_max_num_ccs_r13_present = false;
bool crs_interf_mitigation_tm1to_tm9_r13_present = false;
uint8_t cch_interf_mitigation_max_num_ccs_r13 = 1;
uint8_t crs_interf_mitigation_tm1to_tm9_r13 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// FeMBMS-Unicast-Parameters-r14 ::= SEQUENCE
struct fe_mbms_unicast_params_r14_s {
bool unicast_fembms_mixed_scell_r14_present = false;
bool empty_unicast_region_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1430 ::= SEQUENCE
struct phy_layer_params_v1430_s {
struct ce_pdsch_pusch_max_bw_r14_opts {
enum options { bw5, bw20, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ce_pdsch_pusch_max_bw_r14_opts> ce_pdsch_pusch_max_bw_r14_e_;
struct ce_retuning_symbols_r14_opts {
enum options { n0, n1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ce_retuning_symbols_r14_opts> ce_retuning_symbols_r14_e_;
// member variables
bool ce_pusch_nb_max_tbs_r14_present = false;
bool ce_pdsch_pusch_max_bw_r14_present = false;
bool ce_harq_ack_bundling_r14_present = false;
bool ce_pdsch_ten_processes_r14_present = false;
bool ce_retuning_symbols_r14_present = false;
bool ce_pdsch_pusch_enhancement_r14_present = false;
bool ce_sched_enhancement_r14_present = false;
bool ce_srs_enhancement_r14_present = false;
bool ce_pucch_enhancement_r14_present = false;
bool ce_closed_loop_tx_ant_sel_r14_present = false;
bool tdd_special_sf_r14_present = false;
bool tdd_tti_bundling_r14_present = false;
bool dmrs_less_up_pts_r14_present = false;
bool mimo_ue_params_v1430_present = false;
bool alt_tbs_idx_r14_present = false;
bool fe_mbms_unicast_params_r14_present = false;
ce_pdsch_pusch_max_bw_r14_e_ ce_pdsch_pusch_max_bw_r14;
ce_retuning_symbols_r14_e_ ce_retuning_symbols_r14;
mimo_ue_params_v1430_s mimo_ue_params_v1430;
fe_mbms_unicast_params_r14_s fe_mbms_unicast_params_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1470 ::= SEQUENCE
struct phy_layer_params_v1470_s {
bool mimo_ue_params_v1470_present = false;
bool srs_up_pts_minus6sym_r14_present = false;
mimo_ue_params_v1470_s mimo_ue_params_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1530 ::= SEQUENCE
struct phy_layer_params_v1530_s {
struct stti_spt_cap_r15_s_ {
struct max_layers_slot_or_subslot_pusch_r15_opts {
enum options { one_layer, two_layers, four_layers, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<max_layers_slot_or_subslot_pusch_r15_opts> max_layers_slot_or_subslot_pusch_r15_e_;
struct sps_stti_r15_opts {
enum options { slot, subslot, slot_and_subslot, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sps_stti_r15_opts> sps_stti_r15_e_;
// member variables
bool aperiodic_csi_report_stti_r15_present = false;
bool dmrs_based_spdcch_mbsfn_r15_present = false;
bool dmrs_based_spdcch_non_mbsfn_r15_present = false;
bool dmrs_position_pattern_r15_present = false;
bool dmrs_sharing_subslot_pdsch_r15_present = false;
bool dmrs_repeat_subslot_pdsch_r15_present = false;
bool epdcch_spt_different_cells_r15_present = false;
bool epdcch_stti_different_cells_r15_present = false;
bool max_layers_slot_or_subslot_pusch_r15_present = false;
bool max_num_upd_csi_proc_spt_r15_present = false;
bool max_num_upd_csi_proc_stti_comb77_r15_present = false;
bool max_num_upd_csi_proc_stti_comb27_r15_present = false;
bool max_num_upd_csi_proc_stti_comb22_set1_r15_present = false;
bool max_num_upd_csi_proc_stti_comb22_set2_r15_present = false;
bool mimo_ue_params_stti_r15_present = false;
bool mimo_ue_params_stti_v1530_present = false;
bool nof_blind_decodes_uss_r15_present = false;
bool pdsch_slot_subslot_pdsch_decoding_r15_present = false;
bool pwr_uci_slot_pusch_present = false;
bool pwr_uci_subslot_pusch_present = false;
bool slot_pdsch_tx_div_tm9and10_present = false;
bool subslot_pdsch_tx_div_tm9and10_present = false;
bool spdcch_different_rs_types_r15_present = false;
bool srs_dci7_trigger_fs2_r15_present = false;
bool sps_cyclic_shift_r15_present = false;
bool spdcch_reuse_r15_present = false;
bool sps_stti_r15_present = false;
bool tm8_slot_pdsch_r15_present = false;
bool tm9_slot_subslot_r15_present = false;
bool tm9_slot_subslot_mbsfn_r15_present = false;
bool tm10_slot_subslot_r15_present = false;
bool tm10_slot_subslot_mbsfn_r15_present = false;
bool tx_div_spucch_r15_present = false;
bool ul_async_harq_sharing_diff_tti_lens_r15_present = false;
max_layers_slot_or_subslot_pusch_r15_e_ max_layers_slot_or_subslot_pusch_r15;
uint8_t max_num_upd_csi_proc_spt_r15 = 5;
uint8_t max_num_upd_csi_proc_stti_comb77_r15 = 1;
uint8_t max_num_upd_csi_proc_stti_comb27_r15 = 1;
uint8_t max_num_upd_csi_proc_stti_comb22_set1_r15 = 1;
uint8_t max_num_upd_csi_proc_stti_comb22_set2_r15 = 1;
mimo_ue_params_r13_s mimo_ue_params_stti_r15;
mimo_ue_params_v1430_s mimo_ue_params_stti_v1530;
uint8_t nof_blind_decodes_uss_r15 = 4;
sps_stti_r15_e_ sps_stti_r15;
};
struct ce_cap_r15_s_ {
bool ce_crs_intf_mitig_r15_present = false;
bool ce_cqi_alt_table_r15_present = false;
bool ce_pdsch_flex_start_prb_ce_mode_a_r15_present = false;
bool ce_pdsch_flex_start_prb_ce_mode_b_r15_present = false;
bool ce_pdsch_minus64_qam_r15_present = false;
bool ce_pusch_flex_start_prb_ce_mode_a_r15_present = false;
bool ce_pusch_flex_start_prb_ce_mode_b_r15_present = false;
bool ce_pusch_sub_prb_alloc_r15_present = false;
bool ce_ul_harq_ack_feedback_r15_present = false;
};
struct urllc_cap_r15_s_ {
bool pdsch_rep_sf_r15_present = false;
bool pdsch_rep_slot_r15_present = false;
bool pdsch_rep_subslot_r15_present = false;
bool pusch_sps_multi_cfg_sf_r15_present = false;
bool pusch_sps_max_cfg_sf_r15_present = false;
bool pusch_sps_multi_cfg_slot_r15_present = false;
bool pusch_sps_max_cfg_slot_r15_present = false;
bool pusch_sps_multi_cfg_subslot_r15_present = false;
bool pusch_sps_max_cfg_subslot_r15_present = false;
bool pusch_sps_slot_rep_pcell_r15_present = false;
bool pusch_sps_slot_rep_ps_cell_r15_present = false;
bool pusch_sps_slot_rep_scell_r15_present = false;
bool pusch_sps_sf_rep_pcell_r15_present = false;
bool pusch_sps_sf_rep_ps_cell_r15_present = false;
bool pusch_sps_sf_rep_scell_r15_present = false;
bool pusch_sps_subslot_rep_pcell_r15_present = false;
bool pusch_sps_subslot_rep_ps_cell_r15_present = false;
bool pusch_sps_subslot_rep_scell_r15_present = false;
bool semi_static_cfi_r15_present = false;
bool semi_static_cfi_pattern_r15_present = false;
uint8_t pusch_sps_multi_cfg_sf_r15 = 0;
uint8_t pusch_sps_max_cfg_sf_r15 = 0;
uint8_t pusch_sps_multi_cfg_slot_r15 = 0;
uint8_t pusch_sps_max_cfg_slot_r15 = 0;
uint8_t pusch_sps_multi_cfg_subslot_r15 = 0;
uint8_t pusch_sps_max_cfg_subslot_r15 = 0;
};
// member variables
bool stti_spt_cap_r15_present = false;
bool ce_cap_r15_present = false;
bool short_cqi_for_scell_activation_r15_present = false;
bool mimo_cbsr_advanced_csi_r15_present = false;
bool crs_intf_mitig_r15_present = false;
bool ul_pwr_ctrl_enhance_r15_present = false;
bool urllc_cap_r15_present = false;
bool alt_mcs_table_r15_present = false;
stti_spt_cap_r15_s_ stti_spt_cap_r15;
ce_cap_r15_s_ ce_cap_r15;
urllc_cap_r15_s_ urllc_cap_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandEUTRA ::= SEQUENCE
struct supported_band_eutra_s {
uint8_t band_eutra = 1;
bool half_duplex = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandListEUTRA ::= SEQUENCE (SIZE (1..64)) OF SupportedBandEUTRA
using supported_band_list_eutra_l = dyn_array<supported_band_eutra_s>;
// RF-Parameters ::= SEQUENCE
struct rf_params_s {
supported_band_list_eutra_l supported_band_list_eutra;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-r10 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-r10
using supported_band_combination_r10_l = dyn_array<band_combination_params_r10_l>;
// RF-Parameters-v1020 ::= SEQUENCE
struct rf_params_v1020_s {
supported_band_combination_r10_l supported_band_combination_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombinationExt-r10 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParametersExt-r10
using supported_band_combination_ext_r10_l = dyn_array<band_combination_params_ext_r10_s>;
// RF-Parameters-v1060 ::= SEQUENCE
struct rf_params_v1060_s {
supported_band_combination_ext_r10_l supported_band_combination_ext_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1090 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1090
using supported_band_combination_v1090_l = dyn_array<band_combination_params_v1090_l>;
// RF-Parameters-v1090 ::= SEQUENCE
struct rf_params_v1090_s {
bool supported_band_combination_v1090_present = false;
supported_band_combination_v1090_l supported_band_combination_v1090;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v10i0 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v10i0
using supported_band_combination_v10i0_l = dyn_array<band_combination_params_v10i0_s>;
// RF-Parameters-v10i0 ::= SEQUENCE
struct rf_params_v10i0_s {
bool supported_band_combination_v10i0_present = false;
supported_band_combination_v10i0_l supported_band_combination_v10i0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1130 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1130
using supported_band_combination_v1130_l = dyn_array<band_combination_params_v1130_s>;
// RF-Parameters-v1130 ::= SEQUENCE
struct rf_params_v1130_s {
bool supported_band_combination_v1130_present = false;
supported_band_combination_v1130_l supported_band_combination_v1130;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombinationAdd-r11 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-r11
using supported_band_combination_add_r11_l = dyn_array<band_combination_params_r11_s>;
// RF-Parameters-v1180 ::= SEQUENCE
struct rf_params_v1180_s {
using requested_bands_r11_l_ = dyn_array<uint16_t>;
// member variables
bool freq_band_retrieval_r11_present = false;
bool requested_bands_r11_present = false;
bool supported_band_combination_add_r11_present = false;
requested_bands_r11_l_ requested_bands_r11;
supported_band_combination_add_r11_l supported_band_combination_add_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombinationAdd-v11d0 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v10i0
using supported_band_combination_add_v11d0_l = dyn_array<band_combination_params_v10i0_s>;
// RF-Parameters-v11d0 ::= SEQUENCE
struct rf_params_v11d0_s {
bool supported_band_combination_add_v11d0_present = false;
supported_band_combination_add_v11d0_l supported_band_combination_add_v11d0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandEUTRA-v1250 ::= SEQUENCE
struct supported_band_eutra_v1250_s {
bool dl_minus256_qam_r12_present = false;
bool ul_minus64_qam_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1250 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1250
using supported_band_combination_v1250_l = dyn_array<band_combination_params_v1250_s>;
// SupportedBandCombinationAdd-v1250 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1250
using supported_band_combination_add_v1250_l = dyn_array<band_combination_params_v1250_s>;
// SupportedBandListEUTRA-v1250 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandEUTRA-v1250
using supported_band_list_eutra_v1250_l = dyn_array<supported_band_eutra_v1250_s>;
// RF-Parameters-v1250 ::= SEQUENCE
struct rf_params_v1250_s {
bool supported_band_list_eutra_v1250_present = false;
bool supported_band_combination_v1250_present = false;
bool supported_band_combination_add_v1250_present = false;
bool freq_band_prio_adjustment_r12_present = false;
supported_band_list_eutra_v1250_l supported_band_list_eutra_v1250;
supported_band_combination_v1250_l supported_band_combination_v1250;
supported_band_combination_add_v1250_l supported_band_combination_add_v1250;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1270 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1270
using supported_band_combination_v1270_l = dyn_array<band_combination_params_v1270_s>;
// SupportedBandCombinationAdd-v1270 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1270
using supported_band_combination_add_v1270_l = dyn_array<band_combination_params_v1270_s>;
// RF-Parameters-v1270 ::= SEQUENCE
struct rf_params_v1270_s {
bool supported_band_combination_v1270_present = false;
bool supported_band_combination_add_v1270_present = false;
supported_band_combination_v1270_l supported_band_combination_v1270;
supported_band_combination_add_v1270_l supported_band_combination_add_v1270;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandEUTRA-v1310 ::= SEQUENCE
struct supported_band_eutra_v1310_s {
bool ue_pwr_class_minus5_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombinationReduced-r13 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-r13
using supported_band_combination_reduced_r13_l = dyn_array<band_combination_params_r13_s>;
// SupportedBandListEUTRA-v1310 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandEUTRA-v1310
using supported_band_list_eutra_v1310_l = dyn_array<supported_band_eutra_v1310_s>;
// RF-Parameters-v1310 ::= SEQUENCE
struct rf_params_v1310_s {
struct enb_requested_params_r13_s_ {
bool reduced_int_non_cont_comb_requested_r13_present = false;
bool requested_ccs_dl_r13_present = false;
bool requested_ccs_ul_r13_present = false;
bool skip_fallback_comb_requested_r13_present = false;
uint8_t requested_ccs_dl_r13 = 2;
uint8_t requested_ccs_ul_r13 = 2;
};
// member variables
bool enb_requested_params_r13_present = false;
bool maximum_ccs_retrieval_r13_present = false;
bool skip_fallback_combinations_r13_present = false;
bool reduced_int_non_cont_comb_r13_present = false;
bool supported_band_list_eutra_v1310_present = false;
bool supported_band_combination_reduced_r13_present = false;
enb_requested_params_r13_s_ enb_requested_params_r13;
supported_band_list_eutra_v1310_l supported_band_list_eutra_v1310;
supported_band_combination_reduced_r13_l supported_band_combination_reduced_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandEUTRA-v1320 ::= SEQUENCE
struct supported_band_eutra_v1320_s {
struct ue_pwr_class_n_r13_opts {
enum options { class1, class2, class4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ue_pwr_class_n_r13_opts> ue_pwr_class_n_r13_e_;
// member variables
bool intra_freq_ce_need_for_gaps_r13_present = false;
bool ue_pwr_class_n_r13_present = false;
ue_pwr_class_n_r13_e_ ue_pwr_class_n_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1320 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1320
using supported_band_combination_v1320_l = dyn_array<band_combination_params_v1320_s>;
// SupportedBandCombinationAdd-v1320 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1320
using supported_band_combination_add_v1320_l = dyn_array<band_combination_params_v1320_s>;
// SupportedBandCombinationReduced-v1320 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1320
using supported_band_combination_reduced_v1320_l = dyn_array<band_combination_params_v1320_s>;
// SupportedBandListEUTRA-v1320 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandEUTRA-v1320
using supported_band_list_eutra_v1320_l = dyn_array<supported_band_eutra_v1320_s>;
// RF-Parameters-v1320 ::= SEQUENCE
struct rf_params_v1320_s {
bool supported_band_list_eutra_v1320_present = false;
bool supported_band_combination_v1320_present = false;
bool supported_band_combination_add_v1320_present = false;
bool supported_band_combination_reduced_v1320_present = false;
supported_band_list_eutra_v1320_l supported_band_list_eutra_v1320;
supported_band_combination_v1320_l supported_band_combination_v1320;
supported_band_combination_add_v1320_l supported_band_combination_add_v1320;
supported_band_combination_reduced_v1320_l supported_band_combination_reduced_v1320;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1380 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1380
using supported_band_combination_v1380_l = dyn_array<band_combination_params_v1380_s>;
// SupportedBandCombinationAdd-v1380 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1380
using supported_band_combination_add_v1380_l = dyn_array<band_combination_params_v1380_s>;
// SupportedBandCombinationReduced-v1380 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1380
using supported_band_combination_reduced_v1380_l = dyn_array<band_combination_params_v1380_s>;
// RF-Parameters-v1380 ::= SEQUENCE
struct rf_params_v1380_s {
bool supported_band_combination_v1380_present = false;
bool supported_band_combination_add_v1380_present = false;
bool supported_band_combination_reduced_v1380_present = false;
supported_band_combination_v1380_l supported_band_combination_v1380;
supported_band_combination_add_v1380_l supported_band_combination_add_v1380;
supported_band_combination_reduced_v1380_l supported_band_combination_reduced_v1380;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// BandCombinationParameters-v1390 ::= SEQUENCE
struct band_combination_params_v1390_s {
bool ue_ca_pwr_class_n_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1390 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1390
using supported_band_combination_v1390_l = dyn_array<band_combination_params_v1390_s>;
// SupportedBandCombinationAdd-v1390 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1390
using supported_band_combination_add_v1390_l = dyn_array<band_combination_params_v1390_s>;
// SupportedBandCombinationReduced-v1390 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1390
using supported_band_combination_reduced_v1390_l = dyn_array<band_combination_params_v1390_s>;
// RF-Parameters-v1390 ::= SEQUENCE
struct rf_params_v1390_s {
bool supported_band_combination_v1390_present = false;
bool supported_band_combination_add_v1390_present = false;
bool supported_band_combination_reduced_v1390_present = false;
supported_band_combination_v1390_l supported_band_combination_v1390;
supported_band_combination_add_v1390_l supported_band_combination_add_v1390;
supported_band_combination_reduced_v1390_l supported_band_combination_reduced_v1390;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1430 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1430
using supported_band_combination_v1430_l = dyn_array<band_combination_params_v1430_s>;
// SupportedBandCombinationAdd-v1430 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1430
using supported_band_combination_add_v1430_l = dyn_array<band_combination_params_v1430_s>;
// SupportedBandCombinationReduced-v1430 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1430
using supported_band_combination_reduced_v1430_l = dyn_array<band_combination_params_v1430_s>;
// RF-Parameters-v1430 ::= SEQUENCE
struct rf_params_v1430_s {
struct enb_requested_params_v1430_s_ {
band_combination_list_r14_l requested_diff_fallback_comb_list_r14;
};
// member variables
bool supported_band_combination_v1430_present = false;
bool supported_band_combination_add_v1430_present = false;
bool supported_band_combination_reduced_v1430_present = false;
bool enb_requested_params_v1430_present = false;
bool diff_fallback_comb_report_r14_present = false;
supported_band_combination_v1430_l supported_band_combination_v1430;
supported_band_combination_add_v1430_l supported_band_combination_add_v1430;
supported_band_combination_reduced_v1430_l supported_band_combination_reduced_v1430;
enb_requested_params_v1430_s_ enb_requested_params_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1450 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1450
using supported_band_combination_v1450_l = dyn_array<band_combination_params_v1450_s>;
// SupportedBandCombinationAdd-v1450 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1450
using supported_band_combination_add_v1450_l = dyn_array<band_combination_params_v1450_s>;
// SupportedBandCombinationReduced-v1450 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1450
using supported_band_combination_reduced_v1450_l = dyn_array<band_combination_params_v1450_s>;
// RF-Parameters-v1450 ::= SEQUENCE
struct rf_params_v1450_s {
bool supported_band_combination_v1450_present = false;
bool supported_band_combination_add_v1450_present = false;
bool supported_band_combination_reduced_v1450_present = false;
supported_band_combination_v1450_l supported_band_combination_v1450;
supported_band_combination_add_v1450_l supported_band_combination_add_v1450;
supported_band_combination_reduced_v1450_l supported_band_combination_reduced_v1450;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandCombination-v1470 ::= SEQUENCE (SIZE (1..128)) OF BandCombinationParameters-v1470
using supported_band_combination_v1470_l = dyn_array<band_combination_params_v1470_s>;
// SupportedBandCombinationAdd-v1470 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1470
using supported_band_combination_add_v1470_l = dyn_array<band_combination_params_v1470_s>;
// SupportedBandCombinationReduced-v1470 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1470
using supported_band_combination_reduced_v1470_l = dyn_array<band_combination_params_v1470_s>;
// RF-Parameters-v1470 ::= SEQUENCE
struct rf_params_v1470_s {
bool supported_band_combination_v1470_present = false;
bool supported_band_combination_add_v1470_present = false;
bool supported_band_combination_reduced_v1470_present = false;
supported_band_combination_v1470_l supported_band_combination_v1470;
supported_band_combination_add_v1470_l supported_band_combination_add_v1470;
supported_band_combination_reduced_v1470_l supported_band_combination_reduced_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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>;
// SupportedBandCombinationAdd-v1530 ::= SEQUENCE (SIZE (1..256)) OF BandCombinationParameters-v1530
using supported_band_combination_add_v1530_l = dyn_array<band_combination_params_v1530_s>;
// SupportedBandCombinationReduced-v1530 ::= SEQUENCE (SIZE (1..384)) OF BandCombinationParameters-v1530
using supported_band_combination_reduced_v1530_l = dyn_array<band_combination_params_v1530_s>;
// RF-Parameters-v1530 ::= SEQUENCE
struct rf_params_v1530_s {
bool stti_spt_supported_r15_present = false;
bool supported_band_combination_v1530_present = false;
bool supported_band_combination_add_v1530_present = false;
bool supported_band_combination_reduced_v1530_present = false;
bool pwr_class_minus14dbm_r15_present = false;
supported_band_combination_v1530_l supported_band_combination_v1530;
supported_band_combination_add_v1530_l supported_band_combination_add_v1530;
supported_band_combination_reduced_v1530_l supported_band_combination_reduced_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandEUTRA-v9e0 ::= SEQUENCE
struct supported_band_eutra_v9e0_s {
bool band_eutra_v9e0_present = false;
uint16_t band_eutra_v9e0 = 65;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandListEUTRA-v9e0 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandEUTRA-v9e0
using supported_band_list_eutra_v9e0_l = dyn_array<supported_band_eutra_v9e0_s>;
// RF-Parameters-v9e0 ::= SEQUENCE
struct rf_params_v9e0_s {
bool supported_band_list_eutra_v9e0_present = false;
supported_band_list_eutra_v9e0_l supported_band_list_eutra_v9e0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandInfo-r12 ::= SEQUENCE
struct supported_band_info_r12_s {
bool support_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SupportedBandInfoList-r12 ::= SEQUENCE (SIZE (1..64)) OF SupportedBandInfo-r12
using supported_band_info_list_r12_l = dyn_array<supported_band_info_r12_s>;
// SL-Parameters-r12 ::= SEQUENCE
struct sl_params_r12_s {
struct disc_supported_proc_r12_opts {
enum options { n50, n400, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<disc_supported_proc_r12_opts> disc_supported_proc_r12_e_;
// member variables
bool comm_simul_tx_r12_present = false;
bool comm_supported_bands_r12_present = false;
bool disc_supported_bands_r12_present = false;
bool disc_sched_res_alloc_r12_present = false;
bool disc_ue_sel_res_alloc_r12_present = false;
bool disc_slss_r12_present = false;
bool disc_supported_proc_r12_present = false;
freq_band_ind_list_eutra_r12_l comm_supported_bands_r12;
supported_band_info_list_r12_l disc_supported_bands_r12;
disc_supported_proc_r12_e_ disc_supported_proc_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// V2X-BandParameters-r14 ::= SEQUENCE
struct v2x_band_params_r14_s {
bool band_params_tx_sl_r14_present = false;
bool band_params_rx_sl_r14_present = false;
uint16_t v2x_freq_band_eutra_r14 = 1;
band_params_tx_sl_r14_s band_params_tx_sl_r14;
band_params_rx_sl_r14_s band_params_rx_sl_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// V2X-BandCombinationParameters-r14 ::= SEQUENCE (SIZE (1..64)) OF V2X-BandParameters-r14
using v2x_band_combination_params_r14_l = dyn_array<v2x_band_params_r14_s>;
// V2X-SupportedBandCombination-r14 ::= SEQUENCE (SIZE (1..384)) OF V2X-BandCombinationParameters-r14
using v2x_supported_band_combination_r14_l = dyn_array<v2x_band_combination_params_r14_l>;
// SL-Parameters-v1430 ::= SEQUENCE
struct sl_params_v1430_s {
bool zone_based_pool_sel_r14_present = false;
bool ue_autonomous_with_full_sensing_r14_present = false;
bool ue_autonomous_with_partial_sensing_r14_present = false;
bool sl_congestion_ctrl_r14_present = false;
bool v2x_tx_with_short_resv_interv_r14_present = false;
bool v2x_num_tx_rx_timing_r14_present = false;
bool v2x_non_adjacent_pscch_pssch_r14_present = false;
bool slss_tx_rx_r14_present = false;
bool v2x_supported_band_combination_list_r14_present = false;
uint8_t v2x_num_tx_rx_timing_r14 = 1;
v2x_supported_band_combination_r14_l v2x_supported_band_combination_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// V2X-BandParameters-v1530 ::= SEQUENCE
struct v2x_band_params_v1530_s {
bool v2x_enhanced_high_reception_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// V2X-BandCombinationParameters-v1530 ::= SEQUENCE (SIZE (1..64)) OF V2X-BandParameters-v1530
using v2x_band_combination_params_v1530_l = dyn_array<v2x_band_params_v1530_s>;
// UE-CategorySL-r15 ::= SEQUENCE
struct ue_category_sl_r15_s {
uint8_t ue_category_sl_c_tx_r15 = 1;
uint8_t ue_category_sl_c_rx_r15 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// V2X-SupportedBandCombination-v1530 ::= SEQUENCE (SIZE (1..384)) OF V2X-BandCombinationParameters-v1530
using v2x_supported_band_combination_v1530_l = dyn_array<v2x_band_combination_params_v1530_l>;
// SL-Parameters-v1530 ::= SEQUENCE
struct sl_params_v1530_s {
struct slss_supported_tx_freq_r15_opts {
enum options { single, multiple, nulltype } value;
std::string to_string() const;
};
typedef enumerated<slss_supported_tx_freq_r15_opts> slss_supported_tx_freq_r15_e_;
// member variables
bool slss_supported_tx_freq_r15_present = false;
bool sl_minus64_qam_tx_r15_present = false;
bool sl_tx_diversity_r15_present = false;
bool ue_category_sl_r15_present = false;
bool v2x_supported_band_combination_list_v1530_present = false;
slss_supported_tx_freq_r15_e_ slss_supported_tx_freq_r15;
ue_category_sl_r15_s ue_category_sl_r15;
v2x_supported_band_combination_v1530_l v2x_supported_band_combination_list_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// N1SPUCCH-AN-PersistentList-r15 ::= SEQUENCE (SIZE (1..4)) OF INTEGER (0..2047)
using n1_spucch_an_persistent_list_r15_l = bounded_array<uint16_t, 4>;
// SPS-ConfigDL-STTI-r15 ::= CHOICE
struct sps_cfg_dl_stti_r15_c {
struct setup_s_ {
struct semi_persist_sched_interv_dl_stti_r15_opts {
enum options {
stti1,
stti2,
stti3,
stti4,
stti6,
stti8,
stti12,
stti16,
stti20,
stti40,
stti60,
stti80,
stti120,
stti240,
spare2,
spare1,
nulltype
} value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<semi_persist_sched_interv_dl_stti_r15_opts> semi_persist_sched_interv_dl_stti_r15_e_;
struct two_ant_port_activ_r15_c_ {
struct setup_s_ {
n1_spucch_an_persistent_list_r15_l n1_spucch_an_persistent_list_p1_r15;
};
typedef setup_e types;
// choice methods
two_ant_port_activ_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "twoAntennaPortActivated-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool ext = false;
bool two_ant_port_activ_r15_present = false;
bool tpc_pdcch_cfg_pucch_sps_r15_present = false;
semi_persist_sched_interv_dl_stti_r15_e_ semi_persist_sched_interv_dl_stti_r15;
uint8_t nof_conf_sps_processes_stti_r15 = 1;
two_ant_port_activ_r15_c_ two_ant_port_activ_r15;
uint8_t stti_start_time_dl_r15 = 0;
tpc_pdcch_cfg_c tpc_pdcch_cfg_pucch_sps_r15;
// ...
};
typedef setup_e types;
// choice methods
sps_cfg_dl_stti_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(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL-STTI-r15");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "SPS-ConfigDL-STTI-r15");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// 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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LAA-Parameters-v1530 ::= SEQUENCE
struct laa_params_v1530_s {
bool aul_r15_present = false;
bool laa_pusch_mode1_r15_present = false;
bool laa_pusch_mode2_r15_present = false;
bool laa_pusch_mode3_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1530 ::= SEQUENCE
struct meas_params_v1530_s {
bool qoe_meas_report_r15_present = false;
bool qoe_mtsi_meas_report_r15_present = false;
bool ca_idle_mode_meass_r15_present = false;
bool ca_idle_mode_validity_area_r15_present = false;
bool height_meas_r15_present = false;
bool multiple_cells_meas_ext_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v1530 ::= SEQUENCE
struct other_params_v1530_s {
bool assist_info_bit_for_lc_r15_present = false;
bool time_ref_provision_r15_present = false;
bool flight_path_plan_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Parameters-v1530 ::= SEQUENCE
struct rlc_params_v1530_s {
bool flex_um_am_combinations_r15_present = false;
bool rlc_am_ooo_delivery_r15_present = false;
bool rlc_um_ooo_delivery_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-BasedNetwPerfMeasParameters-v1530 ::= SEQUENCE
struct ue_based_netw_perf_meas_params_v1530_s {
bool logged_meas_bt_r15_present = false;
bool logged_meas_wlan_r15_present = false;
bool imm_meas_bt_r15_present = false;
bool imm_meas_wlan_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1530 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1530_s {
bool neigh_cell_si_acquisition_params_v1530_present = false;
bool reduced_cp_latency_r15_present = false;
neigh_cell_si_acquisition_params_v1530_s neigh_cell_si_acquisition_params_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1520 ::= SEQUENCE
struct meas_params_v1520_s {
bool meas_gap_patterns_v1520_present = false;
fixed_bitstring<8> meas_gap_patterns_v1520;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1530-IEs ::= SEQUENCE
struct ue_eutra_cap_v1530_ies_s {
bool meas_params_v1530_present = false;
bool other_params_v1530_present = false;
bool neigh_cell_si_acquisition_params_v1530_present = false;
bool mac_params_v1530_present = false;
bool phy_layer_params_v1530_present = false;
bool rf_params_v1530_present = false;
bool pdcp_params_v1530_present = false;
bool ue_category_dl_v1530_present = false;
bool ue_based_netw_perf_meas_params_v1530_present = false;
bool rlc_params_v1530_present = false;
bool sl_params_v1530_present = false;
bool extended_nof_drbs_r15_present = false;
bool reduced_cp_latency_r15_present = false;
bool laa_params_v1530_present = false;
bool ue_category_ul_v1530_present = false;
bool fdd_add_ue_eutra_cap_v1530_present = false;
bool tdd_add_ue_eutra_cap_v1530_present = false;
bool non_crit_ext_present = false;
meas_params_v1530_s meas_params_v1530;
other_params_v1530_s other_params_v1530;
neigh_cell_si_acquisition_params_v1530_s neigh_cell_si_acquisition_params_v1530;
mac_params_v1530_s mac_params_v1530;
phy_layer_params_v1530_s phy_layer_params_v1530;
rf_params_v1530_s rf_params_v1530;
pdcp_params_v1530_s pdcp_params_v1530;
uint8_t ue_category_dl_v1530 = 22;
ue_based_netw_perf_meas_params_v1530_s ue_based_netw_perf_meas_params_v1530;
rlc_params_v1530_s rlc_params_v1530;
sl_params_v1530_s sl_params_v1530;
laa_params_v1530_s laa_params_v1530;
uint8_t ue_category_ul_v1530 = 22;
ue_eutra_cap_add_xdd_mode_v1530_s fdd_add_ue_eutra_cap_v1530;
ue_eutra_cap_add_xdd_mode_v1530_s tdd_add_ue_eutra_cap_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1520-IEs ::= SEQUENCE
struct ue_eutra_cap_v1520_ies_s {
bool non_crit_ext_present = false;
meas_params_v1520_s meas_params_v1520;
ue_eutra_cap_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1510 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1510_s {
bool pdcp_params_nr_r15_present = false;
pdcp_params_nr_r15_s pdcp_params_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v1460 ::= SEQUENCE
struct other_params_v1460_s {
bool non_csg_si_report_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1510-IEs ::= SEQUENCE
struct ue_eutra_cap_v1510_ies_s {
bool irat_params_nr_r15_present = false;
bool feature_sets_eutra_r15_present = false;
bool pdcp_params_nr_r15_present = false;
bool fdd_add_ue_eutra_cap_v1510_present = false;
bool tdd_add_ue_eutra_cap_v1510_present = false;
bool non_crit_ext_present = false;
irat_params_nr_r15_s irat_params_nr_r15;
feature_sets_eutra_r15_s feature_sets_eutra_r15;
pdcp_params_nr_r15_s pdcp_params_nr_r15;
ue_eutra_cap_add_xdd_mode_v1510_s fdd_add_ue_eutra_cap_v1510;
ue_eutra_cap_add_xdd_mode_v1510_s tdd_add_ue_eutra_cap_v1510;
ue_eutra_cap_v1520_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// OtherParameters-v1450 ::= SEQUENCE
struct other_params_v1450_s {
bool overheat_ind_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1450 ::= SEQUENCE
struct phy_layer_params_v1450_s {
bool ce_srs_enhancement_without_comb4_r14_present = false;
bool crs_less_dw_pts_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1460-IEs ::= SEQUENCE
struct ue_eutra_cap_v1460_ies_s {
bool ue_category_dl_v1460_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_dl_v1460 = 21;
other_params_v1460_s other_params_v1460;
ue_eutra_cap_v1510_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWA-Parameters-v1440 ::= SEQUENCE
struct lwa_params_v1440_s {
bool lwa_rlc_um_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-v1440 ::= SEQUENCE
struct mac_params_v1440_s {
bool rai_support_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MMTEL-Parameters-r14 ::= SEQUENCE
struct mmtel_params_r14_s {
bool delay_budget_report_r14_present = false;
bool pusch_enhance_r14_present = false;
bool recommended_bit_rate_r14_present = false;
bool recommended_bit_rate_query_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1450-IEs ::= SEQUENCE
struct ue_eutra_cap_v1450_ies_s {
bool phy_layer_params_v1450_present = false;
bool rf_params_v1450_present = false;
bool ue_category_dl_v1450_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v1450_s phy_layer_params_v1450;
rf_params_v1450_s rf_params_v1450;
other_params_v1450_s other_params_v1450;
uint8_t ue_category_dl_v1450 = 20;
ue_eutra_cap_v1460_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-v1430 ::= SEQUENCE
struct ce_params_v1430_s {
bool ce_switch_without_ho_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HighSpeedEnhParameters-r14 ::= SEQUENCE
struct high_speed_enh_params_r14_s {
bool meas_enhance_r14_present = false;
bool demod_enhance_r14_present = false;
bool prach_enhance_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LAA-Parameters-v1430 ::= SEQUENCE
struct laa_params_v1430_s {
struct two_step_sched_timing_info_r14_opts {
enum options { nplus1, nplus2, nplus3, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<two_step_sched_timing_info_r14_opts> two_step_sched_timing_info_r14_e_;
// member variables
bool cross_carrier_sched_laa_ul_r14_present = false;
bool ul_laa_r14_present = false;
bool two_step_sched_timing_info_r14_present = false;
bool uss_blind_decoding_adjustment_r14_present = false;
bool uss_blind_decoding_reduction_r14_present = false;
bool out_of_seq_grant_handling_r14_present = false;
two_step_sched_timing_info_r14_e_ two_step_sched_timing_info_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWA-Parameters-v1430 ::= SEQUENCE
struct lwa_params_v1430_s {
bool lwa_ho_without_wt_change_r14_present = false;
bool lwa_ul_r14_present = false;
bool wlan_periodic_meas_r14_present = false;
bool wlan_report_any_wlan_r14_present = false;
bool wlan_supported_data_rate_r14_present = false;
uint16_t wlan_supported_data_rate_r14 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWIP-Parameters-v1430 ::= SEQUENCE
struct lwip_params_v1430_s {
bool lwip_aggregation_dl_r14_present = false;
bool lwip_aggregation_ul_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-v1430 ::= SEQUENCE
struct mac_params_v1430_s {
bool short_sps_interv_fdd_r14_present = false;
bool short_sps_interv_tdd_r14_present = false;
bool skip_ul_dynamic_r14_present = false;
bool skip_ul_sps_r14_present = false;
bool multiple_ul_sps_r14_present = false;
bool data_inact_mon_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-Parameters-v1430 ::= SEQUENCE
struct mbms_params_v1430_s {
bool fembms_ded_cell_r14_present = false;
bool fembms_mixed_cell_r14_present = false;
bool subcarrier_spacing_mbms_khz7dot5_r14_present = false;
bool subcarrier_spacing_mbms_khz1dot25_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1430 ::= SEQUENCE
struct meas_params_v1430_s {
bool ce_meass_r14_present = false;
bool ncsg_r14_present = false;
bool short_meas_gap_r14_present = false;
bool per_serving_cell_meas_gap_r14_present = false;
bool non_uniform_gap_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MobilityParameters-r14 ::= SEQUENCE
struct mob_params_r14_s {
bool make_before_break_r14_present = false;
bool rach_less_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v1430 ::= SEQUENCE
struct other_params_v1430_s {
bool bw_pref_ind_r14_present = false;
bool rlm_report_support_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-Parameters-v1430 ::= SEQUENCE
struct pdcp_params_v1430_s {
struct supported_ul_only_rohc_profiles_r14_s_ {
bool profile0x0006_r14 = false;
};
struct max_num_rohc_context_sessions_r14_opts {
enum options {
cs2,
cs4,
cs8,
cs12,
cs16,
cs24,
cs32,
cs48,
cs64,
cs128,
cs256,
cs512,
cs1024,
cs16384,
spare2,
spare1,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<max_num_rohc_context_sessions_r14_opts> max_num_rohc_context_sessions_r14_e_;
// member variables
bool max_num_rohc_context_sessions_r14_present = false;
supported_ul_only_rohc_profiles_r14_s_ supported_ul_only_rohc_profiles_r14;
max_num_rohc_context_sessions_r14_e_ max_num_rohc_context_sessions_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-BasedNetwPerfMeasParameters-v1430 ::= SEQUENCE
struct ue_based_netw_perf_meas_params_v1430_s {
bool location_report_r14_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1440-IEs ::= SEQUENCE
struct ue_eutra_cap_v1440_ies_s {
bool non_crit_ext_present = false;
lwa_params_v1440_s lwa_params_v1440;
mac_params_v1440_s mac_params_v1440;
ue_eutra_cap_v1450_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
bool mmtel_params_r14_present = false;
phy_layer_params_v1430_s phy_layer_params_v1430;
mmtel_params_r14_s mmtel_params_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-Parameters-v1470 ::= SEQUENCE
struct mbms_params_v1470_s {
struct mbms_max_bw_r14_c_ {
struct types_opts {
enum options { implicit_value, explicit_value, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
mbms_max_bw_r14_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint8_t& explicit_value()
{
assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14");
return c;
}
const uint8_t& explicit_value() const
{
assert_choice_type("explicitValue", type_.to_string(), "mbms-MaxBW-r14");
return c;
}
uint8_t& set_explicit_value()
{
set(types::explicit_value);
return c;
}
private:
types type_;
uint8_t c;
};
struct mbms_scaling_factor1dot25_r14_opts {
enum options { n3, n6, n9, n12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mbms_scaling_factor1dot25_r14_opts> mbms_scaling_factor1dot25_r14_e_;
struct mbms_scaling_factor7dot5_r14_opts {
enum options { n1, n2, n3, n4, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<mbms_scaling_factor7dot5_r14_opts> mbms_scaling_factor7dot5_r14_e_;
// member variables
bool mbms_scaling_factor1dot25_r14_present = false;
bool mbms_scaling_factor7dot5_r14_present = false;
mbms_max_bw_r14_c_ mbms_max_bw_r14;
mbms_scaling_factor1dot25_r14_e_ mbms_scaling_factor1dot25_r14;
mbms_scaling_factor7dot5_r14_e_ mbms_scaling_factor7dot5_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v1360 ::= SEQUENCE
struct other_params_v1360_s {
bool in_dev_coex_ind_hardware_sharing_ind_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1430-IEs ::= SEQUENCE
struct ue_eutra_cap_v1430_ies_s {
struct ue_category_ul_v1430_opts {
enum options { n16, n17, n18, n19, n20, m2, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ue_category_ul_v1430_opts> ue_category_ul_v1430_e_;
// member variables
bool ue_category_dl_v1430_present = false;
bool ue_category_ul_v1430_present = false;
bool ue_category_ul_v1430b_present = false;
bool mac_params_v1430_present = false;
bool meas_params_v1430_present = false;
bool pdcp_params_v1430_present = false;
bool rf_params_v1430_present = false;
bool laa_params_v1430_present = false;
bool lwa_params_v1430_present = false;
bool lwip_params_v1430_present = false;
bool mmtel_params_r14_present = false;
bool mob_params_r14_present = false;
bool fdd_add_ue_eutra_cap_v1430_present = false;
bool tdd_add_ue_eutra_cap_v1430_present = false;
bool mbms_params_v1430_present = false;
bool sl_params_v1430_present = false;
bool ue_based_netw_perf_meas_params_v1430_present = false;
bool high_speed_enh_params_r14_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v1430_s phy_layer_params_v1430;
ue_category_ul_v1430_e_ ue_category_ul_v1430;
mac_params_v1430_s mac_params_v1430;
meas_params_v1430_s meas_params_v1430;
pdcp_params_v1430_s pdcp_params_v1430;
rlc_params_v1430_s rlc_params_v1430;
rf_params_v1430_s rf_params_v1430;
laa_params_v1430_s laa_params_v1430;
lwa_params_v1430_s lwa_params_v1430;
lwip_params_v1430_s lwip_params_v1430;
other_params_v1430_s other_params_v1430;
mmtel_params_r14_s mmtel_params_r14;
mob_params_r14_s mob_params_r14;
ce_params_v1430_s ce_params_v1430;
ue_eutra_cap_add_xdd_mode_v1430_s fdd_add_ue_eutra_cap_v1430;
ue_eutra_cap_add_xdd_mode_v1430_s tdd_add_ue_eutra_cap_v1430;
mbms_params_v1430_s mbms_params_v1430;
sl_params_v1430_s sl_params_v1430;
ue_based_netw_perf_meas_params_v1430_s ue_based_netw_perf_meas_params_v1430;
high_speed_enh_params_r14_s high_speed_enh_params_r14;
ue_eutra_cap_v1440_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1360-IEs ::= SEQUENCE
struct ue_eutra_cap_v1360_ies_s {
bool other_params_v1360_present = false;
bool non_crit_ext_present = false;
other_params_v1360_s other_params_v1360;
ue_eutra_cap_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1470-IEs ::= SEQUENCE
struct ue_eutra_cap_v1470_ies_s {
bool mbms_params_v1470_present = false;
bool phy_layer_params_v1470_present = false;
bool rf_params_v1470_present = false;
bool non_crit_ext_present = false;
mbms_params_v1470_s mbms_params_v1470;
phy_layer_params_v1470_s phy_layer_params_v1470;
rf_params_v1470_s rf_params_v1470;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-v1380 ::= SEQUENCE
struct ce_params_v1380_s {
bool tm6_ce_mode_a_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1350-IEs ::= SEQUENCE
struct ue_eutra_cap_v1350_ies_s {
bool ue_category_dl_v1350_present = false;
bool ue_category_ul_v1350_present = false;
bool non_crit_ext_present = false;
ce_params_v1350_s ce_params_v1350;
ue_eutra_cap_v1360_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v13x0-IEs ::= SEQUENCE
struct ue_eutra_cap_v13x0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v1470_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-v1370 ::= SEQUENCE
struct ce_params_v1370_s {
bool tm9_ce_mode_a_r13_present = false;
bool tm9_ce_mode_b_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCPTM-Parameters-r13 ::= SEQUENCE
struct scptm_params_r13_s {
bool scptm_parallel_reception_r13_present = false;
bool scptm_scell_r13_present = false;
bool scptm_non_serving_cell_r13_present = false;
bool scptm_async_dc_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1340-IEs ::= SEQUENCE
struct ue_eutra_cap_v1340_ies_s {
bool ue_category_ul_v1340_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_ul_v1340 = 15;
ue_eutra_cap_v1350_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1390-IEs ::= SEQUENCE
struct ue_eutra_cap_v1390_ies_s {
bool rf_params_v1390_present = false;
bool non_crit_ext_present = false;
rf_params_v1390_s rf_params_v1390;
ue_eutra_cap_v13x0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1380 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1380_s {
ce_params_v1380_s ce_params_v1380;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-v1320 ::= SEQUENCE
struct ce_params_v1320_s {
bool intra_freq_a3_ce_mode_a_r13_present = false;
bool intra_freq_a3_ce_mode_b_r13_present = false;
bool intra_freq_ho_ce_mode_a_r13_present = false;
bool intra_freq_ho_ce_mode_b_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1310 ::= SEQUENCE
struct phy_layer_params_v1310_s {
struct supported_blind_decoding_r13_s_ {
bool max_num_decoding_r13_present = false;
bool pdcch_candidate_reductions_r13_present = false;
bool skip_monitoring_dci_format0_minus1_a_r13_present = false;
uint8_t max_num_decoding_r13 = 1;
};
// member variables
bool aperiodic_csi_report_r13_present = false;
bool codebook_harq_ack_r13_present = false;
bool cross_carrier_sched_b5_c_r13_present = false;
bool fdd_harq_timing_tdd_r13_present = false;
bool max_num_upd_csi_proc_r13_present = false;
bool pucch_format4_r13_present = false;
bool pucch_format5_r13_present = false;
bool pucch_scell_r13_present = false;
bool spatial_bundling_harq_ack_r13_present = false;
bool supported_blind_decoding_r13_present = false;
bool uci_pusch_ext_r13_present = false;
bool crs_interf_mitigation_tm10_r13_present = false;
bool pdsch_collision_handling_r13_present = false;
fixed_bitstring<2> aperiodic_csi_report_r13;
fixed_bitstring<2> codebook_harq_ack_r13;
uint8_t max_num_upd_csi_proc_r13 = 5;
supported_blind_decoding_r13_s_ supported_blind_decoding_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1330-IEs ::= SEQUENCE
struct ue_eutra_cap_v1330_ies_s {
bool ue_category_dl_v1330_present = false;
bool phy_layer_params_v1330_present = false;
bool ue_ce_need_ul_gaps_r13_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_dl_v1330 = 18;
phy_layer_params_v1330_s phy_layer_params_v1330;
ue_eutra_cap_v1340_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1380-IEs ::= SEQUENCE
struct ue_eutra_cap_v1380_ies_s {
bool rf_params_v1380_present = false;
bool non_crit_ext_present = false;
rf_params_v1380_s rf_params_v1380;
ce_params_v1380_s ce_params_v1380;
ue_eutra_cap_add_xdd_mode_v1380_s fdd_add_ue_eutra_cap_v1380;
ue_eutra_cap_add_xdd_mode_v1380_s tdd_add_ue_eutra_cap_v1380;
ue_eutra_cap_v1390_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1320 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1320_s {
bool phy_layer_params_v1320_present = false;
bool scptm_params_r13_present = false;
phy_layer_params_v1320_s phy_layer_params_v1320;
scptm_params_r13_s scptm_params_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1370 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1370_s {
bool ce_params_v1370_present = false;
ce_params_v1370_s ce_params_v1370;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CE-Parameters-r13 ::= SEQUENCE
struct ce_params_r13_s {
bool ce_mode_a_r13_present = false;
bool ce_mode_b_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DC-Parameters-v1310 ::= SEQUENCE
struct dc_params_v1310_s {
bool pdcp_transfer_split_ul_r13_present = false;
bool ue_sstd_meas_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LAA-Parameters-r13 ::= SEQUENCE
struct laa_params_r13_s {
bool cross_carrier_sched_laa_dl_r13_present = false;
bool csi_rs_drs_rrm_meass_laa_r13_present = false;
bool dl_laa_r13_present = false;
bool ending_dw_pts_r13_present = false;
bool second_slot_start_position_r13_present = false;
bool tm9_laa_r13_present = false;
bool tm10_laa_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWA-Parameters-r13 ::= SEQUENCE
struct lwa_params_r13_s {
bool lwa_r13_present = false;
bool lwa_split_bearer_r13_present = false;
bool wlan_mac_address_r13_present = false;
bool lwa_buffer_size_r13_present = false;
fixed_octstring<6> wlan_mac_address_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LWIP-Parameters-r13 ::= SEQUENCE
struct lwip_params_r13_s {
bool lwip_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-v1310 ::= SEQUENCE
struct mac_params_v1310_s {
bool extended_mac_len_field_r13_present = false;
bool extended_long_drx_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1310 ::= SEQUENCE
struct meas_params_v1310_s {
bool rs_sinr_meas_r13_present = false;
bool white_cell_list_r13_present = false;
bool extended_max_obj_id_r13_present = false;
bool ul_pdcp_delay_r13_present = false;
bool extended_freq_priorities_r13_present = false;
bool multi_band_info_report_r13_present = false;
bool rssi_and_ch_occupancy_report_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-Parameters-v1310 ::= SEQUENCE
struct pdcp_params_v1310_s {
bool pdcp_sn_ext_minus18bits_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Parameters-v1310 ::= SEQUENCE
struct rlc_params_v1310_s {
bool extended_rlc_sn_so_field_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-Parameters-v1310 ::= SEQUENCE
struct sl_params_v1310_s {
bool disc_sys_info_report_r13_present = false;
bool comm_multiple_tx_r13_present = false;
bool disc_inter_freq_tx_r13_present = false;
bool disc_periodic_slss_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1320-IEs ::= SEQUENCE
struct ue_eutra_cap_v1320_ies_s {
bool ce_params_v1320_present = false;
bool phy_layer_params_v1320_present = false;
bool rf_params_v1320_present = false;
bool fdd_add_ue_eutra_cap_v1320_present = false;
bool tdd_add_ue_eutra_cap_v1320_present = false;
bool non_crit_ext_present = false;
ce_params_v1320_s ce_params_v1320;
phy_layer_params_v1320_s phy_layer_params_v1320;
rf_params_v1320_s rf_params_v1320;
ue_eutra_cap_add_xdd_mode_v1320_s fdd_add_ue_eutra_cap_v1320;
ue_eutra_cap_add_xdd_mode_v1320_s tdd_add_ue_eutra_cap_v1320;
ue_eutra_cap_v1330_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1370-IEs ::= SEQUENCE
struct ue_eutra_cap_v1370_ies_s {
bool ce_params_v1370_present = false;
bool fdd_add_ue_eutra_cap_v1370_present = false;
bool tdd_add_ue_eutra_cap_v1370_present = false;
bool non_crit_ext_present = false;
ce_params_v1370_s ce_params_v1370;
ue_eutra_cap_add_xdd_mode_v1370_s fdd_add_ue_eutra_cap_v1370;
ue_eutra_cap_add_xdd_mode_v1370_s tdd_add_ue_eutra_cap_v1370;
ue_eutra_cap_v1380_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1310 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1310_s {
bool phy_layer_params_v1310_present = false;
phy_layer_params_v1310_s phy_layer_params_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-IW-Parameters-v1310 ::= SEQUENCE
struct wlan_iw_params_v1310_s {
bool rclwi_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1280 ::= SEQUENCE
struct phy_layer_params_v1280_s {
bool alt_tbs_indices_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RF-Parameters-v12b0 ::= SEQUENCE
struct rf_params_v12b0_s {
bool max_layers_mimo_ind_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v12x0-IEs ::= SEQUENCE
struct ue_eutra_cap_v12x0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v1370_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1310-IEs ::= SEQUENCE
struct ue_eutra_cap_v1310_ies_s {
struct ue_category_dl_v1310_opts {
enum options { n17, m1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ue_category_dl_v1310_opts> ue_category_dl_v1310_e_;
struct ue_category_ul_v1310_opts {
enum options { n14, m1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<ue_category_ul_v1310_opts> ue_category_ul_v1310_e_;
// member variables
bool ue_category_dl_v1310_present = false;
bool ue_category_ul_v1310_present = false;
bool mac_params_v1310_present = false;
bool phy_layer_params_v1310_present = false;
bool rf_params_v1310_present = false;
bool meas_params_v1310_present = false;
bool dc_params_v1310_present = false;
bool sl_params_v1310_present = false;
bool scptm_params_r13_present = false;
bool ce_params_r13_present = false;
bool laa_params_r13_present = false;
bool lwa_params_r13_present = false;
bool fdd_add_ue_eutra_cap_v1310_present = false;
bool tdd_add_ue_eutra_cap_v1310_present = false;
bool non_crit_ext_present = false;
ue_category_dl_v1310_e_ ue_category_dl_v1310;
ue_category_ul_v1310_e_ ue_category_ul_v1310;
pdcp_params_v1310_s pdcp_params_v1310;
rlc_params_v1310_s rlc_params_v1310;
mac_params_v1310_s mac_params_v1310;
phy_layer_params_v1310_s phy_layer_params_v1310;
rf_params_v1310_s rf_params_v1310;
meas_params_v1310_s meas_params_v1310;
dc_params_v1310_s dc_params_v1310;
sl_params_v1310_s sl_params_v1310;
scptm_params_r13_s scptm_params_r13;
ce_params_r13_s ce_params_r13;
irat_params_wlan_r13_s inter_rat_params_wlan_r13;
laa_params_r13_s laa_params_r13;
lwa_params_r13_s lwa_params_r13;
wlan_iw_params_v1310_s wlan_iw_params_v1310;
lwip_params_r13_s lwip_params_r13;
ue_eutra_cap_add_xdd_mode_v1310_s fdd_add_ue_eutra_cap_v1310;
ue_eutra_cap_add_xdd_mode_v1310_s tdd_add_ue_eutra_cap_v1310;
ue_eutra_cap_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1280-IEs ::= SEQUENCE
struct ue_eutra_cap_v1280_ies_s {
bool phy_layer_params_v1280_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v1280_s phy_layer_params_v1280;
ue_eutra_cap_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v12b0-IEs ::= SEQUENCE
struct ue_eutra_cap_v12b0_ies_s {
bool rf_params_v12b0_present = false;
bool non_crit_ext_present = false;
rf_params_v12b0_s rf_params_v12b0;
ue_eutra_cap_v12x0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1250 ::= SEQUENCE
struct meas_params_v1250_s {
bool timer_t312_r12_present = false;
bool alt_time_to_trigger_r12_present = false;
bool inc_mon_eutra_r12_present = false;
bool inc_mon_utra_r12_present = false;
bool extended_max_meas_id_r12_present = false;
bool extended_rsrq_lower_range_r12_present = false;
bool rsrq_on_all_symbols_r12_present = false;
bool crs_discovery_signals_meas_r12_present = false;
bool csi_rs_discovery_signals_meas_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-v11d0 ::= SEQUENCE
struct other_params_v11d0_s {
bool in_dev_coex_ind_ul_ca_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RF-Parameters-v10j0 ::= SEQUENCE
struct rf_params_v10j0_s {
bool multi_ns_pmax_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v11x0-IEs ::= SEQUENCE
struct ue_eutra_cap_v11x0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v12b0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1270-IEs ::= SEQUENCE
struct ue_eutra_cap_v1270_ies_s {
bool rf_params_v1270_present = false;
bool non_crit_ext_present = false;
rf_params_v1270_s rf_params_v1270;
ue_eutra_cap_v1280_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DC-Parameters-r12 ::= SEQUENCE
struct dc_params_r12_s {
bool drb_type_split_r12_present = false;
bool drb_type_scg_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MAC-Parameters-r12 ::= SEQUENCE
struct mac_params_r12_s {
bool lc_ch_sr_prohibit_timer_r12_present = false;
bool long_drx_cmd_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-Parameters-v1250 ::= SEQUENCE
struct mbms_params_v1250_s {
bool mbms_async_dc_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RLC-Parameters-r12 ::= SEQUENCE
struct rlc_params_r12_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-BasedNetwPerfMeasParameters-v1250 ::= SEQUENCE
struct ue_based_netw_perf_meas_params_v1250_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v10j0-IEs ::= SEQUENCE
struct ue_eutra_cap_v10j0_ies_s {
bool rf_params_v10j0_present = false;
bool non_crit_ext_present = false;
rf_params_v10j0_s rf_params_v10j0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v11d0-IEs ::= SEQUENCE
struct ue_eutra_cap_v11d0_ies_s {
bool rf_params_v11d0_present = false;
bool other_params_v11d0_present = false;
bool non_crit_ext_present = false;
rf_params_v11d0_s rf_params_v11d0;
other_params_v11d0_s other_params_v11d0;
ue_eutra_cap_v11x0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1260-IEs ::= SEQUENCE
struct ue_eutra_cap_v1260_ies_s {
bool ue_category_dl_v1260_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_dl_v1260 = 15;
ue_eutra_cap_v1270_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1250 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1250_s {
bool phy_layer_params_v1250_present = false;
bool meas_params_v1250_present = false;
phy_layer_params_v1250_s phy_layer_params_v1250;
meas_params_v1250_s meas_params_v1250;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// WLAN-IW-Parameters-r12 ::= SEQUENCE
struct wlan_iw_params_r12_s {
bool wlan_iw_ran_rules_r12_present = false;
bool wlan_iw_andsf_policies_r12_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MBMS-Parameters-r11 ::= SEQUENCE
struct mbms_params_r11_s {
bool mbms_scell_r11_present = false;
bool mbms_non_serving_cell_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v11a0 ::= SEQUENCE
struct meas_params_v11a0_s {
bool benefits_from_interruption_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RF-Parameters-v10f0 ::= SEQUENCE
struct rf_params_v10f0_s {
bool modified_mpr_behavior_r10_present = false;
fixed_bitstring<32> modified_mpr_behavior_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v10i0-IEs ::= SEQUENCE
struct ue_eutra_cap_v10i0_ies_s {
bool rf_params_v10i0_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
rf_params_v10i0_s rf_params_v10i0;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v11d0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1250-IEs ::= SEQUENCE
struct ue_eutra_cap_v1250_ies_s {
bool phy_layer_params_v1250_present = false;
bool rf_params_v1250_present = false;
bool rlc_params_r12_present = false;
bool ue_based_netw_perf_meas_params_v1250_present = false;
bool ue_category_dl_r12_present = false;
bool ue_category_ul_r12_present = false;
bool wlan_iw_params_r12_present = false;
bool meas_params_v1250_present = false;
bool dc_params_r12_present = false;
bool mbms_params_v1250_present = false;
bool mac_params_r12_present = false;
bool fdd_add_ue_eutra_cap_v1250_present = false;
bool tdd_add_ue_eutra_cap_v1250_present = false;
bool sl_params_r12_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v1250_s phy_layer_params_v1250;
rf_params_v1250_s rf_params_v1250;
rlc_params_r12_s rlc_params_r12;
ue_based_netw_perf_meas_params_v1250_s ue_based_netw_perf_meas_params_v1250;
uint8_t ue_category_dl_r12 = 0;
uint8_t ue_category_ul_r12 = 0;
wlan_iw_params_r12_s wlan_iw_params_r12;
meas_params_v1250_s meas_params_v1250;
dc_params_r12_s dc_params_r12;
mbms_params_v1250_s mbms_params_v1250;
mac_params_r12_s mac_params_r12;
ue_eutra_cap_add_xdd_mode_v1250_s fdd_add_ue_eutra_cap_v1250;
ue_eutra_cap_add_xdd_mode_v1250_s tdd_add_ue_eutra_cap_v1250;
sl_params_r12_s sl_params_r12;
ue_eutra_cap_v1260_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// OTDOA-PositioningCapabilities-r10 ::= SEQUENCE
struct otdoa_positioning_cap_r10_s {
bool inter_freq_rstd_meas_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v10f0-IEs ::= SEQUENCE
struct ue_eutra_cap_v10f0_ies_s {
bool rf_params_v10f0_present = false;
bool non_crit_ext_present = false;
rf_params_v10f0_s rf_params_v10f0;
ue_eutra_cap_v10i0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v11a0-IEs ::= SEQUENCE
struct ue_eutra_cap_v11a0_ies_s {
bool ue_category_v11a0_present = false;
bool meas_params_v11a0_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_v11a0 = 11;
meas_params_v11a0_s meas_params_v11a0;
ue_eutra_cap_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1180 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1180_s {
mbms_params_r11_s mbms_params_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersUTRA-v9h0 ::= SEQUENCE
struct irat_params_utra_v9h0_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasParameters-v1130 ::= SEQUENCE
struct meas_params_v1130_s {
bool rsrq_meas_wideband_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// Other-Parameters-r11 ::= SEQUENCE
struct other_params_r11_s {
bool in_dev_coex_ind_r11_present = false;
bool pwr_pref_ind_r11_present = false;
bool ue_rx_tx_time_diff_meass_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1130 ::= SEQUENCE
struct phy_layer_params_v1130_s {
bool crs_interf_handl_r11_present = false;
bool epdcch_r11_present = false;
bool multi_ack_csi_report_r11_present = false;
bool ss_cch_interf_handl_r11_present = false;
bool tdd_special_sf_r11_present = false;
bool tx_div_pucch1b_ch_select_r11_present = false;
bool ul_co_mp_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v1170 ::= SEQUENCE
struct phy_layer_params_v1170_s {
bool inter_band_tdd_ca_with_different_cfg_r11_present = false;
fixed_bitstring<2> inter_band_tdd_ca_with_different_cfg_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v10c0-IEs ::= SEQUENCE
struct ue_eutra_cap_v10c0_ies_s {
bool otdoa_positioning_cap_r10_present = false;
bool non_crit_ext_present = false;
otdoa_positioning_cap_r10_s otdoa_positioning_cap_r10;
ue_eutra_cap_v10f0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1180-IEs ::= SEQUENCE
struct ue_eutra_cap_v1180_ies_s {
bool rf_params_v1180_present = false;
bool mbms_params_r11_present = false;
bool fdd_add_ue_eutra_cap_v1180_present = false;
bool tdd_add_ue_eutra_cap_v1180_present = false;
bool non_crit_ext_present = false;
rf_params_v1180_s rf_params_v1180;
mbms_params_r11_s mbms_params_r11;
ue_eutra_cap_add_xdd_mode_v1180_s fdd_add_ue_eutra_cap_v1180;
ue_eutra_cap_add_xdd_mode_v1180_s tdd_add_ue_eutra_cap_v1180;
ue_eutra_cap_v11a0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersCDMA2000-v1130 ::= SEQUENCE
struct irat_params_cdma2000_v1130_s {
bool cdma2000_nw_sharing_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PDCP-Parameters-v1130 ::= SEQUENCE
struct pdcp_params_v1130_s {
bool pdcp_sn_ext_r11_present = false;
bool support_rohc_context_continue_r11_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1170-IEs ::= SEQUENCE
struct ue_eutra_cap_v1170_ies_s {
bool phy_layer_params_v1170_present = false;
bool ue_category_v1170_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v1170_s phy_layer_params_v1170;
uint8_t ue_category_v1170 = 9;
ue_eutra_cap_v1180_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v9h0-IEs ::= SEQUENCE
struct ue_eutra_cap_v9h0_ies_s {
bool inter_rat_params_utra_v9h0_present = false;
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
irat_params_utra_v9h0_s inter_rat_params_utra_v9h0;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v10c0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1130 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1130_s {
bool ext = false;
bool phy_layer_params_v1130_present = false;
bool meas_params_v1130_present = false;
bool other_params_r11_present = false;
phy_layer_params_v1130_s phy_layer_params_v1130;
meas_params_v1130_s meas_params_v1130;
other_params_r11_s other_params_r11;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersCDMA2000-1XRTT-v1020 ::= SEQUENCE
struct irat_params_cdma2000_minus1_xrtt_v1020_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersUTRA-TDD-v1020 ::= SEQUENCE
struct irat_params_utra_tdd_v1020_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v9d0 ::= SEQUENCE
struct phy_layer_params_v9d0_s {
bool tm5_fdd_r9_present = false;
bool tm5_tdd_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1130-IEs ::= SEQUENCE
struct ue_eutra_cap_v1130_ies_s {
bool phy_layer_params_v1130_present = false;
bool fdd_add_ue_eutra_cap_v1130_present = false;
bool tdd_add_ue_eutra_cap_v1130_present = false;
bool non_crit_ext_present = false;
pdcp_params_v1130_s pdcp_params_v1130;
phy_layer_params_v1130_s phy_layer_params_v1130;
rf_params_v1130_s rf_params_v1130;
meas_params_v1130_s meas_params_v1130;
irat_params_cdma2000_v1130_s inter_rat_params_cdma2000_v1130;
other_params_r11_s other_params_r11;
ue_eutra_cap_add_xdd_mode_v1130_s fdd_add_ue_eutra_cap_v1130;
ue_eutra_cap_add_xdd_mode_v1130_s tdd_add_ue_eutra_cap_v1130;
ue_eutra_cap_v1170_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v9e0-IEs ::= SEQUENCE
struct ue_eutra_cap_v9e0_ies_s {
bool rf_params_v9e0_present = false;
bool non_crit_ext_present = false;
rf_params_v9e0_s rf_params_v9e0;
ue_eutra_cap_v9h0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersCDMA2000-1XRTT-v920 ::= SEQUENCE
struct irat_params_cdma2000_minus1_xrtt_v920_s {
bool e_csfb_conc_ps_mob1_xrtt_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersUTRA-v920 ::= SEQUENCE
struct irat_params_utra_v920_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersUTRA-v9c0 ::= SEQUENCE
struct irat_params_utra_v9c0_s {
bool voice_over_ps_hs_utra_fdd_r9_present = false;
bool voice_over_ps_hs_utra_tdd128_r9_present = false;
bool srvcc_from_utra_fdd_to_utra_fdd_r9_present = false;
bool srvcc_from_utra_fdd_to_geran_r9_present = false;
bool srvcc_from_utra_tdd128_to_utra_tdd128_r9_present = false;
bool srvcc_from_utra_tdd128_to_geran_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// NeighCellSI-AcquisitionParameters-r9 ::= SEQUENCE
struct neigh_cell_si_acquisition_params_r9_s {
bool intra_freq_si_acquisition_for_ho_r9_present = false;
bool inter_freq_si_acquisition_for_ho_r9_present = false;
bool utran_si_acquisition_for_ho_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters ::= SEQUENCE
struct phy_layer_params_s {
bool ue_tx_ant_sel_supported = false;
bool ue_specific_ref_sigs_supported = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1090-IEs ::= SEQUENCE
struct ue_eutra_cap_v1090_ies_s {
bool rf_params_v1090_present = false;
bool non_crit_ext_present = false;
rf_params_v1090_s rf_params_v1090;
ue_eutra_cap_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v9d0-IEs ::= SEQUENCE
struct ue_eutra_cap_v9d0_ies_s {
bool phy_layer_params_v9d0_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v9d0_s phy_layer_params_v9d0;
ue_eutra_cap_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-v1060 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_v1060_s {
bool ext = false;
bool phy_layer_params_v1060_present = false;
bool feature_group_ind_rel10_v1060_present = false;
bool inter_rat_params_cdma2000_v1060_present = false;
bool inter_rat_params_utra_tdd_v1060_present = false;
phy_layer_params_v1020_s phy_layer_params_v1060;
fixed_bitstring<32> feature_group_ind_rel10_v1060;
irat_params_cdma2000_minus1_xrtt_v1020_s inter_rat_params_cdma2000_v1060;
irat_params_utra_tdd_v1020_s inter_rat_params_utra_tdd_v1060;
// ...
// group 0
copy_ptr<otdoa_positioning_cap_r10_s> otdoa_positioning_cap_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-BasedNetwPerfMeasParameters-r10 ::= SEQUENCE
struct ue_based_netw_perf_meas_params_r10_s {
bool logged_meass_idle_r10_present = false;
bool standalone_gnss_location_r10_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1060-IEs ::= SEQUENCE
struct ue_eutra_cap_v1060_ies_s {
bool fdd_add_ue_eutra_cap_v1060_present = false;
bool tdd_add_ue_eutra_cap_v1060_present = false;
bool rf_params_v1060_present = false;
bool non_crit_ext_present = false;
ue_eutra_cap_add_xdd_mode_v1060_s fdd_add_ue_eutra_cap_v1060;
ue_eutra_cap_add_xdd_mode_v1060_s tdd_add_ue_eutra_cap_v1060;
rf_params_v1060_s rf_params_v1060;
ue_eutra_cap_v1090_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v9c0-IEs ::= SEQUENCE
struct ue_eutra_cap_v9c0_ies_s {
bool inter_rat_params_utra_v9c0_present = false;
bool non_crit_ext_present = false;
irat_params_utra_v9c0_s inter_rat_params_utra_v9c0;
ue_eutra_cap_v9d0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-CapabilityAddXDD-Mode-r9 ::= SEQUENCE
struct ue_eutra_cap_add_xdd_mode_r9_s {
bool ext = false;
bool phy_layer_params_r9_present = false;
bool feature_group_inds_r9_present = false;
bool feature_group_ind_rel9_add_r9_present = false;
bool inter_rat_params_geran_r9_present = false;
bool inter_rat_params_utra_r9_present = false;
bool inter_rat_params_cdma2000_r9_present = false;
bool neigh_cell_si_acquisition_params_r9_present = false;
phy_layer_params_s phy_layer_params_r9;
fixed_bitstring<32> feature_group_inds_r9;
fixed_bitstring<32> feature_group_ind_rel9_add_r9;
irat_params_geran_s inter_rat_params_geran_r9;
irat_params_utra_v920_s inter_rat_params_utra_r9;
irat_params_cdma2000_minus1_xrtt_v920_s inter_rat_params_cdma2000_r9;
neigh_cell_si_acquisition_params_r9_s neigh_cell_si_acquisition_params_r9;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v1020-IEs ::= SEQUENCE
struct ue_eutra_cap_v1020_ies_s {
bool ue_category_v1020_present = false;
bool phy_layer_params_v1020_present = false;
bool rf_params_v1020_present = false;
bool meas_params_v1020_present = false;
bool feature_group_ind_rel10_r10_present = false;
bool inter_rat_params_cdma2000_v1020_present = false;
bool ue_based_netw_perf_meas_params_r10_present = false;
bool inter_rat_params_utra_tdd_v1020_present = false;
bool non_crit_ext_present = false;
uint8_t ue_category_v1020 = 6;
phy_layer_params_v1020_s phy_layer_params_v1020;
rf_params_v1020_s rf_params_v1020;
meas_params_v1020_s meas_params_v1020;
fixed_bitstring<32> feature_group_ind_rel10_r10;
irat_params_cdma2000_minus1_xrtt_v1020_s inter_rat_params_cdma2000_v1020;
ue_based_netw_perf_meas_params_r10_s ue_based_netw_perf_meas_params_r10;
irat_params_utra_tdd_v1020_s inter_rat_params_utra_tdd_v1020;
ue_eutra_cap_v1060_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v9a0-IEs ::= SEQUENCE
struct ue_eutra_cap_v9a0_ies_s {
bool feature_group_ind_rel9_add_r9_present = false;
bool fdd_add_ue_eutra_cap_r9_present = false;
bool tdd_add_ue_eutra_cap_r9_present = false;
bool non_crit_ext_present = false;
fixed_bitstring<32> feature_group_ind_rel9_add_r9;
ue_eutra_cap_add_xdd_mode_r9_s fdd_add_ue_eutra_cap_r9;
ue_eutra_cap_add_xdd_mode_r9_s tdd_add_ue_eutra_cap_r9;
ue_eutra_cap_v9c0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CSG-ProximityIndicationParameters-r9 ::= SEQUENCE
struct csg_proximity_ind_params_r9_s {
bool intra_freq_proximity_ind_r9_present = false;
bool inter_freq_proximity_ind_r9_present = false;
bool utran_proximity_ind_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// IRAT-ParametersGERAN-v920 ::= SEQUENCE
struct irat_params_geran_v920_s {
bool dtm_r9_present = false;
bool e_redirection_geran_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// PhyLayerParameters-v920 ::= SEQUENCE
struct phy_layer_params_v920_s {
bool enhanced_dual_layer_fdd_r9_present = false;
bool enhanced_dual_layer_tdd_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SON-Parameters-r9 ::= SEQUENCE
struct son_params_r9_s {
bool rach_report_r9_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability-v940-IEs ::= SEQUENCE
struct ue_eutra_cap_v940_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ue_eutra_cap_v1020_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AccessStratumRelease ::= ENUMERATED
struct access_stratum_release_opts {
enum options { rel8, rel9, rel10, rel11, rel12, rel13, rel14, rel15, /*...*/ nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<access_stratum_release_opts, true> access_stratum_release_e;
// UE-EUTRA-Capability-v920-IEs ::= SEQUENCE
struct ue_eutra_cap_v920_ies_s {
bool inter_rat_params_utra_v920_present = false;
bool inter_rat_params_cdma2000_v920_present = false;
bool dev_type_r9_present = false;
bool non_crit_ext_present = false;
phy_layer_params_v920_s phy_layer_params_v920;
irat_params_geran_v920_s inter_rat_params_geran_v920;
irat_params_utra_v920_s inter_rat_params_utra_v920;
irat_params_cdma2000_minus1_xrtt_v920_s inter_rat_params_cdma2000_v920;
csg_proximity_ind_params_r9_s csg_proximity_ind_params_r9;
neigh_cell_si_acquisition_params_r9_s neigh_cell_si_acquisition_params_r9;
son_params_r9_s son_params_r9;
ue_eutra_cap_v940_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UE-EUTRA-Capability ::= SEQUENCE
struct ue_eutra_cap_s {
struct inter_rat_params_s_ {
bool utra_fdd_present = false;
bool utra_tdd128_present = false;
bool utra_tdd384_present = false;
bool utra_tdd768_present = false;
bool geran_present = false;
bool cdma2000_hrpd_present = false;
bool cdma2000_minus1x_rtt_present = false;
irat_params_utra_fdd_s utra_fdd;
irat_params_utra_tdd128_s utra_tdd128;
irat_params_utra_tdd384_s utra_tdd384;
irat_params_utra_tdd768_s utra_tdd768;
irat_params_geran_s geran;
irat_params_cdma2000_hrpd_s cdma2000_hrpd;
irat_params_cdma2000_minus1_xrtt_s cdma2000_minus1x_rtt;
};
// member variables
bool feature_group_inds_present = false;
bool non_crit_ext_present = false;
access_stratum_release_e access_stratum_release;
uint8_t ue_category = 1;
pdcp_params_s pdcp_params;
phy_layer_params_s phy_layer_params;
rf_params_s rf_params;
meas_params_s meas_params;
fixed_bitstring<32> feature_group_inds;
inter_rat_params_s_ inter_rat_params;
ue_eutra_cap_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-r12-IEs ::= SEQUENCE
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;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-ConfigNR-r15 ::= SEQUENCE
struct as_cfg_nr_r15_s {
bool source_rb_cfg_nr_r15_present = false;
bool source_rb_cfg_sn_nr_r15_present = false;
bool source_other_cfg_sn_nr_r15_present = false;
dyn_octstring source_rb_cfg_nr_r15;
dyn_octstring source_rb_cfg_sn_nr_r15;
dyn_octstring source_other_cfg_sn_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-r12 ::= SEQUENCE
struct scg_cfg_r12_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { scg_cfg_r12, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_cfg_r12_ies_s& scg_cfg_r12()
{
assert_choice_type("scg-Config-r12", type_.to_string(), "c1");
return c;
}
const scg_cfg_r12_ies_s& scg_cfg_r12() const
{
assert_choice_type("scg-Config-r12", type_.to_string(), "c1");
return c;
}
scg_cfg_r12_ies_s& set_scg_cfg_r12()
{
set(types::scg_cfg_r12);
return c;
}
private:
types type_;
scg_cfg_r12_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config ::= SEQUENCE
struct as_cfg_s {
bool ext = false;
meas_cfg_s source_meas_cfg;
rr_cfg_ded_s source_rr_cfg;
security_algorithm_cfg_s source_security_algorithm_cfg;
fixed_bitstring<16> source_ue_id;
mib_s source_mib;
sib_type1_s source_sib_type1;
sib_type2_s source_sib_type2;
ant_info_common_s ant_info_common;
uint32_t source_dl_carrier_freq = 0;
// ...
// group 0
bool source_sib_type1_ext_present = false;
dyn_octstring source_sib_type1_ext;
copy_ptr<other_cfg_r9_s> source_other_cfg_r9;
// group 1
copy_ptr<scell_to_add_mod_list_r10_l> source_scell_cfg_list_r10;
// group 2
copy_ptr<scg_cfg_r12_s> source_cfg_scg_r12;
// group 3
copy_ptr<as_cfg_nr_r15_s> as_cfg_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v10j0 ::= SEQUENCE
struct as_cfg_v10j0_s {
bool ant_info_ded_pcell_v10i0_present = false;
ant_info_ded_v10i0_s ant_info_ded_pcell_v10i0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v1250 ::= SEQUENCE
struct as_cfg_v1250_s {
bool source_wlan_offload_cfg_r12_present = false;
bool source_sl_comm_cfg_r12_present = false;
bool source_sl_disc_cfg_r12_present = false;
wlan_offload_cfg_r12_s source_wlan_offload_cfg_r12;
sl_comm_cfg_r12_s source_sl_comm_cfg_r12;
sl_disc_cfg_r12_s source_sl_disc_cfg_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v1320 ::= SEQUENCE
struct as_cfg_v1320_s {
bool source_scell_cfg_list_r13_present = false;
bool source_rclwi_cfg_r13_present = false;
scell_to_add_mod_list_ext_r13_l source_scell_cfg_list_r13;
rclwi_cfg_r13_c source_rclwi_cfg_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v1430 ::= SEQUENCE
struct as_cfg_v1430_s {
bool source_sl_v2x_comm_cfg_r14_present = false;
bool source_lwa_cfg_r14_present = false;
bool source_wlan_meas_result_r14_present = false;
sl_v2x_cfg_ded_r14_s source_sl_v2x_comm_cfg_r14;
lwa_cfg_r13_s source_lwa_cfg_r14;
meas_result_list_wlan_r13_l source_wlan_meas_result_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v9e0 ::= SEQUENCE
struct as_cfg_v9e0_s {
uint32_t source_dl_carrier_freq_v9e0 = 65536;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AdditionalReestabInfo ::= SEQUENCE
struct add_reestab_info_s {
fixed_bitstring<28> cell_id;
fixed_bitstring<256> key_e_node_b_star;
fixed_bitstring<16> short_mac_i;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AdditionalReestabInfoList ::= SEQUENCE (SIZE (1..32)) OF AdditionalReestabInfo
using add_reestab_info_list_l = dyn_array<add_reestab_info_s>;
// ReestablishmentInfo ::= SEQUENCE
struct reest_info_s {
bool ext = false;
bool add_reestab_info_list_present = false;
uint16_t source_pci = 0;
fixed_bitstring<16> target_cell_short_mac_i;
add_reestab_info_list_l add_reestab_info_list;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Context ::= SEQUENCE
struct as_context_s {
bool reest_info_present = false;
reest_info_s reest_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Context-v1130 ::= SEQUENCE
struct as_context_v1130_s {
bool ext = false;
bool idc_ind_r11_present = false;
bool mbms_interest_ind_r11_present = false;
bool pwr_pref_ind_r11_present = false;
dyn_octstring idc_ind_r11;
dyn_octstring mbms_interest_ind_r11;
dyn_octstring pwr_pref_ind_r11;
// ...
// group 0
bool sidelink_ue_info_r12_present = false;
dyn_octstring sidelink_ue_info_r12;
// group 1
bool source_context_en_dc_r15_present = false;
dyn_octstring source_context_en_dc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Context-v1320 ::= SEQUENCE
struct as_context_v1320_s {
bool wlan_conn_status_report_r13_present = false;
dyn_octstring wlan_conn_status_report_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_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>;
// CandidateCellInfo-r10 ::= SEQUENCE
struct candidate_cell_info_r10_s {
bool ext = false;
bool rsrp_result_r10_present = false;
bool rsrq_result_r10_present = false;
uint16_t pci_r10 = 0;
uint32_t dl_carrier_freq_r10 = 0;
uint8_t rsrp_result_r10 = 0;
uint8_t rsrq_result_r10 = 0;
// ...
// group 0
bool dl_carrier_freq_v1090_present = false;
uint32_t dl_carrier_freq_v1090 = 65536;
// group 1
bool rsrq_result_v1250_present = false;
int8_t rsrq_result_v1250 = -30;
// group 2
bool rs_sinr_result_r13_present = false;
uint8_t rs_sinr_result_r13 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// CandidateCellInfoList-r10 ::= SEQUENCE (SIZE (1..8)) OF CandidateCellInfo-r10
using candidate_cell_info_list_r10_l = dyn_array<candidate_cell_info_r10_s>;
// Cell-ToAddMod-r12 ::= SEQUENCE
struct cell_to_add_mod_r12_s {
struct cell_identif_r12_s_ {
uint16_t pci_r12 = 0;
uint32_t dl_carrier_freq_r12 = 0;
};
struct meas_result_cell_to_add_r12_s_ {
uint8_t rsrp_result_r12 = 0;
uint8_t rsrq_result_r12 = 0;
};
struct meas_result_cell_to_add_v1310_s_ {
uint8_t rs_sinr_result_r13 = 0;
};
// member variables
bool ext = false;
bool cell_identif_r12_present = false;
bool meas_result_cell_to_add_r12_present = false;
uint8_t scell_idx_r12 = 1;
cell_identif_r12_s_ cell_identif_r12;
meas_result_cell_to_add_r12_s_ meas_result_cell_to_add_r12;
// ...
// group 0
bool scell_idx_r13_present = false;
uint8_t scell_idx_r13 = 1;
copy_ptr<meas_result_cell_to_add_v1310_s_> meas_result_cell_to_add_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SSB-IndexList-r15 ::= SEQUENCE (SIZE (1..64)) OF INTEGER (0..63)
using ssb_idx_list_r15_l = dyn_array<uint8_t>;
struct cells_triggered_list_item_c_ {
struct pci_utra_c_ {
struct types_opts {
enum options { fdd, tdd, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
pci_utra_c_() = default;
pci_utra_c_(const pci_utra_c_& other);
pci_utra_c_& operator=(const pci_utra_c_& other);
~pci_utra_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& fdd()
{
assert_choice_type("fdd", type_.to_string(), "physCellIdUTRA");
return c.get<uint16_t>();
}
uint8_t& tdd()
{
assert_choice_type("tdd", type_.to_string(), "physCellIdUTRA");
return c.get<uint8_t>();
}
const uint16_t& fdd() const
{
assert_choice_type("fdd", type_.to_string(), "physCellIdUTRA");
return c.get<uint16_t>();
}
const uint8_t& tdd() const
{
assert_choice_type("tdd", type_.to_string(), "physCellIdUTRA");
return c.get<uint8_t>();
}
uint16_t& set_fdd()
{
set(types::fdd);
return c.get<uint16_t>();
}
uint8_t& set_tdd()
{
set(types::tdd);
return c.get<uint8_t>();
}
private:
types type_;
pod_choice_buffer_t c;
void destroy_();
};
struct pci_geran_s_ {
carrier_freq_geran_s carrier_freq;
pci_geran_s pci;
};
struct pci_nr_r15_s_ {
bool rs_idx_list_r15_present = false;
uint32_t carrier_freq = 0;
uint16_t pci = 0;
ssb_idx_list_r15_l rs_idx_list_r15;
};
struct types_opts {
enum options { pci_eutra, pci_utra, pci_geran, pci_cdma2000, wlan_ids_r13, pci_nr_r15, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<types_opts> types;
// choice methods
cells_triggered_list_item_c_() = default;
cells_triggered_list_item_c_(const cells_triggered_list_item_c_& other);
cells_triggered_list_item_c_& operator=(const cells_triggered_list_item_c_& other);
~cells_triggered_list_item_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
uint16_t& pci_eutra()
{
assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item");
return c.get<uint16_t>();
}
pci_utra_c_& pci_utra()
{
assert_choice_type("physCellIdUTRA", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_utra_c_>();
}
pci_geran_s_& pci_geran()
{
assert_choice_type("physCellIdGERAN", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_geran_s_>();
}
uint16_t& pci_cdma2000()
{
assert_choice_type("physCellIdCDMA2000", type_.to_string(), "CellsTriggeredList-item");
return c.get<uint16_t>();
}
wlan_ids_r12_s& wlan_ids_r13()
{
assert_choice_type("wlan-Identifiers-r13", type_.to_string(), "CellsTriggeredList-item");
return c.get<wlan_ids_r12_s>();
}
pci_nr_r15_s_& pci_nr_r15()
{
assert_choice_type("physCellIdNR-r15", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_nr_r15_s_>();
}
const uint16_t& pci_eutra() const
{
assert_choice_type("physCellIdEUTRA", type_.to_string(), "CellsTriggeredList-item");
return c.get<uint16_t>();
}
const pci_utra_c_& pci_utra() const
{
assert_choice_type("physCellIdUTRA", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_utra_c_>();
}
const pci_geran_s_& pci_geran() const
{
assert_choice_type("physCellIdGERAN", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_geran_s_>();
}
const uint16_t& pci_cdma2000() const
{
assert_choice_type("physCellIdCDMA2000", type_.to_string(), "CellsTriggeredList-item");
return c.get<uint16_t>();
}
const wlan_ids_r12_s& wlan_ids_r13() const
{
assert_choice_type("wlan-Identifiers-r13", type_.to_string(), "CellsTriggeredList-item");
return c.get<wlan_ids_r12_s>();
}
const pci_nr_r15_s_& pci_nr_r15() const
{
assert_choice_type("physCellIdNR-r15", type_.to_string(), "CellsTriggeredList-item");
return c.get<pci_nr_r15_s_>();
}
uint16_t& set_pci_eutra()
{
set(types::pci_eutra);
return c.get<uint16_t>();
}
pci_utra_c_& set_pci_utra()
{
set(types::pci_utra);
return c.get<pci_utra_c_>();
}
pci_geran_s_& set_pci_geran()
{
set(types::pci_geran);
return c.get<pci_geran_s_>();
}
uint16_t& set_pci_cdma2000()
{
set(types::pci_cdma2000);
return c.get<uint16_t>();
}
wlan_ids_r12_s& set_wlan_ids_r13()
{
set(types::wlan_ids_r13);
return c.get<wlan_ids_r12_s>();
}
pci_nr_r15_s_& set_pci_nr_r15()
{
set(types::pci_nr_r15);
return c.get<pci_nr_r15_s_>();
}
private:
types type_;
choice_buffer_t<pci_geran_s_, pci_nr_r15_s_, pci_utra_c_, wlan_ids_r12_s> c;
void destroy_();
};
// CellsTriggeredList ::= SEQUENCE (SIZE (1..32)) OF CellsTriggeredList-item
using cells_triggered_list_l = dyn_array<cells_triggered_list_item_c_>;
// DRB-InfoSCG-r12 ::= SEQUENCE
struct drb_info_scg_r12_s {
struct drb_type_r12_opts {
enum options { split, scg, nulltype } value;
std::string to_string() const;
};
typedef enumerated<drb_type_r12_opts> drb_type_r12_e_;
// member variables
bool ext = false;
bool eps_bearer_id_r12_present = false;
bool drb_type_r12_present = false;
uint8_t eps_bearer_id_r12 = 0;
uint8_t drb_id_r12 = 1;
drb_type_r12_e_ drb_type_r12;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// DRB-InfoListSCG-r12 ::= SEQUENCE (SIZE (1..11)) OF DRB-InfoSCG-r12
using drb_info_list_scg_r12_l = dyn_array<drb_info_scg_r12_s>;
// DRB-InfoListSCG-r15 ::= SEQUENCE (SIZE (1..15)) OF DRB-InfoSCG-r12
using drb_info_list_scg_r15_l = dyn_array<drb_info_scg_r12_s>;
// HandoverCommand-r8-IEs ::= SEQUENCE
struct ho_cmd_r8_ies_s {
bool non_crit_ext_present = false;
dyn_octstring ho_cmd_msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverCommand ::= SEQUENCE
struct ho_cmd_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ho_cmd_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_cmd_r8_ies_s& ho_cmd_r8()
{
assert_choice_type("handoverCommand-r8", type_.to_string(), "c1");
return c;
}
const ho_cmd_r8_ies_s& ho_cmd_r8() const
{
assert_choice_type("handoverCommand-r8", type_.to_string(), "c1");
return c;
}
ho_cmd_r8_ies_s& set_ho_cmd_r8()
{
set(types::ho_cmd_r8);
return c;
}
private:
types type_;
ho_cmd_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1430-IEs ::= SEQUENCE
struct ho_prep_info_v1430_ies_s {
bool as_cfg_v1430_present = false;
bool make_before_break_req_r14_present = false;
bool non_crit_ext_present = false;
as_cfg_v1430_s as_cfg_v1430;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1320-IEs ::= SEQUENCE
struct ho_prep_info_v1320_ies_s {
bool as_cfg_v1320_present = false;
bool as_context_v1320_present = false;
bool non_crit_ext_present = false;
as_cfg_v1320_s as_cfg_v1320;
as_context_v1320_s as_context_v1320;
ho_prep_info_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1250-IEs ::= SEQUENCE
struct ho_prep_info_v1250_ies_s {
bool ue_supported_earfcn_r12_present = false;
bool as_cfg_v1250_present = false;
bool non_crit_ext_present = false;
uint32_t ue_supported_earfcn_r12 = 0;
as_cfg_v1250_s as_cfg_v1250;
ho_prep_info_v1320_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v10j0-IEs ::= SEQUENCE
struct ho_prep_info_v10j0_ies_s {
bool as_cfg_v10j0_present = false;
bool non_crit_ext_present = false;
as_cfg_v10j0_s as_cfg_v10j0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1130-IEs ::= SEQUENCE
struct ho_prep_info_v1130_ies_s {
bool as_context_v1130_present = false;
bool non_crit_ext_present = false;
as_context_v1130_s as_context_v1130;
ho_prep_info_v1250_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v9e0-IEs ::= SEQUENCE
struct ho_prep_info_v9e0_ies_s {
bool as_cfg_v9e0_present = false;
bool non_crit_ext_present = false;
as_cfg_v9e0_s as_cfg_v9e0;
ho_prep_info_v1130_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v9j0-IEs ::= SEQUENCE
struct ho_prep_info_v9j0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ho_prep_info_v10j0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v9d0-IEs ::= SEQUENCE
struct ho_prep_info_v9d0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ho_prep_info_v9e0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v920-IEs ::= SEQUENCE
struct ho_prep_info_v920_ies_s {
struct ue_cfg_release_r9_opts {
enum options { rel9, rel10, rel11, rel12, v10j0, v11e0, v1280, rel13, /*...*/ rel14, rel15, nulltype } value;
std::string to_string() const;
};
typedef enumerated<ue_cfg_release_r9_opts, true, 2> ue_cfg_release_r9_e_;
// member variables
bool ue_cfg_release_r9_present = false;
bool non_crit_ext_present = false;
ue_cfg_release_r9_e_ ue_cfg_release_r9;
ho_prep_info_v9d0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// RRM-Config ::= SEQUENCE
struct rrm_cfg_s {
struct ue_inactive_time_opts {
enum options {
s1,
s2,
s3,
s5,
s7,
s10,
s15,
s20,
s25,
s30,
s40,
s50,
min1,
min1s20c,
min1s40,
min2,
min2s30,
min3,
min3s30,
min4,
min5,
min6,
min7,
min8,
min9,
min10,
min12,
min14,
min17,
min20,
min24,
min28,
min33,
min38,
min44,
min50,
hr1,
hr1min30,
hr2,
hr2min30,
hr3,
hr3min30,
hr4,
hr5,
hr6,
hr8,
hr10,
hr13,
hr16,
hr20,
day1,
day1hr12,
day2,
day2hr12,
day3,
day4,
day5,
day7,
day10,
day14,
day19,
day24,
day30,
day_more_than30,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<ue_inactive_time_opts> ue_inactive_time_e_;
// member variables
bool ext = false;
bool ue_inactive_time_present = false;
ue_inactive_time_e_ ue_inactive_time;
// ...
// group 0
copy_ptr<candidate_cell_info_list_r10_l> candidate_cell_info_list_r10;
// group 1
copy_ptr<meas_result_serv_freq_list_nr_r15_l> candidate_cell_info_list_nr_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-r8-IEs ::= SEQUENCE
struct ho_prep_info_r8_ies_s {
bool as_cfg_present = false;
bool rrm_cfg_present = false;
bool as_context_present = false;
bool non_crit_ext_present = false;
ue_cap_rat_container_list_l ue_radio_access_cap_info;
as_cfg_s as_cfg;
rrm_cfg_s rrm_cfg;
as_context_s as_context;
ho_prep_info_v920_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation ::= SEQUENCE
struct ho_prep_info_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { ho_prep_info_r8, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_prep_info_r8_ies_s& ho_prep_info_r8()
{
assert_choice_type("handoverPreparationInformation-r8", type_.to_string(), "c1");
return c;
}
const ho_prep_info_r8_ies_s& ho_prep_info_r8() const
{
assert_choice_type("handoverPreparationInformation-r8", type_.to_string(), "c1");
return c;
}
ho_prep_info_r8_ies_s& set_ho_prep_info_r8()
{
set(types::ho_prep_info_r8);
return c;
}
private:
types type_;
ho_prep_info_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1530-IEs ::= SEQUENCE
struct ho_prep_info_v1530_ies_s {
bool ran_notif_area_info_r15_present = false;
bool non_crit_ext_present = false;
ran_notif_area_info_r15_c ran_notif_area_info_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// LogMeasInfoList2-r10 ::= SEQUENCE (SIZE (1..4060)) OF LogMeasInfo-r10
using log_meas_info_list2_r10_l = dyn_array<log_meas_info_r10_s>;
// TDD-ConfigSL-r12 ::= SEQUENCE
struct tdd_cfg_sl_r12_s {
struct sf_assign_sl_r12_opts {
enum options { none, sa0, sa1, sa2, sa3, sa4, sa5, sa6, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sf_assign_sl_r12_opts> sf_assign_sl_r12_e_;
// member variables
sf_assign_sl_r12_e_ sf_assign_sl_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MasterInformationBlock-SL ::= SEQUENCE
struct mib_sl_s {
struct sl_bw_r12_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sl_bw_r12_opts> sl_bw_r12_e_;
// member variables
sl_bw_r12_e_ sl_bw_r12;
tdd_cfg_sl_r12_s tdd_cfg_sl_r12;
fixed_bitstring<10> direct_frame_num_r12;
uint8_t direct_sf_num_r12 = 0;
bool in_coverage_r12 = false;
fixed_bitstring<19> reserved_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MasterInformationBlock-SL-V2X-r14 ::= SEQUENCE
struct mib_sl_v2x_r14_s {
struct sl_bw_r14_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sl_bw_r14_opts> sl_bw_r14_e_;
// member variables
sl_bw_r14_e_ sl_bw_r14;
tdd_cfg_sl_r12_s tdd_cfg_sl_r14;
fixed_bitstring<10> direct_frame_num_r14;
uint8_t direct_sf_num_r14 = 0;
bool in_coverage_r14 = false;
fixed_bitstring<27> reserved_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultRSSI-SCG-r13 ::= SEQUENCE
struct meas_result_rssi_scg_r13_s {
uint8_t serv_cell_id_r13 = 0;
meas_result_for_rssi_r13_s meas_result_for_rssi_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultListRSSI-SCG-r13 ::= SEQUENCE (SIZE (1..32)) OF MeasResultRSSI-SCG-r13
using meas_result_list_rssi_scg_r13_l = dyn_array<meas_result_rssi_scg_r13_s>;
// MeasResultServCellSCG-r12 ::= SEQUENCE
struct meas_result_serv_cell_scg_r12_s {
struct meas_result_scell_r12_s_ {
uint8_t rsrp_result_scell_r12 = 0;
uint8_t rsrq_result_scell_r12 = 0;
};
struct meas_result_scell_v1310_s_ {
uint8_t rs_sinr_result_scell_r13 = 0;
};
// member variables
bool ext = false;
uint8_t serv_cell_id_r12 = 0;
meas_result_scell_r12_s_ meas_result_scell_r12;
// ...
// group 0
bool serv_cell_id_r13_present = false;
uint8_t serv_cell_id_r13 = 0;
copy_ptr<meas_result_scell_v1310_s_> meas_result_scell_v1310;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// MeasResultServCellListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..32)) OF MeasResultServCellSCG-r12
using meas_result_serv_cell_list_scg_ext_r13_l = dyn_array<meas_result_serv_cell_scg_r12_s>;
// MeasResultServCellListSCG-r12 ::= SEQUENCE (SIZE (1..5)) OF MeasResultServCellSCG-r12
using meas_result_serv_cell_list_scg_r12_l = dyn_array<meas_result_serv_cell_scg_r12_s>;
// SBCCH-SL-BCH-MessageType ::= MasterInformationBlock-SL
typedef mib_sl_s sbcch_sl_bch_msg_type_s;
// SBCCH-SL-BCH-Message ::= SEQUENCE
struct sbcch_sl_bch_msg_s {
sbcch_sl_bch_msg_type_s msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SBCCH-SL-BCH-MessageType-V2X-r14 ::= MasterInformationBlock-SL-V2X-r14
typedef mib_sl_v2x_r14_s sbcch_sl_bch_msg_type_v2x_r14_s;
// SBCCH-SL-BCH-Message-V2X-r14 ::= SEQUENCE
struct sbcch_sl_bch_msg_v2x_r14_s {
sbcch_sl_bch_msg_type_v2x_r14_s msg;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigInfo-v1530-IEs ::= SEQUENCE
struct scg_cfg_info_v1530_ies_s {
bool drb_to_add_mod_list_scg_r15_present = false;
bool drb_to_release_list_scg_r15_present = false;
bool non_crit_ext_present = false;
drb_info_list_scg_r15_l drb_to_add_mod_list_scg_r15;
drb_to_release_list_r15_l drb_to_release_list_scg_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigInfo-v1430-IEs ::= SEQUENCE
struct scg_cfg_info_v1430_ies_s {
bool make_before_break_scg_req_r14_present = false;
bool meas_gap_cfg_per_cc_list_present = false;
bool non_crit_ext_present = false;
meas_gap_cfg_per_cc_list_r14_c meas_gap_cfg_per_cc_list;
scg_cfg_info_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigInfo-v1330-IEs ::= SEQUENCE
struct scg_cfg_info_v1330_ies_s {
bool meas_result_list_rssi_scg_r13_present = false;
bool non_crit_ext_present = false;
meas_result_list_rssi_scg_r13_l meas_result_list_rssi_scg_r13;
scg_cfg_info_v1430_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModListSCG-Ext-r13 ::= SEQUENCE (SIZE (1..31)) OF Cell-ToAddMod-r12
using scell_to_add_mod_list_scg_ext_r13_l = dyn_array<cell_to_add_mod_r12_s>;
// SCG-ConfigInfo-v1310-IEs ::= SEQUENCE
struct scg_cfg_info_v1310_ies_s {
bool meas_result_sstd_r13_present = false;
bool scell_to_add_mod_list_mcg_ext_r13_present = false;
bool meas_result_serv_cell_list_scg_ext_r13_present = false;
bool scell_to_add_mod_list_scg_ext_r13_present = false;
bool scell_to_release_list_scg_ext_r13_present = false;
bool non_crit_ext_present = false;
meas_result_sstd_r13_s meas_result_sstd_r13;
scell_to_add_mod_list_ext_r13_l scell_to_add_mod_list_mcg_ext_r13;
meas_result_serv_cell_list_scg_ext_r13_l meas_result_serv_cell_list_scg_ext_r13;
scell_to_add_mod_list_scg_ext_r13_l scell_to_add_mod_list_scg_ext_r13;
scell_to_release_list_ext_r13_l scell_to_release_list_scg_ext_r13;
scg_cfg_info_v1330_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigRestrictInfo-r12 ::= SEQUENCE
struct scg_cfg_restrict_info_r12_s {
uint8_t max_sch_tb_bits_dl_r12 = 1;
uint8_t max_sch_tb_bits_ul_r12 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCellToAddModListSCG-r12 ::= SEQUENCE (SIZE (1..4)) OF Cell-ToAddMod-r12
using scell_to_add_mod_list_scg_r12_l = dyn_array<cell_to_add_mod_r12_s>;
// SCG-ConfigInfo-r12-IEs ::= SEQUENCE
struct scg_cfg_info_r12_ies_s {
bool rr_cfg_ded_mcg_r12_present = false;
bool scell_to_add_mod_list_mcg_r12_present = false;
bool meas_gap_cfg_r12_present = false;
bool pwr_coordination_info_r12_present = false;
bool scg_radio_cfg_r12_present = false;
bool eutra_cap_info_r12_present = false;
bool scg_cfg_restrict_info_r12_present = false;
bool mbms_interest_ind_r12_present = false;
bool meas_result_serv_cell_list_scg_r12_present = false;
bool drb_to_add_mod_list_scg_r12_present = false;
bool drb_to_release_list_scg_r12_present = false;
bool scell_to_add_mod_list_scg_r12_present = false;
bool scell_to_release_list_scg_r12_present = false;
bool p_max_r12_present = false;
bool non_crit_ext_present = false;
rr_cfg_ded_s rr_cfg_ded_mcg_r12;
scell_to_add_mod_list_r10_l scell_to_add_mod_list_mcg_r12;
meas_gap_cfg_c meas_gap_cfg_r12;
pwr_coordination_info_r12_s pwr_coordination_info_r12;
scg_cfg_part_scg_r12_s scg_radio_cfg_r12;
dyn_octstring eutra_cap_info_r12;
scg_cfg_restrict_info_r12_s scg_cfg_restrict_info_r12;
dyn_octstring mbms_interest_ind_r12;
meas_result_serv_cell_list_scg_r12_l meas_result_serv_cell_list_scg_r12;
drb_info_list_scg_r12_l drb_to_add_mod_list_scg_r12;
drb_to_release_list_l drb_to_release_list_scg_r12;
scell_to_add_mod_list_scg_r12_l scell_to_add_mod_list_scg_r12;
scell_to_release_list_r10_l scell_to_release_list_scg_r12;
int8_t p_max_r12 = -30;
scg_cfg_info_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-ConfigInfo-r12 ::= SEQUENCE
struct scg_cfg_info_r12_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { scg_cfg_info_r12, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_cfg_info_r12_ies_s& scg_cfg_info_r12()
{
assert_choice_type("scg-ConfigInfo-r12", type_.to_string(), "c1");
return c;
}
const scg_cfg_info_r12_ies_s& scg_cfg_info_r12() const
{
assert_choice_type("scg-ConfigInfo-r12", type_.to_string(), "c1");
return c;
}
scg_cfg_info_r12_ies_s& set_scg_cfg_info_r12()
{
set(types::scg_cfg_info_r12);
return c;
}
private:
types type_;
scg_cfg_info_r12_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PPPP-TxPreconfigIndex-r14 ::= SEQUENCE
struct sl_pppp_tx_precfg_idx_r14_s {
using tx_cfg_idx_list_r14_l_ = bounded_array<uint8_t, 16>;
// member variables
uint8_t prio_thres_r14 = 1;
uint8_t default_tx_cfg_idx_r14 = 0;
uint8_t cbr_cfg_idx_r14 = 0;
tx_cfg_idx_list_r14_l_ tx_cfg_idx_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CBR-PPPP-TxPreconfigList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-r14
using sl_cbr_pppp_tx_precfg_list_r14_l = dyn_array<sl_pppp_tx_precfg_idx_r14_s>;
// SL-PPPP-TxPreconfigIndex-v1530 ::= SEQUENCE
struct sl_pppp_tx_precfg_idx_v1530_s {
using mcs_pssch_range_r15_l_ = dyn_array<mcs_pssch_range_r15_s>;
// member variables
bool mcs_pssch_range_r15_present = false;
mcs_pssch_range_r15_l_ mcs_pssch_range_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-CBR-PPPP-TxPreconfigList-v1530 ::= SEQUENCE (SIZE (1..8)) OF SL-PPPP-TxPreconfigIndex-v1530
using sl_cbr_pppp_tx_precfg_list_v1530_l = dyn_array<sl_pppp_tx_precfg_idx_v1530_s>;
// SL-CBR-PreconfigTxConfigList-r14 ::= SEQUENCE
struct sl_cbr_precfg_tx_cfg_list_r14_s {
using cbr_range_common_cfg_list_r14_l_ = dyn_array<sl_cbr_levels_cfg_r14_l>;
using sl_cbr_pssch_tx_cfg_list_r14_l_ = dyn_array<sl_cbr_pssch_tx_cfg_r14_s>;
// member variables
cbr_range_common_cfg_list_r14_l_ cbr_range_common_cfg_list_r14;
sl_cbr_pssch_tx_cfg_list_r14_l_ sl_cbr_pssch_tx_cfg_list_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigCommPool-r12 ::= SEQUENCE
struct sl_precfg_comm_pool_r12_s {
bool ext = false;
sl_cp_len_r12_e sc_cp_len_r12;
sl_period_comm_r12_e sc_period_r12;
sl_tf_res_cfg_r12_s sc_tf_res_cfg_r12;
int8_t sc_tx_params_r12 = -126;
sl_cp_len_r12_e data_cp_len_r12;
sl_tf_res_cfg_r12_s data_tf_res_cfg_r12;
sl_hop_cfg_comm_r12_s data_hop_cfg_r12;
int8_t data_tx_params_r12 = -126;
bounded_bitstring<3, 5> trpt_subset_r12;
// ...
// group 0
copy_ptr<sl_prio_list_r13_l> prio_list_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigCommPoolList4-r12 ::= SEQUENCE (SIZE (1..4)) OF SL-PreconfigCommPool-r12
using sl_precfg_comm_pool_list4_r12_l = dyn_array<sl_precfg_comm_pool_r12_s>;
// SL-PreconfigCommRxPoolList-r13 ::= SEQUENCE (SIZE (1..12)) OF SL-PreconfigCommPool-r12
using sl_precfg_comm_rx_pool_list_r13_l = dyn_array<sl_precfg_comm_pool_r12_s>;
// SL-PreconfigCommTxPoolList-r13 ::= SEQUENCE (SIZE (1..7)) OF SL-PreconfigCommPool-r12
using sl_precfg_comm_tx_pool_list_r13_l = dyn_array<sl_precfg_comm_pool_r12_s>;
// SL-PreconfigDiscPool-r13 ::= SEQUENCE
struct sl_precfg_disc_pool_r13_s {
struct disc_period_r13_opts {
enum options {
rf4,
rf6,
rf7,
rf8,
rf12,
rf14,
rf16,
rf24,
rf28,
rf32,
rf64,
rf128,
rf256,
rf512,
rf1024,
spare,
nulltype
} value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<disc_period_r13_opts> disc_period_r13_e_;
struct tx_params_r13_s_ {
struct tx_probability_r13_opts {
enum options { p25, p50, p75, p100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<tx_probability_r13_opts> tx_probability_r13_e_;
// member variables
int8_t tx_params_general_r13 = -126;
tx_probability_r13_e_ tx_probability_r13;
};
// member variables
bool ext = false;
bool tx_params_r13_present = false;
sl_cp_len_r12_e cp_len_r13;
disc_period_r13_e_ disc_period_r13;
uint8_t num_retx_r13 = 0;
uint8_t num_repeat_r13 = 1;
sl_tf_res_cfg_r12_s tf_res_cfg_r13;
tx_params_r13_s_ tx_params_r13;
// ...
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigDiscRxPoolList-r13 ::= SEQUENCE (SIZE (1..16)) OF SL-PreconfigDiscPool-r13
using sl_precfg_disc_rx_pool_list_r13_l = dyn_array<sl_precfg_disc_pool_r13_s>;
// SL-PreconfigDiscTxPoolList-r13 ::= SEQUENCE (SIZE (1..4)) OF SL-PreconfigDiscPool-r13
using sl_precfg_disc_tx_pool_list_r13_l = dyn_array<sl_precfg_disc_pool_r13_s>;
// SL-PreconfigGeneral-r12 ::= SEQUENCE
struct sl_precfg_general_r12_s {
struct rohc_profiles_r12_s_ {
bool profile0x0001_r12 = false;
bool profile0x0002_r12 = false;
bool profile0x0004_r12 = false;
bool profile0x0006_r12 = false;
bool profile0x0101_r12 = false;
bool profile0x0102_r12 = false;
bool profile0x0104_r12 = false;
};
struct sl_bw_r12_opts {
enum options { n6, n15, n25, n50, n75, n100, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sl_bw_r12_opts> sl_bw_r12_e_;
// member variables
bool ext = false;
rohc_profiles_r12_s_ rohc_profiles_r12;
uint32_t carrier_freq_r12 = 0;
int8_t max_tx_pwr_r12 = -30;
uint8_t add_spec_emission_r12 = 1;
sl_bw_r12_e_ sl_bw_r12;
tdd_cfg_sl_r12_s tdd_cfg_sl_r12;
fixed_bitstring<19> reserved_r12;
// ...
// group 0
bool add_spec_emission_v1440_present = false;
uint16_t add_spec_emission_v1440 = 33;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigRelay-r13 ::= SEQUENCE
struct sl_precfg_relay_r13_s {
resel_info_relay_r13_s resel_info_oo_c_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigSync-r12 ::= SEQUENCE
struct sl_precfg_sync_r12_s {
struct sync_ref_min_hyst_r12_opts {
enum options { db0, db3, db6, db9, db12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sync_ref_min_hyst_r12_opts> sync_ref_min_hyst_r12_e_;
struct sync_ref_diff_hyst_r12_opts {
enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sync_ref_diff_hyst_r12_opts> sync_ref_diff_hyst_r12_e_;
// member variables
bool ext = false;
sl_cp_len_r12_e sync_cp_len_r12;
uint8_t sync_offset_ind1_r12 = 0;
uint8_t sync_offset_ind2_r12 = 0;
int8_t sync_tx_params_r12 = -126;
uint8_t sync_tx_thresh_oo_c_r12 = 0;
filt_coef_e filt_coef_r12;
sync_ref_min_hyst_r12_e_ sync_ref_min_hyst_r12;
sync_ref_diff_hyst_r12_e_ sync_ref_diff_hyst_r12;
// ...
// group 0
bool sync_tx_periodic_r13_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-PreconfigCommPool-r14 ::= SEQUENCE
struct sl_v2x_precfg_comm_pool_r14_s {
struct size_subch_r14_opts {
enum options {
n4,
n5,
n6,
n8,
n9,
n10,
n12,
n15,
n16,
n18,
n20,
n25,
n30,
n48,
n50,
n72,
n75,
n96,
n100,
spare13,
spare12,
spare11,
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<size_subch_r14_opts> size_subch_r14_e_;
struct num_subch_r14_opts {
enum options { n1, n3, n5, n8, n10, n15, n20, spare1, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<num_subch_r14_opts> num_subch_r14_e_;
// member variables
bool ext = false;
bool sl_offset_ind_r14_present = false;
bool start_rb_pscch_pool_r14_present = false;
bool zone_id_r14_present = false;
bool thresh_s_rssi_cbr_r14_present = false;
bool cbr_pssch_tx_cfg_list_r14_present = false;
bool res_sel_cfg_p2_x_r14_present = false;
bool sync_allowed_r14_present = false;
bool restrict_res_reserv_period_r14_present = false;
sl_offset_ind_r12_c sl_offset_ind_r14;
sf_bitmap_sl_r14_c sl_sf_r14;
bool adjacency_pscch_pssch_r14 = false;
size_subch_r14_e_ size_subch_r14;
num_subch_r14_e_ num_subch_r14;
uint8_t start_rb_subch_r14 = 0;
uint8_t start_rb_pscch_pool_r14 = 0;
int8_t data_tx_params_r14 = -126;
uint8_t zone_id_r14 = 0;
uint8_t thresh_s_rssi_cbr_r14 = 0;
sl_cbr_pppp_tx_precfg_list_r14_l cbr_pssch_tx_cfg_list_r14;
sl_p2_x_res_sel_cfg_r14_s res_sel_cfg_p2_x_r14;
sl_sync_allowed_r14_s sync_allowed_r14;
sl_restrict_res_reserv_period_list_r14_l restrict_res_reserv_period_r14;
// ...
// group 0
copy_ptr<sl_min_t2_value_list_r15_l> sl_min_t2_value_list_r15;
copy_ptr<sl_cbr_pppp_tx_precfg_list_v1530_l> cbr_pssch_tx_cfg_list_v1530;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigV2X-RxPoolList-r14 ::= SEQUENCE (SIZE (1..16)) OF SL-V2X-PreconfigCommPool-r14
using sl_precfg_v2x_rx_pool_list_r14_l = dyn_array<sl_v2x_precfg_comm_pool_r14_s>;
// SL-V2X-SyncOffsetIndicators-r14 ::= SEQUENCE
struct sl_v2x_sync_offset_inds_r14_s {
bool sync_offset_ind3_r14_present = false;
uint8_t sync_offset_ind1_r14 = 0;
uint8_t sync_offset_ind2_r14 = 0;
uint8_t sync_offset_ind3_r14 = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigV2X-Sync-r14 ::= SEQUENCE
struct sl_precfg_v2x_sync_r14_s {
struct sync_ref_min_hyst_r14_opts {
enum options { db0, db3, db6, db9, db12, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sync_ref_min_hyst_r14_opts> sync_ref_min_hyst_r14_e_;
struct sync_ref_diff_hyst_r14_opts {
enum options { db0, db3, db6, db9, db12, dbinf, nulltype } value;
typedef uint8_t number_type;
std::string to_string() const;
uint8_t to_number() const;
};
typedef enumerated<sync_ref_diff_hyst_r14_opts> sync_ref_diff_hyst_r14_e_;
// member variables
bool ext = false;
sl_v2x_sync_offset_inds_r14_s sync_offset_inds_r14;
int8_t sync_tx_params_r14 = -126;
uint8_t sync_tx_thresh_oo_c_r14 = 0;
filt_coef_e filt_coef_r14;
sync_ref_min_hyst_r14_e_ sync_ref_min_hyst_r14;
sync_ref_diff_hyst_r14_e_ sync_ref_diff_hyst_r14;
// ...
// group 0
bool slss_tx_disabled_r15_present = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-PreconfigV2X-TxPoolList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-V2X-PreconfigCommPool-r14
using sl_precfg_v2x_tx_pool_list_r14_l = dyn_array<sl_v2x_precfg_comm_pool_r14_s>;
// SL-Preconfiguration-r12 ::= SEQUENCE
struct sl_precfg_r12_s {
struct precfg_comm_v1310_s_ {
bool comm_tx_pool_list_r13_present = false;
sl_precfg_comm_rx_pool_list_r13_l comm_rx_pool_list_r13;
sl_precfg_comm_tx_pool_list_r13_l comm_tx_pool_list_r13;
};
struct precfg_disc_r13_s_ {
bool disc_tx_pool_list_r13_present = false;
sl_precfg_disc_rx_pool_list_r13_l disc_rx_pool_list_r13;
sl_precfg_disc_tx_pool_list_r13_l disc_tx_pool_list_r13;
};
// member variables
bool ext = false;
sl_precfg_general_r12_s precfg_general_r12;
sl_precfg_sync_r12_s precfg_sync_r12;
sl_precfg_comm_pool_list4_r12_l precfg_comm_r12;
// ...
// group 0
copy_ptr<precfg_comm_v1310_s_> precfg_comm_v1310;
copy_ptr<precfg_disc_r13_s_> precfg_disc_r13;
copy_ptr<sl_precfg_relay_r13_s> precfg_relay_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-PreconfigFreqInfo-r14 ::= SEQUENCE
struct sl_v2x_precfg_freq_info_r14_s {
struct sync_prio_r14_opts {
enum options { gnss, enb, nulltype } value;
std::string to_string() const;
};
typedef enumerated<sync_prio_r14_opts> sync_prio_r14_e_;
// member variables
bool ext = false;
bool v2x_comm_precfg_sync_r14_present = false;
bool v2x_res_sel_cfg_r14_present = false;
bool zone_cfg_r14_present = false;
bool thres_sl_tx_prioritization_r14_present = false;
bool offset_dfn_r14_present = false;
sl_precfg_general_r12_s v2x_comm_precfg_general_r14;
sl_precfg_v2x_sync_r14_s v2x_comm_precfg_sync_r14;
sl_precfg_v2x_rx_pool_list_r14_l v2x_comm_rx_pool_list_r14;
sl_precfg_v2x_tx_pool_list_r14_l v2x_comm_tx_pool_list_r14;
sl_precfg_v2x_tx_pool_list_r14_l p2x_comm_tx_pool_list_r14;
sl_comm_tx_pool_sensing_cfg_r14_s v2x_res_sel_cfg_r14;
sl_zone_cfg_r14_s zone_cfg_r14;
sync_prio_r14_e_ sync_prio_r14;
uint8_t thres_sl_tx_prioritization_r14 = 1;
uint16_t offset_dfn_r14 = 0;
// ...
// group 0
copy_ptr<sl_v2x_freq_sel_cfg_list_r15_l> v2x_freq_sel_cfg_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// SL-V2X-PreconfigFreqList-r14 ::= SEQUENCE (SIZE (1..8)) OF SL-V2X-PreconfigFreqInfo-r14
using sl_v2x_precfg_freq_list_r14_l = dyn_array<sl_v2x_precfg_freq_info_r14_s>;
// SL-V2X-TxProfile-r15 ::= ENUMERATED
struct sl_v2x_tx_profile_r15_opts {
enum options { rel14, rel15, 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<sl_v2x_tx_profile_r15_opts, true> sl_v2x_tx_profile_r15_e;
// SL-V2X-TxProfileList-r15 ::= SEQUENCE (SIZE (1..256)) OF SL-V2X-TxProfile-r15
using sl_v2x_tx_profile_list_r15_l = dyn_array<sl_v2x_tx_profile_r15_e>;
// SL-V2X-Preconfiguration-r14 ::= SEQUENCE
struct sl_v2x_precfg_r14_s {
bool ext = false;
bool anchor_carrier_freq_list_r14_present = false;
bool cbr_precfg_list_r14_present = false;
sl_v2x_precfg_freq_list_r14_l v2x_precfg_freq_list_r14;
sl_anchor_carrier_freq_list_v2x_r14_l anchor_carrier_freq_list_r14;
sl_cbr_precfg_tx_cfg_list_r14_s cbr_precfg_list_r14;
// ...
// group 0
bool slss_tx_multi_freq_r15_present = false;
copy_ptr<sl_v2x_packet_dupl_cfg_r15_s> v2x_packet_dupl_cfg_r15;
copy_ptr<sl_v2x_sync_freq_list_r15_l> sync_freq_list_r15;
copy_ptr<sl_v2x_tx_profile_list_r15_l> v2x_tx_profile_list_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEPagingCoverageInformation-r13-IEs ::= SEQUENCE
struct ue_paging_coverage_info_r13_ies_s {
bool mpdcch_num_repeat_r13_present = false;
bool non_crit_ext_present = false;
uint16_t mpdcch_num_repeat_r13 = 1;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UEPagingCoverageInformation ::= SEQUENCE
struct ue_paging_coverage_info_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options {
ue_paging_coverage_info_r13,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_paging_coverage_info_r13_ies_s& ue_paging_coverage_info_r13()
{
assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1");
return c;
}
const ue_paging_coverage_info_r13_ies_s& ue_paging_coverage_info_r13() const
{
assert_choice_type("uePagingCoverageInformation-r13", type_.to_string(), "c1");
return c;
}
ue_paging_coverage_info_r13_ies_s& set_ue_paging_coverage_info_r13()
{
set(types::ue_paging_coverage_info_r13);
return c;
}
private:
types type_;
ue_paging_coverage_info_r13_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UERadioAccessCapabilityInformation-r8-IEs ::= SEQUENCE
struct ue_radio_access_cap_info_r8_ies_s {
bool non_crit_ext_present = false;
dyn_octstring ue_radio_access_cap_info;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UERadioAccessCapabilityInformation ::= SEQUENCE
struct ue_radio_access_cap_info_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options {
ue_radio_access_cap_info_r8,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8()
{
assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1");
return c;
}
const ue_radio_access_cap_info_r8_ies_s& ue_radio_access_cap_info_r8() const
{
assert_choice_type("ueRadioAccessCapabilityInformation-r8", type_.to_string(), "c1");
return c;
}
ue_radio_access_cap_info_r8_ies_s& set_ue_radio_access_cap_info_r8()
{
set(types::ue_radio_access_cap_info_r8);
return c;
}
private:
types type_;
ue_radio_access_cap_info_r8_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UERadioPagingInformation-v1310-IEs ::= SEQUENCE
struct ue_radio_paging_info_v1310_ies_s {
using supported_band_list_eutra_for_paging_r13_l_ = dyn_array<uint16_t>;
// member variables
bool supported_band_list_eutra_for_paging_r13_present = false;
bool non_crit_ext_present = false;
supported_band_list_eutra_for_paging_r13_l_ supported_band_list_eutra_for_paging_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UERadioPagingInformation-r12-IEs ::= SEQUENCE
struct ue_radio_paging_info_r12_ies_s {
bool non_crit_ext_present = false;
dyn_octstring ue_radio_paging_info_r12;
ue_radio_paging_info_v1310_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// UERadioPagingInformation ::= SEQUENCE
struct ue_radio_paging_info_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options {
ue_radio_paging_info_r12,
spare7,
spare6,
spare5,
spare4,
spare3,
spare2,
spare1,
nulltype
} value;
std::string to_string() const;
};
typedef enumerated<types_opts> types;
// choice methods
c1_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
ue_radio_paging_info_r12_ies_s& ue_radio_paging_info_r12()
{
assert_choice_type("ueRadioPagingInformation-r12", type_.to_string(), "c1");
return c;
}
const ue_radio_paging_info_r12_ies_s& ue_radio_paging_info_r12() const
{
assert_choice_type("ueRadioPagingInformation-r12", type_.to_string(), "c1");
return c;
}
ue_radio_paging_info_r12_ies_s& set_ue_radio_paging_info_r12()
{
set(types::ue_radio_paging_info_r12);
return c;
}
private:
types type_;
ue_radio_paging_info_r12_ies_s c;
};
typedef c1_or_crit_ext_e types;
// choice methods
crit_exts_c_() = default;
crit_exts_c_(const crit_exts_c_& other);
crit_exts_c_& operator=(const crit_exts_c_& other);
~crit_exts_c_() { destroy_(); }
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
const c1_c_& c1() const
{
assert_choice_type("c1", type_.to_string(), "criticalExtensions");
return c.get<c1_c_>();
}
c1_c_& set_c1()
{
set(types::c1);
return c.get<c1_c_>();
}
private:
types type_;
choice_buffer_t<c1_c_> c;
void destroy_();
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarConnEstFailReport-r11 ::= SEQUENCE
struct var_conn_est_fail_report_r11_s {
conn_est_fail_report_r11_s conn_est_fail_report_r11;
plmn_id_s plmn_id_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasConfig-r10 ::= SEQUENCE
struct var_log_meas_cfg_r10_s {
bool area_cfg_r10_present = false;
area_cfg_r10_c area_cfg_r10;
logging_dur_r10_e logging_dur_r10;
logging_interv_r10_e logging_interv_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasConfig-r11 ::= SEQUENCE
struct var_log_meas_cfg_r11_s {
bool area_cfg_r10_present = false;
bool area_cfg_v1130_present = false;
area_cfg_r10_c area_cfg_r10;
area_cfg_v1130_s area_cfg_v1130;
logging_dur_r10_e logging_dur_r10;
logging_interv_r10_e logging_interv_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasConfig-r12 ::= SEQUENCE
struct var_log_meas_cfg_r12_s {
bool area_cfg_r10_present = false;
bool area_cfg_v1130_present = false;
bool target_mbsfn_area_list_r12_present = false;
area_cfg_r10_c area_cfg_r10;
area_cfg_v1130_s area_cfg_v1130;
logging_dur_r10_e logging_dur_r10;
logging_interv_r10_e logging_interv_r10;
target_mbsfn_area_list_r12_l target_mbsfn_area_list_r12;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasConfig-r15 ::= SEQUENCE
struct var_log_meas_cfg_r15_s {
bool area_cfg_r10_present = false;
bool area_cfg_v1130_present = false;
bool target_mbsfn_area_list_r12_present = false;
bool bt_name_list_r15_present = false;
bool wlan_name_list_r15_present = false;
area_cfg_r10_c area_cfg_r10;
area_cfg_v1130_s area_cfg_v1130;
logging_dur_r10_e logging_dur_r10;
logging_interv_r10_e logging_interv_r10;
target_mbsfn_area_list_r12_l target_mbsfn_area_list_r12;
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(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasReport-r10 ::= SEQUENCE
struct var_log_meas_report_r10_s {
trace_ref_r10_s trace_ref_r10;
fixed_octstring<2> trace_recording_session_ref_r10;
fixed_octstring<1> tce_id_r10;
plmn_id_s plmn_id_r10;
fixed_bitstring<48> absolute_time_info_r10;
log_meas_info_list2_r10_l log_meas_info_list_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarLogMeasReport-r11 ::= SEQUENCE
struct var_log_meas_report_r11_s {
trace_ref_r10_s trace_ref_r10;
fixed_octstring<2> trace_recording_session_ref_r10;
fixed_octstring<1> tce_id_r10;
plmn_id_list3_r11_l plmn_id_list_r11;
fixed_bitstring<48> absolute_time_info_r10;
log_meas_info_list2_r10_l log_meas_info_list_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarMeasConfig ::= SEQUENCE
struct var_meas_cfg_s {
struct speed_state_pars_c_ {
struct setup_s_ {
mob_state_params_s mob_state_params;
speed_state_scale_factors_s time_to_trigger_sf;
};
typedef setup_e types;
// choice methods
speed_state_pars_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type("setup", type_.to_string(), "speedStatePars");
return c;
}
const setup_s_& setup() const
{
assert_choice_type("setup", type_.to_string(), "speedStatePars");
return c;
}
setup_s_& set_setup()
{
set(types::setup);
return c;
}
private:
types type_;
setup_s_ c;
};
// member variables
bool meas_id_list_present = false;
bool meas_id_list_ext_r12_present = false;
bool meas_id_list_v1310_present = false;
bool meas_id_list_ext_v1310_present = false;
bool meas_obj_list_present = false;
bool meas_obj_list_ext_r13_present = false;
bool meas_obj_list_v9i0_present = false;
bool report_cfg_list_present = false;
bool quant_cfg_present = false;
bool meas_scale_factor_r12_present = false;
bool s_measure_present = false;
bool speed_state_pars_present = false;
bool allow_interruptions_r11_present = false;
meas_id_to_add_mod_list_l meas_id_list;
meas_id_to_add_mod_list_ext_r12_l meas_id_list_ext_r12;
meas_id_to_add_mod_list_v1310_l meas_id_list_v1310;
meas_id_to_add_mod_list_ext_v1310_l meas_id_list_ext_v1310;
meas_obj_to_add_mod_list_l meas_obj_list;
meas_obj_to_add_mod_list_ext_r13_l meas_obj_list_ext_r13;
meas_obj_to_add_mod_list_v9e0_l meas_obj_list_v9i0;
report_cfg_to_add_mod_list_l report_cfg_list;
quant_cfg_s quant_cfg;
meas_scale_factor_r12_e meas_scale_factor_r12;
int16_t s_measure = -140;
speed_state_pars_c_ speed_state_pars;
bool allow_interruptions_r11 = false;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarMeasIdleConfig-r15 ::= SEQUENCE
struct var_meas_idle_cfg_r15_s {
struct meas_idle_dur_r15_opts {
enum options { sec10, sec30, sec60, sec120, sec180, sec240, sec300, nulltype } value;
typedef uint16_t number_type;
std::string to_string() const;
uint16_t to_number() const;
};
typedef enumerated<meas_idle_dur_r15_opts> meas_idle_dur_r15_e_;
// member variables
bool meas_idle_carrier_list_eutra_r15_present = false;
eutra_carrier_list_r15_l meas_idle_carrier_list_eutra_r15;
meas_idle_dur_r15_e_ meas_idle_dur_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarMeasIdleReport-r15 ::= SEQUENCE
struct var_meas_idle_report_r15_s {
meas_result_list_idle_r15_l meas_report_idle_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarMeasReport ::= SEQUENCE
struct var_meas_report_s {
bool meas_id_v1250_present = false;
bool cells_triggered_list_present = false;
bool csi_rs_triggered_list_r12_present = false;
bool pools_triggered_list_r14_present = false;
uint8_t meas_id = 1;
uint8_t meas_id_v1250 = 33;
cells_triggered_list_l cells_triggered_list;
csi_rs_triggered_list_r12_l csi_rs_triggered_list_r12;
tx_res_pool_meas_list_r14_l pools_triggered_list_r14;
int64_t nof_reports_sent = 0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarMeasReportList ::= SEQUENCE (SIZE (1..32)) OF VarMeasReport
using var_meas_report_list_l = dyn_array<var_meas_report_s>;
// VarMeasReportList-r12 ::= SEQUENCE (SIZE (1..64)) OF VarMeasReport
using var_meas_report_list_r12_l = dyn_array<var_meas_report_s>;
// VarMobilityHistoryReport-r12 ::= VisitedCellInfoList-r12
typedef visited_cell_info_list_r12_l var_mob_history_report_r12_l;
// VarRLF-Report-r10 ::= SEQUENCE
struct var_rlf_report_r10_s {
rlf_report_r9_s rlf_report_r10;
plmn_id_s plmn_id_r10;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarRLF-Report-r11 ::= SEQUENCE
struct var_rlf_report_r11_s {
rlf_report_r9_s rlf_report_r10;
plmn_id_list3_r11_l plmn_id_list_r11;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarShortINACTIVE-MAC-Input-r15 ::= SEQUENCE
struct var_short_inactive_mac_input_r15_s {
fixed_bitstring<28> cell_id_r15;
uint16_t pci_r15 = 0;
fixed_bitstring<16> c_rnti_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarShortMAC-Input ::= SEQUENCE
struct var_short_mac_input_s {
fixed_bitstring<28> cell_id;
uint16_t pci = 0;
fixed_bitstring<16> c_rnti;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarShortMAC-Input-NB-r13 ::= VarShortMAC-Input
typedef var_short_mac_input_s var_short_mac_input_nb_r13_s;
// VarShortResumeMAC-Input-r13 ::= SEQUENCE
struct var_short_resume_mac_input_r13_s {
fixed_bitstring<28> cell_id_r13;
uint16_t pci_r13 = 0;
fixed_bitstring<16> c_rnti_r13;
fixed_bitstring<1> resume_discriminator_r13;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarShortResumeMAC-Input-NB-r13 ::= VarShortResumeMAC-Input-r13
typedef var_short_resume_mac_input_r13_s var_short_resume_mac_input_nb_r13_s;
// VarWLAN-MobilityConfig ::= SEQUENCE
struct var_wlan_mob_cfg_s {
bool wlan_mob_set_r13_present = false;
bool success_report_requested_present = false;
bool wlan_suspend_cfg_r14_present = false;
wlan_id_list_r13_l wlan_mob_set_r13;
wlan_suspend_cfg_r14_s wlan_suspend_cfg_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
// VarWLAN-Status-r13 ::= SEQUENCE
struct var_wlan_status_r13_s {
bool status_r14_present = false;
wlan_status_r13_e status_r13;
wlan_status_v1430_e status_r14;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(bit_ref& bref);
void to_json(json_writer& j) const;
};
} // namespace rrc
} // namespace asn1
#endif // SRSASN1_RRC_H