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.

952 lines
29 KiB
C++

/**
* Copyright 2013-2021 Software Radio Systems Limited
*
* This file is part of srsRAN.
*
* srsRAN is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* srsRAN is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* A copy of the GNU Affero General Public License can be found in
* the LICENSE file in the top-level directory of this distribution
* and at http://www.gnu.org/licenses/.
*
*/
/*******************************************************************************
*
* 3GPP TS ASN1 RRC v15.11.0 (2020-09)
*
******************************************************************************/
#ifndef SRSASN1_RRC_HO_CMD_H
#define SRSASN1_RRC_HO_CMD_H
#include "dl_dcch_msg.h"
namespace asn1 {
namespace rrc {
/*******************************************************************************
* Struct Definitions
******************************************************************************/
// SCG-Config-v13c0-IEs ::= SEQUENCE
struct scg_cfg_v13c0_ies_s {
bool scg_radio_cfg_v13c0_present = false;
bool non_crit_ext_present = false;
scg_cfg_part_scg_v13c0_s scg_radio_cfg_v13c0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-v12i0a-IEs ::= SEQUENCE
struct scg_cfg_v12i0a_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
scg_cfg_v13c0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
scg_cfg_v12i0a_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v1550 ::= SEQUENCE
struct as_cfg_v1550_s {
struct tdm_pattern_cfg_r15_s_ {
sf_assign_r15_e sf_assign_r15;
uint8_t harq_offset_r15 = 0;
};
// member variables
bool tdm_pattern_cfg_r15_present = false;
bool p_max_eutra_r15_present = false;
tdm_pattern_cfg_r15_s_ tdm_pattern_cfg_r15;
int8_t p_max_eutra_r15 = -30;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_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(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-ConfigNR-v1570 ::= SEQUENCE
struct as_cfg_nr_v1570_s {
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// SCG-Config-r12 ::= SEQUENCE
struct scg_cfg_r12_s {
struct crit_exts_c_ {
struct c1_c_ {
struct types_opts {
enum options { scg_cfg_r12, spare7, spare6, spare5, spare4, spare3, spare2, spare1, nulltype } value;
const char* 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(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
scg_cfg_r12_ies_s& scg_cfg_r12()
{
assert_choice_type(types::scg_cfg_r12, type_, "c1");
return c;
}
const scg_cfg_r12_ies_s& scg_cfg_r12() const
{
assert_choice_type(types::scg_cfg_r12, type_, "c1");
return c;
}
scg_cfg_r12_ies_s& set_scg_cfg_r12();
void set_spare7();
void set_spare6();
void set_spare5();
void set_spare4();
void set_spare3();
void set_spare2();
void set_spare1();
private:
types type_;
scg_cfg_r12_ies_s c;
};
using types = c1_or_crit_ext_e;
// choice methods
crit_exts_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
const c1_c_& c1() const
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
c1_c_& set_c1();
void set_crit_exts_future();
private:
types type_;
c1_c_ c;
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
// group 4
copy_ptr<as_cfg_v1550_s> as_cfg_v1550;
// group 5
copy_ptr<as_cfg_nr_v1570_s> as_cfg_nr_v1570;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_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(cbit_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(cbit_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(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// AS-Config-v13c0 ::= SEQUENCE
struct as_cfg_v13c0_s {
bool rr_cfg_ded_v13c01_present = false;
bool rr_cfg_ded_v13c02_present = false;
bool scell_to_add_mod_list_v13c0_present = false;
bool scell_to_add_mod_list_ext_v13c0_present = false;
rr_cfg_ded_v1370_s rr_cfg_ded_v13c01;
rr_cfg_ded_v13c0_s rr_cfg_ded_v13c02;
scell_to_add_mod_list_v13c0_l scell_to_add_mod_list_v13c0;
scell_to_add_mod_list_ext_v13c0_l scell_to_add_mod_list_ext_v13c0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_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(cbit_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(cbit_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(cbit_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(cbit_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(cbit_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;
// group 2
bool selband_combination_info_en_dc_v1540_present = false;
dyn_octstring selband_combination_info_en_dc_v1540;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_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(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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(cbit_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>;
// 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(cbit_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;
const char* 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(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_cmd_r8_ies_s& ho_cmd_r8()
{
assert_choice_type(types::ho_cmd_r8, type_, "c1");
return c;
}
const ho_cmd_r8_ies_s& ho_cmd_r8() const
{
assert_choice_type(types::ho_cmd_r8, type_, "c1");
return c;
}
ho_cmd_r8_ies_s& set_ho_cmd_r8();
void set_spare7();
void set_spare6();
void set_spare5();
void set_spare4();
void set_spare3();
void set_spare2();
void set_spare1();
private:
types type_;
ho_cmd_r8_ies_s c;
};
using types = c1_or_crit_ext_e;
// choice methods
crit_exts_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
const c1_c_& c1() const
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
c1_c_& set_c1();
void set_crit_exts_future();
private:
types type_;
c1_c_ c;
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v1540-IEs ::= SEQUENCE
struct ho_prep_info_v1540_ies_s {
bool source_rb_cfg_intra5_gc_r15_present = false;
bool non_crit_ext_present = false;
dyn_octstring source_rb_cfg_intra5_gc_r15;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_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;
ho_prep_info_v1540_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
ho_prep_info_v1530_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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(cbit_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(cbit_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(cbit_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(cbit_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(cbit_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;
const char* 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(cbit_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;
const char* 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(cbit_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(cbit_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;
const char* 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(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
ho_prep_info_r8_ies_s& ho_prep_info_r8()
{
assert_choice_type(types::ho_prep_info_r8, type_, "c1");
return c;
}
const ho_prep_info_r8_ies_s& ho_prep_info_r8() const
{
assert_choice_type(types::ho_prep_info_r8, type_, "c1");
return c;
}
ho_prep_info_r8_ies_s& set_ho_prep_info_r8();
void set_spare7();
void set_spare6();
void set_spare5();
void set_spare4();
void set_spare3();
void set_spare2();
void set_spare1();
private:
types type_;
ho_prep_info_r8_ies_s c;
};
using types = c1_or_crit_ext_e;
// choice methods
crit_exts_c_() = default;
void set(types::options e = types::nulltype);
types type() const { return type_; }
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
c1_c_& c1()
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
const c1_c_& c1() const
{
assert_choice_type(types::c1, type_, "criticalExtensions");
return c;
}
c1_c_& set_c1();
void set_crit_exts_future();
private:
types type_;
c1_c_ c;
};
// member variables
crit_exts_c_ crit_exts;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v13c0-IEs ::= SEQUENCE
struct ho_prep_info_v13c0_ies_s {
bool as_cfg_v13c0_present = false;
bool non_crit_ext_present = false;
as_cfg_v13c0_s as_cfg_v13c0;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// HandoverPreparationInformation-v10x0-IEs ::= SEQUENCE
struct ho_prep_info_v10x0_ies_s {
bool late_non_crit_ext_present = false;
bool non_crit_ext_present = false;
dyn_octstring late_non_crit_ext;
ho_prep_info_v13c0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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;
ho_prep_info_v10x0_ies_s non_crit_ext;
// sequence methods
SRSASN_CODE pack(bit_ref& bref) const;
SRSASN_CODE unpack(cbit_ref& bref);
void to_json(json_writer& j) const;
};
// 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(cbit_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;
};
using types = setup_e;
// 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(cbit_ref& bref);
void to_json(json_writer& j) const;
// getters
setup_s_& setup()
{
assert_choice_type(types::setup, type_, "speedStatePars");
return c;
}
const setup_s_& setup() const
{
assert_choice_type(types::setup, type_, "speedStatePars");
return c;
}
void set_release();
setup_s_& set_setup();
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(cbit_ref& bref);
void to_json(json_writer& j) const;
};
} // namespace rrc
} // namespace asn1
#endif // SRSASN1_RRC_HO_CMD_H